- 配置 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
- 編寫符合 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
- zabbix_agentd.conf 中跟 zabbix UserParameter 相關(guān)的配置項
# egrep "^Include|^UnsafeUserParameters" /etc/zabbix/zabbix_agentd.conf
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=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
- 在 zabbix server 上測試 UserParameter 是否配置正確
# zabbix_get -s 192.168.1.254 -p 10050 -k nginx.status[active]
6
-
配置 zabbix web 端的監(jiān)控項
配置 nginx status 監(jiān)控模板
配置相關(guān)的監(jiān)控項
添加好的監(jiān)控項
主機關(guān)聯(lián)模板
查看數(shù)據(jù)
-
添加觸發(fā)器
配置觸發(fā)條件
告警觸發(fā)
-
添加圖形展示
配置要展示的相關(guān)監(jiān)控項
查看圖形展示
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 的值










