本文来自微信公众号「萌动的红日」,关注后可第一时间收到推送
打开原文 · 去微信公众号阅读

监控系统网络连接中CLOSE_WAIT状态的连接数量,如果数量大于10则发出钉钉提醒

 

✅ 功能说明

  • 使用 ss 或 netstat 获取当前系统中所有 TCP 连接。
  • 统计状态为 CLOSE_WAIT 的连接数量。
  • 如果数量大于指定阈值(如 10),则发送告警通知。

📦 最终优化脚本:monitor_close_wait.sh


#!/bin/bash# 配置项THRESHOLD=10CHECK_CLOSE_WAIT_CMD="ss -ant | awk '\$1 == \"CLOSE-WAIT\" {count++} END {print count+0}'"CHECK_PORT=8080TIMEOUT=1# 钉钉机器人 Webhook 地址(替换为你自己的)SEND_DINGTALK=trueDINGTALK_WEBHOOK="https://oapi.dingtalk.com/robot/send?access_token=你的token"# 获取机器信息HOSTNAME=$(hostname)IP_ADDRESS=$(hostname -I | awk '{print $1}')# 获取 CLOSE_WAIT 数量CLOSE_WAIT_COUNT=$(eval "$CHECK_CLOSE_WAIT_CMD" 2>/dev/null)if [[ -z "$CLOSE_WAIT_COUNT" ]]; then    echo "$(date '+%Y-%m-%d %H:%M:%S') 错误:无法获取 CLOSE_WAIT 连接数,请确认命令是否执行成功。"    exit 1fi# 检查连接数if (( CLOSE_WAIT_COUNT > THRESHOLD )); then    # 检查本地 8080 端口是否可访问(使用 curl 检测本地 TCP 连接)    if timeout "$TIMEOUT" bash -c "</dev/tcp/127.0.0.1/$CHECK_PORT"then        PORT_STATUS="✅ 端口 $CHECK_PORT 可访问"    else        PORT_STATUS="❌ 端口 $CHECK_PORT 不可访问或超时(${TIMEOUT}s)"    fi    MESSAGE="⚠️【系统告警】检测到 CLOSE_WAIT 连接异常!【主机名】: $HOSTNAME【IP地址】: $IP_ADDRESS【当前 CLOSE_WAIT 数量】: $CLOSE_WAIT_COUNT【阈值】: $THRESHOLD【服务端口状态】: $PORT_STATUS请及时检查应用连接释放情况,避免资源泄漏。"    echo "$MESSAGE"    # 发送钉钉消息    if $SEND_DINGTALKthen        JSON_DATA=$(cat <<EOF{    "msgtype": "text",    "text": {        "content": "$MESSAGE",        "at": {            "isAtAll": false        }    }}EOF)        curl -s -H "Content-Type: application/json" -d "$JSON_DATA" "$DINGTALK_WEBHOOK" > /dev/null    fielse    echo "$(date '+%Y-%m-%d %H:%M:%S') 当前 CLOSE_WAIT 连接数为 $CLOSE_WAIT_COUNT,未超过阈值 $THRESHOLD。"fi

🧪 示例钉钉报警消息内容

⚠️【系统告警】检测到 CLOSE_WAIT 连接异常!【主机名】: web-server-01【IP地址】: 192.168.1.10【当前 CLOSE_WAIT 数量】: 15【阈值】: 10【服务端口状态】: ❌ 端口 8080 不可访问或超时(1s)请及时检查应用连接释放情况,避免资源泄漏。


🕒 设置定时任务(crontab)

crontab -e添加如下内容,每5分钟运行一次监控*/5 * * * * /opt/monitor_close_wait.sh >> /var/log/close_wait_monitor.log 2>&1


关注「萌动的红日」

每天一点正能量,陪你迎接每一个萌动的红日。关注公众号,第一时间阅读最新文章。

本文内容已在公众号首发,点击下方按钮可跳转微信原文

打开原文 · 去微信公众号阅读

原文链接:在微信公众号中阅读

上一篇HPE服务器固件升级指南:iLO与BIOS安全更新全流程,并安装中文语言包 下一篇使用iperf3进行局域网测速
← 返回文章列表
关注公众号