zoukankan      html  css  js  c++  java
  • 04:监控Nginx和TCP状态模板制作

    下面主要介绍TCP和Nginx状态监控——做成模板形式:

    一、TCP状态模板制作:

    1、任意一台机器上添加自定义监控项:

    [root@tvm_web1 zabbix_agentd.d]# cat /etc/zabbix/zabbix_agentd.d/monitor_tcp_status.conf         # 路径和文件名(及内容)
    UserParameter=TCP_Status[*],ss -ant |grep -c $1        #  当然你也可以使用netstat(如果不怕超时)                                      
    [root@tvm_web1 zabbix_agentd.d]# 

    2、zabbix的管理界面上进行如下操作:

    二、Nginx状态监控模板制作:

    1、添加自定义监控项和脚本创建脚本(这里请记住使用文件方式——不要每次都去调nginx):

    [root@tvm_web1 zabbix_agentd.d]# cat /etc/zabbix/zabbix_agentd.d/monitor_nginx_status.conf 
    UserParameter=nginx_status[*],/etc/zabbix/zabbix_agentd.d/monitor_nginx_status.sh $1
    [root@tvm_web1 zabbix_agentd.d]# cat /etc/zabbix/zabbix_agentd.d/monitor_nginx_status.sh 
    #!/bin/bash
    NGINX_COMMAND=$1
    CACHEFILE="/tmp/nginx_status.txt"
    CMD="/usr/bin/curl http://127.0.0.1:8000/nginx_status"
    
    if [ ! -f $CACHEFILE ];then
        $CMD > $CACHEFILE 2>/dev/null
    fi
    
    TIMEFLM=`stat -c %Y $CACHEFILE`
    TIMENOW=`date +%s`
    
    if [ `expr $TIMENOW - $TIMEFLM` -gt 60 ];then
        rm -f $CACHEFILE
    fi
    
    if [ ! -f $CACHEFILE ];then
        $CMD > $CACHEFILE 2>/dev/null
    fi
    
    nginx_active(){
        grep 'Active' $CACHEFILE | awk '{print $NF}'
        exit 0;
    }
    
    nginx_reading(){
        grep 'Reading' $CACHEFILE | awk '{print $2}'
        exit 0;
    }
    
    nginx_writing(){
        grep 'Writing' $CACHEFILE | awk '{print $4}'
        exit 0;
    }
    
    nginx_waiting(){
        grep 'Waiting' $CACHEFILE | awk '{print $6}'
        exit 0;
    }
    
    nginx_accepts(){
        awk NR==3 $CACHEFILE | awk '{print $1}'
        exit 0;
    }
    
    nginx_handled(){
        awk NR==3 $CACHEFILE | awk '{print $2}'
        exit 0;
    }
    
    nginx_requests(){
        awk NR==3 $CACHEFILE | awk '{print $3}'
        exit 0;
    }
    
    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
    [root@tvm_web1 zabbix_agentd.d]#

    2、创建模板(自定义监控项):

    好了,今天先这样吧

  • 相关阅读:
    Android屏幕适配
    设计模式学习心得
    C语言中的作用域、链接属性与存储属性
    二级指针删除单向链表
    C++编程风格
    python中index、slice与slice assignment用法
    lua_pcall与lua_call之间的区别
    lua-C++ userdata使用
    lua中调用C++函数
    C++中为什么有时要使用extern "C"
  • 原文地址:https://www.cnblogs.com/zheng-weimin/p/11343703.html
Copyright © 2011-2022 走看看