zoukankan      html  css  js  c++  java
  • zabbix监控nginx状态信息

    1、开启nginx状态监控页

    # vim /etc/nginx/nginx.conf
    http{
    ...
    
        server {
        ....
    
            location /status {
                stub_status on;
                allow 127.0.0.1;   #只允许本机访问监测页
                deny all;
            }
    
        ...
        }
    
    ...
    }

    2、nginx状态页说明

    # curl 127.0.0.1/status
    Active connections: 1 
    server accepts handled requests
     64 64 128
    Reading: 0 Writing: 1 Waiting: 0

    第一行,active connections – 当前 Nginx 正处理的活动连接数。后面脚本中用active来代指

    第三行第一个值64,表示总共处理了多少个连接。后面脚本用accepted来代指

    第三行第二个值64,表示成功创建多少次握手 (和第一个值相同,证明中间没有失败的 )。后面脚本用handled来代指

    第三行第三个值128,表示总共处理了多少次请求(平均每次握手处理了128/64=2个请求)。后面脚本用requests来代指

    第四行Reading,表示nginx读取到客户端的 Header 信息数。后面脚本用reading来代指

    第四行Writing,表示nginx返回给客户端的 Header 信息数。后面脚本用writing来代指

    第四行Waiting,表示开启 keep-alive 的情况下,这个值等于 active – (reading + writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接。后面脚本用waiting来代指

    3、编写监测nginx的shell脚本

    # vim /etc/zabbix/zabbix_agentd.d/check_nginx.sh
    #!/bin/bash
    case $1 in
    active)
        /usr/bin/curl -s "http://127.0.0.1:$1/status" | awk '/^Active/ {print $NF}'
        ;;
    reading)
        /usr/bin/curl -s "http://127.0.0.1:$1/status" | grep 'Reading' | cut -d" " -f2
        ;;
    writing)
        /usr/bin/curl -s "http://127.0.0.1:$1/status" | grep 'Writing' | cut -d" " -f4
        ;;
    waiting)
        /usr/bin/curl -s "http://127.0.0.1:$1/status" | grep 'Waiting' | cut -d" " -f6
        ;;
    accepted)
        /usr/bin/curl -s "http://127.0.0.1:$1/status" | awk '/^[ 	]+[0-9]+[ 	]+[0-9]+[ 	]+[0-9]+/ {print $1}'
        ;;
    handled)
        /usr/bin/curl -s "http://127.0.0.1:$1/status" | awk '/^[ 	]+[0-9]+[ 	]+[0-9]+[ 	]+[0-9]+/ {print $2}'
        ;;
    requests)
        /usr/bin/curl -s "http://127.0.0.1:$1/status" | awk '/^[ 	]+[0-9]+[ 	]+[0-9]+[ 	]+[0-9]+/ {print $3}'
        ;;
    *)
        echo 'Error'
    esac

    4、编写zabbix-agent的自定义监控项

    # vim /etc/zabbix/zabbix_agentd.d/nginx_satus.conf
    UserParameter=nginx.status[*],/bin/bash /etc/zabbix/zabbix_agentd.d/check_nginx.sh $1
     
    重启zabbix-agent服务
    # systemctl restart zabbix-agent

    5、在Zabbix-server端测试

    # zabbix_get -s 192.168.1.200 -k nginx.status[active]

    # zabbix_get -s 192.168.1.200 -k nginx.status[handled]

    。。。略

    6、在Zabbix的WEB页面添加监控项

    image

  • 相关阅读:
    3. 无重复字符的最长子串
    CentOS7 安装
    docker安装ES和kibana
    阿里云镜像加速(docker)
    虚拟机安装docker
    CentOS7 安装
    javaweb学习5——JSP
    javaweb学习4——HttpServletRequest的使用
    javaweb学习3——验证码
    javaweb学习2——HTTP协议
  • 原文地址:https://www.cnblogs.com/ysuwangqiang/p/11993527.html
Copyright © 2011-2022 走看看