Zabbix 用戶自定義參數(shù)方式監(jiān)控 Nginx Status

  1. 配置 nginx 開啟 nginx status 功能
# vim /etc/nginx/conf.d/status.conf
server {
    listen       81 default_server;
    server_name  _;
    location / {
        stub_status on;
        allow 127.0.0.1;
        deny all;
    }
}

# systemctl reload nginx

# curl 127.0.0.1:81/nginx_status
Active connections: 2 
server accepts handled requests
 185 185 5993 
Reading: 0 Writing: 1 Waiting: 1
  1. 編寫符合 zabbix 用戶自定義參數(shù)(UserParameter) 格式要求的腳本
# vim /etc/zabbix/zabbix_agentd.d/get_nginx_status.py
# coding: utf-8

import requests
import sys


def get_status_data():
    url = 'http://127.0.0.1:81/nginx_status'
    req = requests.get(url)
    data = req.text.split('\n')
    return data


if __name__ == "__main__":
    args = " active | accepts | handled | requests | reading | writing | waiting"
    line_data = get_status_data()
    if len(sys.argv) == 2:
        if sys.argv[1] == 'active':
            print line_data[0].split(':')[1]
        elif sys.argv[1] == 'accepts':
            print line_data[2].split()[0]
        elif sys.argv[1] == 'handled':
            print line_data[2].split()[1]
        elif sys.argv[1] == 'requests':
            print line_data[2].split()[2]
        elif sys.argv[1] == 'reading':
            print line_data[3].split(' ')[1]
        elif sys.argv[1] == 'writing':
            print line_data[3].split(' ')[3]
        elif sys.argv[1] == 'waiting':
            print line_data[3].split(' ')[5]
        else:
            print "Usage: " + sys.argv[0] + args
    else:
        print "Usage: " + sys.argv[0] + args

# python get_nginx_status.py active
 1 
  1. zabbix_agentd.conf 中跟 zabbix UserParameter 相關(guān)的配置項
# egrep "^Include|^UnsafeUserParameters" /etc/zabbix/zabbix_agentd.conf 
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=1
  1. 配置 nginx status 的 UserParameter
# vim /etc/zabbix/zabbix_agentd.d/nginx_status.conf
UserParameter=nginx.status[*],/usr/bin/python /etc/zabbix/zabbix_agentd.d/get_nginx_status.py $1
# systemctl restart zabbix-agent
  1. 在 zabbix server 上測試 UserParameter 是否配置正確
# zabbix_get -s 192.168.1.254 -p 10050 -k nginx.status[active]
 6
  1. 配置 zabbix web 端的監(jiān)控項
    配置 nginx status 監(jiān)控模板



    配置相關(guān)的監(jiān)控項



    添加好的監(jiān)控項

    主機關(guān)聯(lián)模板

    查看數(shù)據(jù)


  2. 添加觸發(fā)器
    配置觸發(fā)條件



    告警觸發(fā)



  3. 添加圖形展示
    配置要展示的相關(guān)監(jiān)控項



    查看圖形展示


  4. Zabbix 用戶自定義參數(shù)方式執(zhí)行流程:

zabbix web 監(jiān)控項 nginx.status[active] --> UserParameter=nginx.status[active] --> /usr/bin/python /etc/zabbix/zabbix_agentd.d/get_nginx_status.py active --> 取得 active 的值
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容