zoukankan      html  css  js  c++  java
  • zabbix 自定义监控nginx

    zabbix自定义nginx监控项

    查看nginx编译安装是否加上该选项,如果没有请重新编译安装

    配置nginx.conf

    vim /usr/local/cpgroup/nginx/conf/vhost/nginx.conf

    nginx开启状态页
    location /status {
        stub_status on;
        allow 127.0.0.1;
        #deny all;
        access_log off;
    }

    #nginx -s reload

    测试访问http://ip/status/

    Active connections Nginx正处理的活动链接数个数;重要
    server Nginx启动到现在共处理了多少个连接。
    accepts Nginx启动到现在共成功创建几次握手。 
    handled requests Nginx总共处理了几次请求。
    Reading Nginx读取到客户端的 Header 信息数。
    Writing Nginx返回给客户端的 Header 信息数。
    Waiting Nginx已经处理完正在等候下一次请求指令的驻留链接,开启。
    Keep-alive的情况下,Waiting这个值等于active-(reading + writing)。
    请求丢失数=(握手数-连接数)可以看出,本次状态显示没有丢失请求。

    开启Include

    配置UserParameter

    vim ngx_status.conf
    UserParameter=nginx.status[*],/usr/local/cpgroup/zabbix/etc/zabbix_agentd.conf.d/scripts/ngx_status.sh $1

    创建zabbix_agentd.conf.d/scripts目录
    并将脚本上传到scripts目录下

    #! /bin/bash
    #date: 2019-01-10
    # Description:zabbix监控nginx性能以及进程状态
    # Note:此脚本需要配置在被监控端,否则ping检测将会得到不符合预期的结果
    
    HOST="127.0.0.1"
    PORT="80"
    
    # 检测nginx进程是否存在
    function ping {
        /sbin/pidof nginx | wc -l
    }
    # 检测nginx性能
    function active {
        /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
    }
    function reading {
        /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
    }
    function writing {
        /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
    }
    function waiting {
        /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
    }
    function accepts {
        /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
    }
    function handled {
        /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
    }
    function requests {
        /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
    }
    # 执行function
    $1
    
    重启agentd
    systemctl restart zabbix_agentd
    验证zabbix_server是否可以获取监控值
    zabbix_get -s 127.0.0.1 -k nginx_status[active]
    常用键值 nginx_status[active] nginx_status[reading] nginx_status[writing] nginx_status[waiting] nginx_status[accepts] nginx_status[handled] nginx_status[requests] 

    登录zabbix创建模板

    创建自定义应用集

    创建监控项

    这里我就举例一个,其他的如下

    自定义图形

    自定义触发器,并不是必须的,所以我这里并没有设置

    使用模板关联主机

    验证成果

    参考博客:传输门

  • 相关阅读:
    104.Maximum Depth of Binary Tree
    103.Binary Tree Zigzag Level Order Traversal
    102.Binary Tree Level Order Traversal
    101.Symmetric Tree
    100.Same Tree
    99.Recover Binary Search Tree
    98.Validate Binary Search Tree
    97.Interleaving String
    static静态初始化块
    serialVersionUID作用
  • 原文地址:https://www.cnblogs.com/charles1ee/p/10375783.html
Copyright © 2011-2022 走看看