04:監控Nginx和TCP狀態模板製做

下面主要介紹TCP和Nginx狀態監控——作成模板形式:nginx

1、TCP狀態模板製做:

一、任意一臺機器上添加自定義監控項:web

[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]# 

二、zabbix的管理界面上進行以下操做:bash

2、Nginx狀態監控模板製做:

一、添加自定義監控項和腳本建立腳本(這裏請記住使用文件方式——不要每次都去調nginx):curl

[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]#

二、建立模板(自定義監控項):tcp

好了,今天先這樣吧url

相關文章
相關標籤/搜索