zabbix监控nginx状态

1. 在zabbix的脚本目录中,创建一个脚本nginx.sh,内容如下:

#! /bin/bash
#date: 2018-11-07
# Description:zabbix监控nginx性能以及进程状态
# Note:此脚本需要配置在被监控端,否则ping检测将会得到不符合预期的结果

HOST="192.168.1.169"
PORT="9990"

# 检测nginx进程是否存在
function ping {
    /sbin/pidof nginx | wc -l
}
# 检测nginx性能
function active {
    /usr/bin/curl -s http://$HOST:$PORT/nginx_status 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
    /usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
    /usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
    /usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
    /usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
    /usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
    /usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
function request_time {
    /usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk '{print $4}'
}
# 执行function
$1

2.在该目录下再创建一个nginx.conf,用来设置参数传给zabbix。

UserParameter=nginx.status[*],/usr/local/zabbix/etc/zabbix_agentd.conf.d/nginx.sh $1

3.在zabbix的配置文件中,添加一行内容:

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/nginx.conf

4.重启zabbix-agent服务。

5.需要在nginx添加内容:

server{
      #server_name status.taobao.com;
      server_name 192.168.1.78;
      listen 9990;
       location = /nginx_status {
        stub_status on;
    }
}

  

  

  

posted @ 2018-11-08 16:46  奋斗史  阅读(274)  评论(0)    收藏  举报