zoukankan      html  css  js  c++  java
  • zabbix日常监控项nginx(五)

    1、开启nginx监控

    2、编写脚本来进行数据采集

    3、设置用户自定义参数

    4、重启zabbix-agent

    5、添加item、创建图形、创建触发器

    6、创建模板

    注:第一次使用可以按需求制定好模板,以后再添加主机时可以省略第5步。

    一、zabbix3.4 实现nginx web监控

    1、nginx开启nginx-status支持(nginx被监控端)

    参考博文:http://www.21yunwei.com/archives/3896

                     http://www.21yunwei.com/archives/4091

    通过zabbix实现一个nginx监控,需要安装模块:–with-http_stub_status_module,如果没有安装需要进行编译,这里记录下模块单独安装步骤,就以–with-http_stub_status_module为例

         1.1、查看是否一安装该模块(本次为监控测试,已yum安装,下边复制其他博主的,仅供参考

    [root@21yunwei nginx-1.9.12]# /usr/local/nginx/sbin/nginx   -V
    nginx version: nginx/1.9.12
    built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) 
    built with OpenSSL 1.0.1e-fips 11 Feb 2013
    TLS SNI support enabled
    configure arguments: --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.36
    

    查看没有我们需要的模块–with-http_stub_status_module,需要单独安装一下。  

      1.2、添加未编译安装模块

    使用参数重新配置

    ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.36 --with-http_stub_status_module
    

     make 编译
    注意:千万不要make install,否则就是覆盖安装 

      1.3、替换nginx二进制文件 ,当前nginx文件最好备份下,避免出问题。

    停止nginx服务
    cp /usr/local/nginx/sbin/nginx  /usr/local/nginx/sbin/nginx.bak
    cp ./objs/nginx  /usr/local/nginx/sbin/
    

      重启下nginx服务,重新查看模块加载情况:

      1.4、配置站点文件添加如下location模块

    location = /nginx-status {
              stub_status  on;
              access_log   off;
              allow 127.0.0.1;
              deny all;

     

    [root@server ~]# curl http://127.0.0.1/nginx-status
    Active connections: 1 
    server accepts handled requests
     4 4 4 
    Reading: 0 Writing: 1 Waiting: 0
    

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

     2、配置zabbix

       2.1、导入模板,并需要将监控的主机链接到该模板

    链接:https://pan.baidu.com/s/14EUPmWhAYYe6tgxJIlHh0w 密码:x5zc

       2.2、根据模板中的参数key写shell(被监控端)shell脚本获取参数如下:

    #!/bin/bash
    #use zabbix to monitor nginx status
    #author:21yunwei
    #监控 httpd code,eg:500.多个站点可以考虑循环实现 。这里只针对自己博客21yunwei做状态码监控。
    #accesslog="/var/log/nginx/access.log"
    #cat ${accesslog} | awk '{print $8}' |sort |uniq | grep 500 >/dev/null 2>&1 ;httpcode=$?
    #监控nginx存活状态,基于端口监听。另外需加web url监控防止假死。
    netstat -tnlp | grep 80 >/dev/null 2>&1 ;status=$?
    url="http://10.0.0.199/nginx-status"
    #监控参数匹配
    case $1 in
    "active" )
     /usr/bin/curl $url 2>/dev/null | grep -i $1 | awk '{print $NF}' ;;
    "accepts")
     /usr/bin/curl $url 2>/dev/null | awk 'NR==3{print $1}' ;;
    "handled")
     /usr/bin/curl $url 2>/dev/null | awk 'NR==3{print $2}' ;;
    "requests")
     /usr/bin/curl $url 2>/dev/null | awk 'NR==3{print $NF}' ;;
    "reading")
     /usr/bin/curl $url 2>/dev/null | awk 'NR==4{print $2}' ;;
    "writing")
     /usr/bin/curl $url 2>/dev/null | awk 'NR==4{print $4}' ;;
    "waiting")
     /usr/bin/curl $url 2>/dev/null | awk 'NR==4{print $NF}' ;;
    "ping")
     echo $status ;;
    "httpcode")
     echo $httpcode ;;
    * )
     echo "argu error";;
    esac
    

      chmod a+x nginx_zbx.sh
           chmod  +s /bin/netstat
    调整zabbix_agentd下的配置文件,添加如下参数:(zabbix-server端

    [root@server ~]# vim /etc/zabbix/zabbix_agentd.conf
    #nginx moitor
    UserParameter=nginx.status[*],/etc/zabbix/nginx_zbx.sh $1
    

    添加完成后重启zabbix-gent服务  

     

     

    好了,获取成功。

     这里只做了监控监控,知道 nginx的运行状态、连接数、、错误日志报警和防假死(web场景添加的)功能,自己想要监控nginx其他参数,请自行修改模板添加监控项并设置key,通过命令或shell获取 展现即可。

  • 相关阅读:
    HDU 5059 Help him
    HDU 5058 So easy
    HDU 5056 Boring count
    HDU 5055 Bob and math problem
    HDU 5054 Alice and Bob
    HDU 5019 Revenge of GCD
    HDU 5018 Revenge of Fibonacci
    HDU 1556 Color the ball
    CodeForces 702D Road to Post Office
    CodeForces 702C Cellular Network
  • 原文地址:https://www.cnblogs.com/huangyanqi/p/8527805.html
Copyright © 2011-2022 走看看