下面主要介绍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、创建模板(自定义监控项):
好了,今天先这样吧