【 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掉,自动重启功能。

 

posted @ 2016-05-20 15:18  hukey  阅读(1795)  评论(0)    收藏  举报