举一反三-zabbix监控nginx

文章介绍了如何修改Nginx配置以允许监控,添加了允许特定IP访问nginx_status的规则,并提供了一个用于获取Nginx状态的bash脚本示例。之后,提到了在Zabbix平台上设置监控的步骤,测试脚本成功后,按照类似监控PHP的步骤进行配置。
摘要由CSDN通过智能技术生成

监控nginx需要修改nginx配置文件,添加如下:

        location /nginx_status {
         stub_status;
         allow 127.0.0.1;
         allow 192.168.1.71;
         deny all;
        }

这里边192.168.1.71是这台服务器的IP。

保存退出,重启nginx服务。

编写nginx监控脚本,下面是一个范例:

#!/bin/bash
nginx_status_fun(){
    NGINX_PORT=$1
    NGINX_COMMAND=$2
    nginx_active(){
         /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2> /dev/null| grep 'Active' | awk '{print $NF}'
              }
    nginx_reading(){
         /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2> /dev/null | grep 'Reading' | awk '{print $2}'
               }
    nginx_writing(){
         /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2> /dev/null | grep 'Writing' | awk '{print $4}'
               }
    nginx_waiting(){
         /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2> /dev/null | grep 'Waiting' | awk '{print $6}'
                }
    nginx_accepts(){
         /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2> /dev/null | awk NR==3 | awk '{print $1}'
               }
    nginx_handled(){
         /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2> /dev/null | awk NR==3 | awk '{print $2}'
               }
    nginx_requests(){
         /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2> /dev/null | awk NR==3 | awk '{print $3}'
            }
   case $NGINX_COMMAND in 
                active) 
               nginx_active;
               ;;
            reading) 
               nginx_reading;
                   ;;
                    writing)
                           nginx_writing;
                       ;;
                    waiting)
                   nginx_waiting;
                   ;;
            accepts)
               nginx_accepts;
               ;;
            handled)
               nginx_handled;
               ;;
            requests)
               nginx_requests;
               ;;
                *)
               echo "0"
               ;;
   esac
}
main (){
    case $1 in
        nginx_status)
            nginx_status_fun $2 $3;
            ;;
        *)
            echo $"Usage: $0 {nginx_status key}"
    esac
}
main $1 $2 $3
测试脚本:

 脚本测试通过,下一步就是在zabbix平台进行设置。参考zabbix监控php一文中的步骤配置即可。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值