一步:编写监控脚本。
脚本放在:/usr/local/zabbix/scripts/ 下面,命名:tcp_status.sh

#!/bin/bash
#shuidi
#scripts for tcp status
function SYNRECV {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'SYN-RECV' | awk '{print $2}'
}
function ESTAB {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'ESTAB' | awk '{print $2}'
}
function FINWAIT1 {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'FIN-WAIT-1' | awk '{print $2}'
}
function FINWAIT2 {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'FIN-WAIT-2' | awk '{print $2}'
}
function TIMEWAIT {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'TIME-WAIT' | awk '{print $2}'
}
function LASTACK {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'LAST-ACK' | awk '{print $2}'
}
function LISTEN {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'LISTEN' | awk '{print $2}'
}
$1

二步:添加执行权限:
[root@zabbix04 scripts]# chmod +x tcp_status.sh

三步:监控自定义 key 值。
[root@zabbix04 scripts]# vim /etc/zabbix/zabbix_agentd.conf
#monitor tcp
UserParameter = tcp[*],/bin/bash /usr/local/zabbix/scripts/tcp_status.sh "$1"

四步:重启 zabbix-agent 修改配置文件必须重启。
[root@zabbix04 scripts]# systemctl restart zabbix-agent

五步:导入模板【见 url 】
http://down.51cto.com/data/2457371

六步:Server测试Agent是否能获取到值,通过Zabbix_get(不要直接执行脚本)

[root@zabbix ~]# zabbix_get -s 192.168.10.40 -k "tcp[TIMEWAIT]"
46

七步:查看监控数据 。
监控 TCP 连接数 。_第1张图片

监控 TCP 连接数 。_第2张图片

监控 TCP 连接数 。_第3张图片