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

    (1)agent端配置

    1)nginx编译安装需要加上该选项--with-http_stub_status_module

    2)修改nginx配置文件

    #vim /usr/local/nginx/conf/nginx.conf
    location /nginx_status {
    	stub_status on;
    	access_log off;
    	allow 127.0.0.1;
    	deny all;
    	}
    #nginx -s reload
    

    3)nginx状态解释

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

    4)修改agent端配置文件监控nginx状态配置

    # vim /etc/zabbix/zabbix_agentd.d/nginx_monitor.conf
    UserParameter=nginx_status[*],/bin/bash /etc/zabbix/zabbix_agentd.d/nginx_monitor.sh "$1"
    

    5)获取nginx状态的shell脚本

    #cd /etc/zabbix/zabbix_agentd.d/
    #vim nginx_monitor.sh
    NGINX_PORT=80  
    NGINX_COMMAND=$1
    nginx_active(){
        /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Active/ {print $NF}'
    }
    nginx_reading(){
        /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Reading/ {print $2}'
    }
    nginx_writing(){
        /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Writing/ {print $4}'
           }
    nginx_waiting(){
        /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Waiting/ {print $6}'
           }
    nginx_accepts(){
        /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $1}'
           }
    nginx_handled(){
        /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $2}'
           }
    nginx_requests(){
        /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $3}'
           }
      case $NGINX_COMMAND in
    active)
    nginx_active;
    ;;
    reading)
    nginx_reading;
    ;;
    writing)
    nginx_writing;
    ;;
    waiting)
    nginx_waiting;
    ;;
    accepts)
    nginx_accepts;
    ;;
    handled)
    nginx_handled;
    ;;
    requests)
    nginx_requests;
    ;;
          *)
    echo $"USAGE:$0 {active|reading|writing|waiting|accepts|handled|requests}"
        esac
    

    6)给脚本添加执行权限

    chmod +x nginx_monitor.sh
    

    7)重启agent服务

    # systemctl restart zabbix-agent
    

    (2)服务器端配置

    思路:定义application_status模板--->定义应用集nginx_status--->定义监控项---->定义图形--->定义触发器---->添加主机或主机关联这个模板

    1)server端验证是否能获取agent端的key值

    zabbix_get -s 192.168.1.32 -k nginx_status[active]
    

    2)键值

    nginx_status[active]
    nginx_status[reading]
    nginx_status[writing]
    nginx_status[waiting]
    nginx_status[accepts]
    nginx_status[handled]
    nginx_status[requests]
    

    3)添加模板

    4)定义应用集

    5)定义监控项:这里我只写了一个

    6)定义图形

    7)定义触发器:不是必须的,我这里设置超过50个并发连接就执行报警

    8)主机关联模板

    9)验证

  • 相关阅读:
    Single Number II
    Pascal's Triangle
    Remove Duplicates from Sorted Array
    Populating Next Right Pointers in Each Node
    Minimum Depth of Binary Tree
    Unique Paths
    Sort Colors
    Swap Nodes in Pairs
    Merge Two Sorted Lists
    Climbing Stairs
  • 原文地址:https://www.cnblogs.com/lovelinux199075/p/8990538.html
Copyright © 2011-2022 走看看