一、使用zabbix_agent的UserParameter可以自定义监控指标,这里以监控nginx连接数为例
首先nginx,需要打开status
1
2
3
4
5
|
[root@node1 ~]
# vi /etc/nginx/nginx.conf
location
/status
{
stub_status on;
access_log off;
}
|
打开浏览器访问http://192.168.30.117/status
状态页面各项数据的意义:
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配置文件
1
2
3
4
5
6
7
8
9
10
11
|
[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看是否能采集到数据
1
2
|
[root@localhost ~]
# zabbix_get -s 192.168.30.117 -k "Nginx.accepted[192.168.30.117,80]"
6
|
可以采集到
打开监控页面,添加item
发现已经采集到数据
本文转自ljl_19880709 51CTO博客,原文链接:http://blog.51cto.com/luojianlong/1396172
,如需转载请自行联系原作者