zabbix监控nginx进程

确认nginx有没有安装模块

然后在主站点下添加(二级站点)

location /NginxStatus {
        stub_status on;
        access_log off;
        allow 127.0.0.1;
        deny all;
    }

其实就是根据上图,得到以上数据,写脚本对其进程监控!!

根据站点的命令写成监控脚本(可以直接复制以下代码)

#!/bin/bash
# Description:zabbix监控nginx性能以及进程状态
# Note:此脚本需要配置在被监控端,否则ping检测将会得到不符合预期的结果
HOST="127.0.0.1"
PORT="80"
# 检测nginx进程是否存在
case $1 in
    active)
        /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
        ;;
    reading)
        /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
        ;;
    writing)
        /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
        ;;
    waiting)
        /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
        ;;
    accepts)
        /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk NR==3 | awk '{print $1}'
        ;;
    handled)
        /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk NR==3 | awk '{print $2}'
        ;;
    requests)
        /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk NR==3 | awk '{print $3}'
        ;;
    *)
        echo "只能输入nginx进程的状态码"
esac

后面就是监控脚本的问题了。监控脚本过程省略,不会的网上搜索一下。。。。

猜你喜欢

转载自www.cnblogs.com/yeyu1314/p/10050116.html