【 Zabbix 】nginx监控及故障重启服务
zabbix agentd 端配置:
nginx.conf 配置:
location /ngx_status { stub_status on; access_log off; allow 10.0.10.5;(zabbix_agentd IP) allow 10.0.30.1;(zabbix_server IP) deny all; }
[node1.jfxx.wsd root@10.0.10.5 /usr/local/nginx/conf]#curl 10.0.10.5/ngx_status
Active connections: 5
server accepts handled requests
12143 12143 25709
Reading: 0 Writing: 5 Waiting: 0
# 测试成功。
创建一个获取nginx状态数据。
[node1.jfxx.wsd root@10.0.10.5 /usr/local/zabbix-2.4.7/bin]#pwd /usr/local/zabbix-2.4.7/bin [node1.jfxx.wsd root@10.0.10.5 /usr/local/zabbix-2.4.7/bin]#vim nginx_status.sh #!/bin/bash HOST=`ifconfig eth0 | sed -n '/inet /{s/.*addr://;s/ .*//;p}'` #HOST="127.0.0.1" PORT="80"
function ping {
/sbin/pidof nginx | wc -l
}
function active { /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}' } function reading { /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}' } function writing { /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}' } function waiting { /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}' } function accepts { /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}' } function handled { /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}' } function requests { /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}' } # Run the requested function $1
zabbix_agentd.conf 配置:
[node1.jfxx.wsd root@10.0.10.5 /usr/local/zabbix-2.4.7/etc]#grep -v ^# zabbix_agentd.conf | grep -v ^$ LogFile=/var/log/zabbix/zabbix_agentd.log Server=10.0.30.1 ListenIP=10.0.10.5 ServerActive=10.0.30.1 Hostname=10.0.10.5 UnsafeUserParameters=1
EnableRemoteCommands=1 # 表示允许远程执行命令,自动启动命令需要开启此项
UserParameter=nginx.status[*],/usr/local/zabbix-2.4.7/bin/nginx_status.sh $1
登录zabbix web应用导入模板:
模板下载地址:链接:http://pan.baidu.com/s/1b0Hm02 密码:631h
如果出现 “没有数据” 的情况,检查步骤如下:
1. 检查nginx是否对本机IP开放访问 ngx_status
~]#curl http://10.0.10.1/ngx_status Active connections: 124 server accepts handled requests 10683663 10683663 10689745 Reading: 0 Writing: 1 Waiting: 123
2. 检查zabbix监控nginx的脚本是否存在问题
]#./ngx_status.sh accepts
10684050
3. 通过服务器端尝试用zabbix_get 来获取数据
]#zabbix_get -s 10.0.10.1 -p 10050 -k "nginx.accepts" 10684902
为nginx创建自动重启机制
添加动作需要触发的条件,如下:
当条件满足时,需要执行的操作:
客户端zabbix配置:
#visudo 99 zabbix ALL=NOPASSWD: ALL 100 zabbix ALL=NOPASSWD: /etc/init.d/nginx restart #Defaults requiretty #此项需要注释掉,否则无法通过server端远程登录zabbix用户
此上配置完成就可以实现nginx 服务down掉,自动重启功能。

浙公网安备 33010602011771号