zoukankan      html  css  js  c++  java
  • zabbix监控nginx status页面

    在需要添加监控的nginx配置文件中添加下列配置

    #zabbix监控nginx配置
    location /nginx_status {
    stub_status on;
    access_log off;
    allow 127.0.0.1;
    allow 172.17.0.8; #zabbix服务器的IP地址
    deny all;
    }

    从zabbix server上curl一下是否能获取到值

    Activeconnections:对后端发起的活动连接数; 
    server accepts 193245:nginx 总共处理了193245个连接; 
    handled:成功创建了193245次握手; 
    requests:总共处理了339165请求。 
    Reading:nginx读取客户端的header数; 
    Writing: nginx 返回给客户端的header数; 
    Waiting: nginx 请求处理完成,正在等待下一请求指令的连接。

    编写zabbix agent监控脚本

    [root@node7 ~]# vim /etc/zabbix/zabbix_agentd.d/nginx_status.sh
    #!/bin/bash
    #Script to fetch nginx statuses for monitoring systems
    #Author Tony
    HOST="127.0.0.1"
    PORT="80"
    function ping { #用于检测nginx进程是否存在
    /sbin/pidof nginx | wc -l
    }
    function active { #用于提取status中的active数值
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
    }
    function reading { #用于提取status中的reading数值
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
    }
    function writing { #用于提取status中的writing数值
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
    }
    function waiting { #用于提取status中的waiting数值
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
    }
    function accepts { #用于提取status中的accepts数值
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
    }
    function handled { #用于提取status中的handled数值
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
    }
    function requests { #用于提取status中的request数值
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
    }
    $1 #通过第一个位置参数的值来调用相应的函数
    [root@node7 ~]# chmod a+x nginx_status.sh

    编写nginx监控项配置文件

    [root@node7 ~]# cat /etc/zabbix/zabbix_agentd.d/nginx_status.conf
    UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_status.sh $1

    在zabbix_agent.conf中开启自定义参数

    [root@node7 ~]# cat /etc/zabbix/zabbix_agentd.conf
    PidFile=/var/run/zabbix/zabbix_agentd.pid
    LogFile=/var/log/zabbix/zabbix_agentd.log
    LogFileSize=0
    Server=172.17.0.8
    ServerActive=172.17.0.8
    Hostname=172.17.0.8
    Include=/etc/zabbix/zabbix_agentd.d/*.conf
    UnsafeUserParameters=1 //1代表允许,0代表关闭

    重启zabbix-agent

    systemctl restart zabbix-agent

    在zabbix server上测试是否成功

    [root@node7 ~]# zabbix_get -s 172.17.0.8 -k nginx.status[ping]
    1
    [root@node7 ~]# zabbix_get -s 172.17.0.8 -k nginx.status[accepts]
    193172
    [root@node7 ~]# zabbix_get -s 172.17.0.8 -k nginx.status[handled]
    193176
    [root@node7 ~]# zabbix_get -s 172.17.0.8 -k nginx.status[requests]
    339029
  • 相关阅读:
    layui 参照赋值的两种方式
    c笔记
    Linux操作系统笔记
    make笔记
    Gcc如何知道文件类型。
    #include <xxx.h>和#include "xxx.h"的区别
    GCC编译流程
    c++ Socket客户端和服务端示例版本三(多线程版本)
    c++ Socket客户端和服务端示例版本二
    c++ Socket客户端和服务端示例版本一
  • 原文地址:https://www.cnblogs.com/52py/p/11464761.html
Copyright © 2011-2022 走看看