第一章 自定义监控tcp状态
命令可以选择ss 或者 netstat ss打印基于socket的统计信息,实际运行下来,ss的速度要比netstat要快得多
1.1 tcp的十一种状态
十一种状态:
LISTEN - 侦听来自远方TCP端口的连接请求;
SYN-SENT -在发送连接请求后等待匹配的连接请求;
SYN-RECEIVED - 在收到和发送一个连接请求后等待对连接请求的确认;
ESTABLISHED- 代表一个打开的连接,数据可以传送给用户;
FIN-WAIT-1 - 等待远程TCP的连接中断请求,或先前的连接中断请求的确认;
FIN-WAIT-2 - 从远程TCP等待连接中断请求;
CLOSE-WAIT - 等待从本地用户发来的连接中断请求;
CLOSING -等待远程TCP对连接中断的确认;
LAST-ACK - 等待原来发向远程TCP的连接中断请求的确认;
TIME-WAIT -等待足够的时间以确保远程TCP接收到连接中断请求的确认;
CLOSED - 没有任何连接状态;
1.2 自定义监控TCP的十一种状态[在本地进行取值]
1.2.1 在客户端进行添加
[root@web03 zabbix_agentd.d]# cat tcp.conf
UserParameter=tcp[*],ss -an|awk '{print $2}'|grep -i "$1"|wc -l
[root@web03 zabbix_agentd.d]# zabbix_agentd -p
[root@web03 zabbix_agentd.d]# systemctl restart zabbix-agent
1.2.2 在server上使用zabbix_get获取对应主机的值:
[root@za02-server ~]# zabbix_get -s 172.16.1.81 -k tcp[ESTAB]
81
[root@za02-server ~]# zabbix_get -s 172.16.1.81 -k tcp[TIME-WAIT]
59
1.2.3 在web界面进行添加(tcp一共十一种状态,可以用克隆来进行添加)
实例演示: 监控tcp的22端口是否处于监听状态,使用Service State
值映射
点击->检测中->最新数据