- 配置 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 用户自定义参数(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 相关的配置项
# 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 端的监控项
配置 nginx status 监控模板
配置相关的监控项
添加好的监控项
主机关联模板
查看数据
-
添加触发器
配置触发条件
告警触发
-
添加图形展示
配置要展示的相关监控项
查看图形展示
Zabbix 用户自定义参数方式执行流程:
zabbix web 监控项 nginx.status[active] --> UserParameter=nginx.status[active] --> /usr/bin/python /etc/zabbix/zabbix_agentd.d/get_nginx_status.py active --> 取得 active 的值










