一、使用zabbix_agent的UserParameter可以自定义监控指标,这里以监控nginx连接数为例

首先nginx,需要打开status

[root@node1 ~]# vi /etc/nginx/nginx.conf
location /status {
                stub_status on;
                access_log off;
}



打开浏览器访问http://192.168.30.117/status


wKiom1NN5Ljji1mNAAB8jKH55cg470.jpg


状态页面各项数据的意义:

active connections – 当前 Nginx 正处理的活动连接数。

serveraccepts handled requests — 总共处理了 233851 个连接 , 成功创建 233851 次握手 (证明中间没有失败的 ), 总共处理了 687942 个请求 ( 平均每次握手处理了 2.94 个数据请求 )。

reading — nginx 读取到客户端的 Header 信息数。

writing — nginx 返回给客户端的 Header 信息数。

waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading + writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接。



修改zabbix agent配置文件

[root@node1 ~]# vi /etc/zabbix/zabbix_agentd.conf
UserParameter=Nginx.active[*],/usr/bin/curl -s "http://$1:$2/status" | awk '/^Active/ {print $NF}'
UserParameter=Nginx.reading[*],/usr/bin/curl -s "http://$1:$2/status" | grep 'Reading' | cut -d" " -f2
UserParameter=Nginx.writing[*],/usr/bin/curl -s "http://$1:$2/status" | grep 'Writing' | cut -d" " -f4
UserParameter=Nginx.waiting[*],/usr/bin/curl -s "http://$1:$2/status" | grep 'Waiting' | cut -d" " -f6
UserParameter=Nginx.accepted[*],/usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$1}'
UserParameter=Nginx.handled[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$2}'
UserParameter=Nginx.requests[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$3}'
[root@node1 ~]# service zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]

在server端使用zabbix_get看是否能采集到数据

[root@localhost ~]# zabbix_get -s 192.168.30.117 -k "Nginx.accepted[192.168.30.117,80]"
6


可以采集到

打开监控页面,添加item

wKiom1NN6hHS-FCFAAKrPzcKS3Q055.jpg


wKiom1NN6mODKiE6AALT-kChjlw077.jpg


wKiom1NN6zOC0bIoAAQtdsedObY722.jpg


wKiom1NN61yTf--mAAP-Z2P4RY0163.jpg


发现已经采集到数据