• Zabbix 企业Nginx监控


    Zabbix监控Nginx状态

    1 修改Nginx配置文件,开启Nginx监控

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

    2 访问Nginx 监控状态

    # curl http://127.0.0.1/nginx_status
    Active connections: 1 
    server accepts handled requests
     3 3 3 
    Reading: 0 Writing: 1 Waiting: 0 

    ## Active connections: 对后端发起的活动连接数
    ## Server accepts handled requests: Nginx 总共处理了 3个连接,成功创建了 3 次握手(没有失败次数),总共处理了 3 个请求
    ## Reading: Nginx 读取到客户端的 Header 信息数
    ## Writing: Nginx 返回给客户端的 Header 信息数
    ## Waiting: 开启 keep-alive 的情况下,这个值等于 active - ( reading + writing ), 意思是 Nginx 已经处理完成,正在等待下一次请求指令的驻留连接
    ## 在访问效率很高,请求很快被处理完毕的情况下,Waiting 数比较多是正常的。如果 reading + writing 数较多,则说明并发访问量很大,正在处理过程中

    3 编写脚本获取上面的key值

    #cd /etc/zabbix/scripts
    #vim nginx_status.sh
    #!/bin/bash
    
    HOST="127.0.0.1"
    PORT="80"
    
    # 检测nginx进程是否存在
    function ping {
        /sbin/pidof nginx | wc -l
    }
    # 检测nginx性能
    function active {
        /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
    }
    function reading {
        /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
    }
    function writing {
        /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
    }
    function waiting {
        /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
    }
    function accepts {
        /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
    }
    function handled {
        /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
    }
    function requests {
        /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
    }
    # 执行function
    $1
    
    
    #赋予权限
    #chmod +x nginx_status.sh

    4 添加自定义key配置文件

    #cat /etc/zabbix/zabbix_agentd.d/nginx_status.conf
    ## Nginx_status
    UserParameter=nginx.status[*],/usr/local/zabbix-3.0.0/scripts/ngx-status.sh $1

    5 重启zabbix客户端

    # /etc/init.d/zabbix-agent restart
    Shutting down Zabbix agent:                                [  OK  ]
    Starting Zabbix agent:                                     [  OK  ]

    ## 注意,上面全部操作都是在被监控端

    6 zabbix服务端测试能否拿到key

    # zabbix_get -s 172.16.10.86 -k nginx.status[ping]
    1

    7 zabbix Web端配置

    Link NGINX模板

    到了最后一个阶段,登陆zabbix管理端,link模板到nginx服务器:configuration->hosts->点击nginx所在服务器->点击template->Link new templates输入"Template App NGINX"->Add->最后点击update。

  • 相关阅读:
    什么是SQLCLR与使用
    SQL Server中使用正则表达式
    YUV格式
    Android官方开发文档Training系列课程中文版:手势处理之ViewGroup的事件管理
    Android中利用5.0系统屏幕录制UI漏洞骗取应用录制屏幕授权
    Android解析编译之后的所有文件(so,dex,xml,arsc)格式
    PageRank 算法--从原理到实现
    机器人视觉初级系列
    深入解析 iOS 开源项目
    微信热补丁 Tinker 的实践演进之路
  • 原文地址:https://www.cnblogs.com/yexiaochong/p/7447800.html
Copyright © 2020-2023  润新知