运维之道 | Zabbix 监控服务器TCP连接状态信息

本文介绍了如何使用Zabbix监控服务器的TCP连接状态,包括TCP状态的解析、Zabbix-agent端的配置步骤,以及Zabbix-web界面中添加模板、定义监控项和图形的过程,确保能够有效监控服务器的TCP连接健康状况。
摘要由CSDN通过智能技术生成

前言

TCP的连接状态对于我们web服务器来说是至关重要的,尤其是并发量ESTAB,或者是syn_recv值,假如这个值比较大的话我们可以认为是不是受到了攻击;time_wait值比较高的话,我们要考虑看我们内核是否需要调优,太高的time_wait值的话会占用太多端口,要是端口少的话后果不堪设想


一、TCP状态介绍

在这里插入图片描述

1、man netstat查看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 :没有任何连接状态;
2、监控原理
[root@zabbix ~]# /bin/netstat -an|awk '/^tcp/{++S[$NF]}END{for(a in S) print a,S[a]}'
LISTEN 9
ESTABLISHED 53
FIN_WAIT2 1
TIME_WAIT 139

二、Zabbix-agent 端配置

1、编写TCP监控脚本
[root@zabbix zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d									///脚本存放目录
[root@zabbix zabbix_agentd.d]# vim tcp_status.sh			///脚本名
#!/bin/bash
#This script is used to get tcp and udp connetion status
#tcp status
metric=$1
tmp_file=/tmp/tcp_status.txt
/bin/netstat -an|awk '/^tcp/{++S[$NF]}END{for(a in S) print a,S[a]}' > $tmp_file
case $metric in
   closed)
          output=$(awk '/CLOSED/{print $2}' $tmp_file)
          if [ "$output" == "" ];then
             echo 0
          else
             echo $output
          fi
        ;;
   listen)
          output=$(awk '/LISTEN/{print $2}' $tmp_file)
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值