服务公告
服务器带宽告警脚本化:阈值采集与通知
发布时间:2026-01-07 14:42
## 场景 带宽跑满是一类隐蔽故障:服务变慢、丢包上升,但机器本身负载极低,CPU 与内存一片绿,不盯带宽曲线根本想不到链路上。控制台的监控告警覆盖了平台侧,业务上常还需要更细的粒度——按网卡、按时段、按自定义阈值告警,采集频率也要跟着业务节奏走,脚本化采集就是答案。原理不复杂:读网卡的流量计数器,两次采样做差得到速率,超阈值就发通知,全部用系统自带能力实现。 ## 步骤清单 数据源用虚拟文件系统,零依赖。 ``` cat /proc/net/dev ``` 脚本骨架:间隔采样、做差换算、判断发信。采样窗口取五秒是平衡值,太短容易被瞬时尖峰触发,太长则反应迟钝。 ``` #!/usr/bin/env bash IFACE=eth0 LIMIT_MB=800 r1=$(awk "/$IFACE:/{print \$2}" /proc/net/dev) sleep 5 r2=$(awk "/$IFACE:/{print \$2}" /proc/net/dev) mb=$(( (r2 - r1) / 5 / 1024 / 1024 )) if [ "$mb" -gt "$LIMIT_MB" ]; then echo "带宽超阈值 ${mb}MB/s" | mail -s "带宽告警" ops@example.com fi ``` 收字节的字段是第二列,发字节是第十列,换方向改字段号。定时任务每分钟跑一次,采样窗口五秒足够平滑。 ## 验证 用打流工具把带宽压过阈值,确认告警在下一分钟内到达;再压到阈值之下,确认安静。连续观测一天,误报与漏报都归零,脚本才算可用。告警内容里带上当前速率与时间,处理的人不用再登机器查第一现场。顺手再加一条带宽谷值的例行记录,长期数据攒下来,容量规划的依据就有了。 ## 注意事项 阈值别贴着带宽上限设,业务正常高峰也会冲高,按高峰曲线的八成设线更合理;不同业务时段还可以在脚本里配两档阈值,夜间用严档、白天用宽档,误报率立刻下来。通知渠道要考虑失效场景,邮件进垃圾箱等于没告警,重要业务加一条备用通道。计数器是累计值,重启后清零,脚本不需要处理回绕,但要知道跨重启的那次采样不可信。顺云云服务器上这套脚本配合控制台的监控告警双轨并行,平台曲线管大盘,自定义脚本管细节,两边互为备份,带宽异常基本无处遁形。上一篇: 服务器采购从买断到租用的演变
下一篇: 长期运营服的降配与升级时机