23recfv 发表于 2015-10-22 08:53:23

Zabbix 监控tcp连接的状态


    Tcp的连接状态对于我们web服务器来说是至关重要的,尤其是并发量ESTABLISH;或者是syn_recv值,假如这个值比较大的话我们可以认为是不是受到了攻击,或是是time_wait值比较高的话,我们要考虑看我们内核是否需要调优,太高的time_wait值的话会占用太多端口,要是端口少的话后果不堪设想:
一、下面是一个监控的脚本:
脚本放在/usr/local/zabbix/scripts/下面,命名tcp_status。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash
#shuidi
#scripts for tcp status
function SYNRECV {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s}' | grep 'SYN-RECV' | awk '{print $2}'
}
function ESTAB {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s}' | grep 'ESTAB' | awk '{print $2}'
}
function FINWAIT1 {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s}' | grep 'FIN-WAIT-1' | awk '{print $2}'
}
function FINWAIT2 {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s}' | grep 'FIN-WAIT-2' | awk '{print $2}'
}
function TIMEWAIT {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s}' | grep 'TIME-WAIT' | awk '{print $2}'
}
function LASTACK {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s}' | grep 'LAST-ACK' | awk '{print $2}'
}
function LISTEN {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s}' | grep 'LISTEN' | awk '{print $2}'
}
$1




二、填写key值:

1
2
3
# cat /etc/zabbix/zabbix_agentd.conf
#monitor tcp
UserParameter=tcp[*],/usr/local/zabbix/scripts/tcp_status $1




三、导入模板(在我的附件上,然后触发器根据自己的情况调整:)
    模版的导入很简单,具体我这里不再介绍。
四、查看效果:


到此TCP监控我们就配置OK了。


页: [1]
查看完整版本: Zabbix 监控tcp连接的状态