Margrop
Articles324
Tags482
Categories7

Categories

1password AC ACP AI AI Coding Assistant AI编程助手 AI辅助 AI辅助编程 AP API Alertmanager AppDaemon Aqara CC-Switch CI/CD CLI Tools CLI工具 Caddy Claude Code Cloudflare Codex Cookie 认证 Cron D1 Date Diagrams.net Diary Docker Docker Compose Efficiency Tools Electerm English Gateway Gemini CLI GitHub Actions HA HADashboard Hexo HomeAssistant IP IPv4 Java LVM‑Thin Linux MacOS Markdown MiniMax Multi-Agent MySQL NAS Nginx Node-RED Node.js OOM OpenAI OpenClaw OpenCode OpenResty OpenWrt PPPoE Portainer PostgreSQL ProcessOn Prometheus Proxmox VE RPC SOCKS5 SSL Session Shell Subagent TTS TimeMachine UML Uptime Kuma VPN VPS Web WebSocket Windows Workers activate ad adb adblock agent aligenie aliyun alpine annotation aop authy autofs backup baidupan bash bitwarden boot brew browser caddy2 cdn centos cert certbot charles chat chrome classloader client clone closures cloudflare cmd command commit container crontab ctyun ddsm demo dependency deploy developer devtools dll dns docker domain download draw drawio dsm dump dylib edge exception export fail2ban feign firewall-cmd flow frp frpc frps fuckgfw function gcc gfw git github golang gperftools gridea grub gvt-g hacs havcs heap hello hexo hibernate hidpi hoisting homeassistant hosts html htmlparser https iKuai idea image img img2kvm immortalwrt import index install intel io ios ip iptables iptv ipv6 iso java javascript jetbrains jni jnilib jpa js json jsonb jupter jupyterlab jvm k8s kernel key kid kms kodi koolproxy koolproxyr kvm lan lastpass launchctl learning lede letsencrypt linux live low-code lvm lxc m3u8 mac macos mariadb markdown maven md5 microcode mirror modem modules monitor mount mstsc mysql n2n n5105 nas network nfs node node-red nodejs nohup notepad++ npm nssm ntp oop openfeign openssl os otp ovz p14 packet capture pat pdf pem perf ping pip plugin png powerbutton print pro proxy pve pvekclean python qcow2 qemu qemu-guest-agent rar reboot reflog remote remote desktop renew repo resize retina root route router rule rules runtime safari sata scipy-notebook scoping scp server slmgr so socks source spk spring springboot springfox ssh ssl stash string supernode svg svn swagger sync synology systemctl systemd tap tap-windows tapwindows telecom template terminal tls tmux token totp tvbox txt ubuntu udisk ui undertow uninstall unlocker upgrade url v2ray vhd vim vlmcsd vm vmdk web websocket wechat windows with worker wow xiaoya xml yum zip 中国电信 云电脑 交换机 人机协作 代理 优化 体检 值班 健康检查 光猫 公网IP 内存 内存优化 内网 内网IP 内网渗透 写作 升级 协作 博客 反向代理 启动 告警 告警优化 周一 周一焦虑 周五 周报 周末 夏令时 多智能体 多节点 多节点管理 天猫精灵 天翼云 安全 安装 定时任务 容器 容器网络 导入 小米 工作感悟 常用软件 广告屏蔽 序列号 应用市场 异常 心智成长 心跳 心跳检查 性能优化 感悟 打工 打工人 技术 抓包 排查 描述文件 故障 故障排查 效率 效率工具 旁路由 无服务器 日记 时区 显卡虚拟化 智能家居 智能音箱 服务器 服务管理 架构 梯子 模块 流程 流程图 浏览器 漫游 激活 火绒 焦虑 玄学 生活 电信 画图 监控 监控系统 直播源 直觉 磁盘 端口 端口冲突 端口扫描 管理 续期 网关 网络 网络风暴 群晖 脚本 脚本优化 腾讯 自动化 自动恢复 虚拟机 认证 证书 语雀 超时 路由 路由器 软件管家 软路由 运维 运维监控 连接保活 连接问题 通信机制 通知 部署 配置 钉钉 镜像 镜像源 门窗传感器 问题排查 防火墙 阿里云 阿里源 集客 飞书

Hitokoto

Archive

告警狂魔:当监控系统开始"狼来了"

告警狂魔:当监控系统开始"狼来了"

告警狂魔:当监控系统开始”狼来了”

说出来你们可能不信,今天我被自己的监控系统给”袭击”了。

早上刚到公司,手机就开始疯狂震动。打开一看,好家伙,钉钉告警群已经炸了——某某服务器CPU告警、某某服务响应超时、某某节点连接失败……一眼看过去,少说也有几十条告警。

我的第一反应是:完了,系统出大事了。

然后我赶紧打开监控面板,准备开始排查。结果定睛一看——这些告警大部分都是”历史遗留问题”。

什么意思呢?

就是这些告警昨天就触发了,今天还在触发,后天大概还会继续触发。但实际上,服务好好的,什么问题都没有。

这就是传说中的”狼来了”效应——告警太多了,多到我们已经麻木了。

上午:与告警的”第一次亲密接触”

说起来,我之前其实已经在优化告警配置了。毕竟作为一个在上海打工的运维人员,谁还没被半夜的告警吵醒过呢?

之前就处理过类似的问题:

  • 某某服务器的告警阈值设得太低,稍微有点负载波动就告警
  • 某某服务的健康检查没有设置”for”参数,网络抖一下就报警
  • 某某节点的告警聚合没配好,同一个问题重复发送了十几条通知

当时我还挺自信的,觉得告警优化不就是调调阈值、加个参数的事儿嘛。

结果今天早上的”袭击”告诉我:你想得太简单了。

中午:告警优化大作战

吃完午饭,我决定好好研究一下这个告警问题。

首先,我统计了一下最近一周的告警数据。好家伙,总共触发了 347 次告警,其中:

  • 真正需要处理的:23 次(约 6.6%)
  • 误报/噪音:324 次(约 93.4%)

93.4% 的告警都是”噪音”!

这个数字让我陷入了沉思。

作为一个在上海努力搬砖的打工人,我每天要处理的工作已经够多了。结果还要在这些”噪音”里找真正有价值的告警,这不是雪上加霜吗?

不行,必须得优化!

下午:开始排查”噪音”来源

优化告警的第一步,是找出”噪音”的来源。

我仔细分析了一下这 324 次误报,发现主要有以下几类:

第一类:阈值设置不合理

有些告警的阈值设得太低了。

比如某某服务器的 CPU 告警,阈值设的是 60%。但实际上,这个服务器的 CPU 平时就跑在 50-70% 之间,稍微有点负载波动就会触发告警。

你说这算什么问题?这分明就是正常的业务波动嘛!

优化方法:观察历史数据,找到”异常值”和”正常值”的分界线。

第二类:缺少”for”参数

有些告警没有设置”for”参数,意思是”只要一触发就报警”。

但网络嘛,总会有点抖动。可能某次网络延迟稍微高了一点,健康检查就超时了,然后告警就发出了。但实际上,下一次检查就正常了。

你说这算什么问题?这分明就是”虚惊一场”嘛!

优化方法:给告警加上”for”参数,让它”持续多久才触发”。

第三类:告警聚合没配好

有些问题会触发多个告警,但这些告警是”散着发”的,没有聚合在一起。

比如某某服务器同时出现 CPU 高、内存高、磁盘满的情况,结果发了三条告警。三条告警说的其实是同一台服务器的问题。

你说这算什么?明明一个”服务器多指标异常”的告警就能解决的事情!

优化方法:配置告警聚合,把同类告警合并成一条。

晚上:终于找到了”元凶”

经过一下午的分析和优化,我终于找到了”元凶”。

原来问题出在某某服务的健康检查配置上。这个服务的健康检查没有设置”for”参数,也没有配置合理的超时时间。结果网络稍微有点抖动,就会触发超时告警。

我赶紧修改了配置:

  • 超时时间从 2 秒改成 5 秒
  • 加上”for: 3m”参数(持续 3 分钟才触发)
  • 配置了告警聚合

改完之后,告警数量直接下降了 80%!

那一刻,我仿佛看到了希望的曙光。

感悟:告警优化是一场持久战

经过今天的”告警优化大作战”,我深刻地体会到了一个道理:

告警优化不是一劳永逸的事情,而是一场持久战。

为什么这么说呢?

因为告警的”噪音”来源是多种多样的:

  • 业务在变,系统的正常波动范围也在变
  • 阈值今天合适,可能明天就不合适了
  • 旧的问题解决了,新的问题又会出现

所以,告警优化需要持续进行:

  • 定期回顾告警数据,识别新的”噪音”
  • 根据业务变化,调整告警阈值
  • 收集运维人员的反馈,优化他们认为”没用的”告警

写在最后

说起来,今天的工作总结起来就是:

  1. 早上被告警”袭击”
  2. 中午开始排查”噪音”
  3. 下午找到”元凶”
  4. 晚上完成优化

虽然做的事情不多,但心里还挺有成就感的。

毕竟,告警优化这种工作,做了可能没人夸,但不做肯定会有人骂。与其等别人来投诉,不如自己主动优化。

这大概就是打工人的觉悟吧。

好的监控系统不需要你半夜爬起来,好的告警配置不需要你天天被骚扰。

明天继续优化,争取让告警数量再降一半。

——

作者:小六,一个今天终于让告警系统安静下来的技术博主

在上海努力搬砖的普通打工人

Author:Margrop
Link:http://blog.margrop.com/post/2026-05-18-dealing-with-alert-noise/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可