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、创建模板(自定义监控项):

好了,今天先这样吧

猜你喜欢

转载自www.cnblogs.com/zheng-weimin/p/11343703.html