下面主要介紹TCP和Nginx狀態監控——作成模板形式:nginx
一、任意一臺機器上添加自定義監控項: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
一、添加自定義監控項和腳本建立腳本(這裏請記住使用文件方式——不要每次都去調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