Tcp的连接状态对于我们web服务器来说是至关重要的,尤其是并发量ESTAB;或者是syn_recv值,假如这个值比较大的话我们可以认为是不是受到了***,或是是time_wait值比较高的话,我们要考虑看我们内核是否需要调优,太高的time_wait值的话会占用太多端口,要是端口少的话后果不堪设想:

一、我的上一篇已经写了步骤,这里我只是列出脚本:

#!/bin/bash
#xiaoluo
#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

二、填写key值:当然大家在加入key值之后最好再服务器上面去执行看有没有返回值:

[root@WEB_007 scripts]# cat /usr/local/zabbix/etc/zabbix_agentd.conf.d/tcp 
#monitor tcp
UserParameter=tcp[*],/usr/local/zabbix/scripts/tcp_status $1

三、导入模板(在我的附件上,然后触发器根据自己的情况调整:)

四、查看效果:

zabbix 监控tcp连接的状态_第1张图片


到此结束:


在写这篇的时候刚好也写完了监控lvs的活动连接。下面也给出模板、大家自己下载,我这里给出脚本和key:

一、脚本:

#!/bin/bash
#xiaoluo
#status about lvs forward
function first {
/sbin/ipvsadm -L 2>/dev/null | grep '192.168.10.234:http' | sed '2d' | awk '{print $5}'
}
function second {
/sbin/ipvsadm -L 2>/dev/null | grep '192.168.10.235:http' | sed '2d' | awk '{print $5}'
}
function third {
/sbin/ipvsadm -L 2>/dev/null | grep '192.168.10.236:http' | sed '2d' | awk '{print $5}'
}
$1

二、key:

#monitor lvs
UserParameter=lvs[*],/usr/local/zabbix/scripts/ipvsadm_status $1

效果展示:

zabbix 监控tcp连接的状态_第2张图片

模板在下面自己下载: