Tcp的链接状态对于咱们web服务器来讲是相当重要的,尤为是并发量ESTAB;或者是syn_recv值,假如这个值比较大的话咱们能够认为是否是受到了攻击(例如SYN攻击),或是是time_wait值比较高的话,咱们要考虑看咱们内核是否须要调优,过高的time_wait值的话会占用太多端口,要是端口少的话后果不堪设想git
主机 | ip | zabbix版本 | 关系 |
---|---|---|---|
centos7.5 | 192.168.181.135 | zabbix4.2 | 服务端 |
centos7.5 | 192.168.181.136 | zabbix4.2 | 客户端 |
编写一个获取tcp状态的脚本文件,参考github
vim /etc/zabbix/scripts/tcp_status.sh #!/bin/bash ######################################################################### # File Name: tcp_status.sh # file_path: # Author: 浪子尘心 # Mail: 536418286@qq.com # Created Time: 2019-03-18 14:01:34 # Last Changed: 2019-03-18 14:02:18 # Description: TCP状态采集 # Version: ######################################################################### #!/bin/bash [ $# -ne 1 ] && echo "Usage:CLOSE-WAIT|CLOSED|CLOSING|ESTAB|FIN-WAIT-1|FIN-WAIT-2|LAST-ACK|LISTEN|SYN-RECV SYN-SENT|TIME-WAIT" && exit 1 ss_file=/tmp/ss.txt tcp_status_fun(){ [ $1 == "ESTABLISHED" ] && TCP_STAT="ESTAB" || TCP_STAT=$1 #可能你们习惯了看ESTABLISHED,因此我作了个小小的转换。 ss -ant | awk 'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}' > $ss_file TCP_STAT_VALUE=$(grep ${TCP_STAT} $ss_file|awk {'print $NF'}) if [ -z "$TCP_STAT_VALUE" ];then TCP_STAT_VALUE=0 fi echo $TCP_STAT_VALUE } tcp_status_fun $1
给脚本加执行权限web
chmod +x /etc/zabbix/scripts/tcp_status.sh
vim /etc/zabbix/zabbix_agentd.d/tcp_status.conf UserParameter=tcp_status[*],/etc/zabbix/scripts/tcp_status.sh $1
systemctl restart zabbix-agent
zabbix_get -s 192.168.181.136 -p 10050 -k tcp_status[LISTEN]
配置-模板-导入
模板地址
导入完成后选择客户端主机,添加模板便可,点击主机群组 myApplications 查看
点击tcp模板的监控项查看
查看图形
vim