• Zabbix应用四:Zabbix监控Nginx


    利用Zabbix监控Nginx

    一、准备nginx监控模版:

    1.1、下载nginx监控模版:

        点此下载

    1.2、导入模版:

    Zabbix管理页面,选择'配置'->'模版'->'导入':

    然后将下载的模版文件上传。

    现在,'配置'->'模版'中就会发现刚才上传的nginx模版:'Template App NGINX'

    二、将模版应用与主机:

    选择被监控主机->'模版',在'链接指示器'中选择'Template App NGINX','添加'->'更新',最后如下图:

    三、客户端数据采集:

    Zabbix监控端已配置完毕,现在需要将从被监控段采集的数据渲染到模版中。

    3.1、定义采集nignx状态的脚本,如下:

    #!/bin/bash
    
    HOST='127.0.0.1'
    PORT='80'
    
    function ping {
        /sbin/pidof nginx | wc -l
    }
    
    function active {
         /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| grep 'Active' | awk '{print $NF}'
    }
    
    function reading {
        /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| grep 'Reading' | awk '{print $2}'
    }
    
    function writing {
         /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| grep 'Writing' | awk '{print $4}'
    }
    
    function waiting {
        /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
    }
    
    function accepts {
        /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| awk NR==3 | awk '{print $1}'
    }
    
    function handled {
        /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| awk NR==3 | awk '{print $2}'
    }
    
    function requests {
        /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| awk NR==3 | awk '{print $3}'
    }
    
    $1

    3.2、开启nginx状态配置:

    vim nginx.conf,在server中添加如下:

    ......
           
    location / {
               stub_status on;
               access_log off;
           }
    
    ......

    注意:启用stub_status的前提是在编译安装nginx时,需要添加'--with-http_stub_status_module'参数。

    3.3、配置zabbix客户端采集脚本:

    vim zabbix_agent.conf,添加UserParameter,使zabbix客户端调用采集脚本去采集数据:

    UserParameter=nginx.status[*],/data/shell/nginxStatus.sh $1

    经过以上配置后,reload nginx、重启zabbix_agentd即可。

    以上就是zabbix监控nginx的配置过程。

    友情提示:

    如果你和我一样,在已经安装好的nginx上添加如上模块,又不想影响线上业务,请参考如下:

    在已经运行的nignx中添加需要的模块?
    1、首先使用nginx -V  查看当前编译时的参数
    2、进入解压包,重新执行./configure 在原来添加的模块基础上,添加自己需要的模块
    3、执行make(完成后切不可执行make install)
    4、将生成的objs目录下的nginx二进制文件替换当前nginx/sbin/nginx文件即可(替换之前,记得备份) 

    OK,到这里,真的就结束了。。。!

  • 相关阅读:
    @MapperScan 注解和 mybatis.mapper-locations 配置两者缺一不可
    com.mysql.cj.jdbc.Driver和com.mysql.jdbc.Driver的区别
    定时任务框架Quartz-(一)Quartz入门与Demo搭建
    js分页的实现代码
    圣杯布局中对left盒子设置负内边距-100%的一点解释
    前端小知识--为什么你写的height:100%不起作用?
    CSS:实现垂直居中的常用方法
    [jdk源码阅读系列]Java中System.arraycopy()的用法
    [jdk源码阅读系列]overflow-conscious code
    省选?
  • 原文地址:https://www.cnblogs.com/ahaii/p/6952940.html
Copyright © 2020-2023  润新知