1:环境
| Zabbix-server |
5.0 |
| Zabbix-agent |
5.0 |
2:实战操作
#!/bin/bash
#TCP连接数及状态
if [ $# -ne 1 ];then
echo -e "\033[32mUsage: sh $0 {ESTABLISHED|LISTEN|TIME_WAIT|CLOSED|CLOSE_WAIT|CLOSING|FIN_WAIT1|FIN_WAIT2|LAST_ACK|SYN_RECV|SYN_SENT}\033[0m"
exit 1
fi
case $1 in
ESTABLISHED)
result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "ESTABLISHED")
echo $result
;;
LISTEN)
result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "LISTEN")
echo $result
;;
TIME_WAIT)
result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "TIME_WAIT")
echo $result
;;
CLOSED)
result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "CLOSED")
echo $result
;;
CLOSE_WAIT)
result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "CLOSE_WAIT")
echo $result
;;
CLOSING)
result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "CLOSING")
echo $result
;;
FIN_WAIT1)
result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "FIN_WAIT1")
echo $result
;;
FIN_WAIT2)
result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "FIN_WAIT2")
echo $result
;;
LAST_ACK)
result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "LAST_ACK")
echo $result
;;
SYN_RECV)
result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "SYN_RECV")
echo $result
;;
SYN_SENT)
result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "SYN_SENT")
echo $result
;;
*)
echo -e "\033[32mUsage: sh $0 {ESTABLISHED|LISTEN|TIME_WAIT|CLOSED|CLOSE_WAIT|CLOSING|FIN_WAIT1|FIN_WAIT2|LAST_ACK|SYN_RECV|SYN_SENT}\033[0m"
esac
参数如下:
1:ESTABLISHED # socket已经建立连接
2:LISTEN # 监听状态
3:TIME_WAIT # 表示收到了对方的FIN报文,并发送出了ACK报文,等待2MSL后就可回到CLOSED状态
4:CLOSED # socket没有被使用,无连接
5:CLOSE_WAIT # 等待关闭连接
6:CLOSING # 服务器端和客户端都同时关闭连接
7:FIN_WAIT1 # 套接字已关闭,连接正在关闭
8:FIN_WAIT2 # 连接已关闭,套接字正在等待从远程端关闭
9:LAST_ACK # 远端关闭,当前socket被动关闭后发送FIN报文,等待对方ACK报文
10:SYN_RECV # 接收到SYN报文
11:SYN_SENT # 已经发送SYN报文
[root@zabbix-agent script]# ./check_tcp.sh
Usage: sh ./check_tcp.sh {ESTABLISHED|LISTEN|TIME_WAIT|CLOSED|CLOSE_WAIT|CLOSING|FIN_WAIT1|FIN_WAIT2|LAST_ACK|SYN_RECV|SYN_SENT}
3:配置监控
# 写入脚本到以下路径
# /etc/zabbix/zabbix_agent2.d/script/check_tcp.sh
[root@zabbix-agent script]# chmod +x /etc/zabbix/zabbix_agent2.d/script/check_tcp.sh
[root@zabbix-agent script]# cat /etc/zabbix/zabbix_agent2.d/custom.conf
UserParameter=check_tcp[*],/etc/zabbix/zabbix_agent2.d/script/check_tcp.sh $1
[root@zabbix-agent script]# systemctl restart zabbix-agent2.service
4:dashboard监控配置






数据慢慢请求上来了数据就出来了