服务监控:TCP状态监控
TCP监控
Tcp的连接状态对于我们web服务器来说是至关重要的,尤其是并发量ESTAB;或者是syn_recv值,假如这个值比较大的话我们可以认为是不是受到了攻击,或是是time_wait值比较高的话,我们要考虑看我们内核是否需要调优,太高的time_wait值的话会占用太多端口,要是端口少的话后果不堪设想:所以今天我们来学学如何使用Zabbix监控tcp状态
1.配置Agent(标准化目录结构)
[root@linux-node1 ~]# vim /etc/zabbix/zabbix_agentd.conf #编辑配置文件引用key Include=/etc/zabbix/zabbix_agentd.d/*.conf [root@linux-node1 ~]# mkdir /etc/zabbix/scripts #存放Shell脚本
2.编写Shell脚本
[root@linux-node1 ~]# cd /etc/zabbix/scripts [root@linux-node1 scripts]# vim tcp_status.sh #!/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 tcp_status_fun(){ TCP_STAT=$1 ss -ant | awk 'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}' > /tmp/ss.txt TCP_STAT_VALUE=$(grep "$TCP_STAT" /tmp/ss.txt | cut -d ' ' -f2) if [ -z "$TCP_STAT_VALUE" ];then TCP_STAT_VALUE=0 fi echo $TCP_STAT_VALUE } tcp_status_fun $1;
添加执行权限
[root@linux-node1 scripts]# chmod +x tcp_status.sh
2.key的linux_tcp.conf的子配置文件如下:
[root@linux-node1 ~]# cat /etc/zabbix/zabbix_agentd.d/tcp.conf UserParameter=tcp_status[*],/bin/bash /etc/zabbix/scripts/tcp_status.sh "$1"
3.重启zabbix-agent,修改配置文件必须重启
[root@linux-node1 ~]# systemctl restart zabbix-agent
4.Server测试Agent是否能获取到值,通过Zabbix_get(不要直接执行脚本)
[root@linux-node1 scripts]# zabbix_get -s 192.168.90.11 -k tcp_status[ESTAB] 8
5.展示所有Key(记得将模板关联主机)
6.查看图形(图形是自定义创建)
作者:罗阿红
出处:http://www.cnblogs.com/luoahong/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。