Zabbix监控TCP状态

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监控配置

image

image

image

image

image

image

数据慢慢请求上来了数据就出来了
posted @ 2022-05-20 01:47  Layzer  阅读(133)  评论(0)    收藏  举报