• zabbix监控nginx


    nginx与php-fpm一样内建了一个状态页,对于想了解nginx的状态以及监控nginx非常有帮助。为了后续的zabbix监控,我们需要先了解一下nginx的状态页。

    Nginx状态信息(status)介绍

        Nginx软件在编译时又一个with-http_stub_status_module模块,这个模块功能是记录Nginx的基本访问状态信息,让使用者了解Nginx的工作状态。要想使用状态模块,在编译时必须增加--with-http_stub_status_module参数。

        可通过如下方法检测编译安装Nginx时是否设定上述模块支持:

     

    [root@CentOS ~]# nginx -V
    
    nginx version: nginx/1.12.0
    
    built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)
    
    built with OpenSSL 1.0.1e-fips 11 Feb 2013
    
    TLS SNI support enabled
    
    configure arguments: --user=nginx --group=nginx --prefix=/application/nginx-1.12.0/ --with-http_v2_module --with-http_ssl_module --with-http_sub_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre

     

    配置Nginx status

    具体配置过程如下:

    1)生成状态配置,并增加状态配置参数

        操作如下:

    1. 启用nginx status配置

     

    server {
        listen  *:80 default_server;
        server_name _;
        location /ngx_status 
        {
            stub_status on;
            access_log off;
            #allow 127.0.0.1;
            #deny all;
        }
    }

    2. 重启nginx

    请依照你的环境重启你的nginx

    3. 打开status页面

    # curl http://127.0.0.1/ngx_status
    Active connections: 11921 
    server accepts handled requests
     11989 11989 11991 
    Reading: 0 Writing: 7 Waiting: 42

    4. nginx status详解

    active connections – 活跃的连接数量
    server accepts handled requests — 总共处理了11989个连接 , 成功创建11989次握手, 总共处理了11991个请求
    reading — 读取客户端的连接数.
    writing — 响应数据到客户端的数量
    waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接.

    zabbix客户端配置

    编写客户端脚本ngx_status.sh

    #!/bin/bash
    # Description:zabbix监控nginx性能以及进程状态
    # Note:此脚本需要配置在被监控端,否则ping检测将会得到不符合预期的结果
    # 文章地址:<span id="sample-permalink" tabindex="-1">http://www.ttlsa.com/zabbix/<span id="editable-post-name" title="临时固定链接,点击可更改这部分。">zabbix-monitor-nginx-performance</span>/</span> ‎
     
    HOST="127.0.0.1"
    PORT="80"
     
    # 检测nginx进程是否存在
    function ping {
        /sbin/pidof nginx | wc -l #这个真好用
    }
    # 检测nginx性能
    function active {
        /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
    }
    function reading {
        /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
    }
    function writing {
        /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
    }
    function waiting {
        /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
    }
    function accepts {
        /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
    }
    function handled {
        /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
    }
    function requests {
        /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
    }
    # 执行function
    $1

    zabbix客户端配置

    将自定义的UserParameter加入配置文件,然后重启agentd,如下:

    #cat /usr/local/zabbix-3.0.0/etc/zabbix_agentd.conf | grep nginx
    UserParameter=nginx.status[*],/usr/local/zabbix-3.0.0/scripts/ngx-status.sh $1
    # killall zabbix_agentd
    # /usr/local/zabbix-3.0.0/sbin/zabbix_agentd 

     发现一条令人很开心的命令

    这样就可以过滤出 pid 以后做监控多好  以前还费力八劲的过滤出pid   哦 并不是所有的服务都可以这样  不过还是很喜欢  
    [root@test2 ~]# /sbin/pidof vsftpd 10990 [root@test2 ~]# /sbin/pidof nginx 2881 2861 [root@test2 ~]# /sbin/pidof mysqld 7927

     

     

  • 相关阅读:
    JQ实时监听input的value值
    css 超过一行省略号
    后端传过来一个JS代码,前端拿到之后执行
    Ant design vue table 单击行选中 勾选checkbox
    原生js实现addClass,removeClass,hasClass方法
    JS动态添加JavaScript语句
    js数字卷轴滚动
    spark在eclipse下V2-02逐个运行spark-examples
    spark在eclipse下V2-搭建Demo代码阅读环境
    试下Inceptor事务表和HDFS目录的关系。
  • 原文地址:https://www.cnblogs.com/lazyball/p/8618306.html
Copyright © 2020-2023  润新知