Margrop
Articles394
Tags1012
Categories7

Categories

/health 200 /v1/models 0.025s 0.17.0 0步 0步主动 0步元递归 0步本身 12类 18789 18天idle 18天静默 192.168.x.x 1password 2.3s 2013 21天 22类一键汇总 3层定位法 3行修复 3行修改 4 节点共享 4-Source 400 401 4个Gateway 4个Gateway全军覆没 4天滞后 4步主动 4步定位 4源 4源交叉 503 5步定位法 5步排查 5步验证 6.2.0 6.24 release 6.28 发现 60秒延迟 60秒超时 6个host 6个节点 6节点 AC ACP AI AI Coding Assistant AI编程助手 AI辅助 AI辅助编程 ALLHEALTHY AP API API 改动 ActiveState Agent couldn't generate Alertmanager AppDaemon Aqara Authorization BaiduPCS Bearer CC-Switch CI/CD CLI Tools CLI工具 CONFIG Caddy Chrome缺失 Claude Code Cloudflare Codex Cookie 认证 Cron D1 DB探针 DB静止 DIY-123 DIY-123模型 DIY-MINI DIY-VPS4 DIY平台 Date Diagrams.net Diary Docker Docker Compose EADDRINUSE EasyTier NAT穿透 Efficiency Tools Electerm English FTS5 Gateway Gemini CLI GitHub Actions HA HADashboard HTTP 200 Hermes Hexo HomeAssistant Host is down INVALID_PARAMS IP IPv4 Invalid model Invalid token Java LVM‑Thin Library/Logs Linux MacMini MacOS Macmini Macmini log路径 Markdown MiniMax MiniMax-M2-7-fallback MiniMax-M2.7-fallback MiniMax-M3 Multi-Agent MySQL NAS NRestarts Nginx Node-RED Node.js OOM OpenAI OpenClaw OpenClaw gateway OpenCode OpenResty OpenWrt Operation timed out P1P3 PPID PPID=1 PPID=796 PPPoE PVE PVE245 Portainer PostgreSQL ProcessOn Prometheus Proxmox VE RPC Restart=always Restart=always循环 SOCKS5 SPOF SQLite SSL Session Shell Subagent TTS TimeMachine Type=notify UML Unauthorized Uptime Kuma VM VM151 VM152 VM152 WeCom缺失 VM153 VM154 VPN VPS VPS4 VPS4 overlay TCP不可达 WeCom Web WebSocket Windows Workers activate ad adb adblock agent alerting alias 取消 aligenie aliyun alpine annotation aop argv authy auto recovery auto-restart autofs backup baidupan baidupcs baidupcs-sync-progress baidupcs静默 bash bash subprocess bitwarden boot breaking change brew browser by-design caddy2 capture_output cdn centos cert certbot charles chat chat completion chat completions chrome classloader client clone closures cloudflare cmd command commit connected container cron crontab cron任务 cron设计 cross validation cross-verification ctyun curl custom/DIY-123 daemon-reload dashboard ddsm demo dependency deploy deprecation developer devtools dll dns docker domain download draw drawio dsm dual supervision dump duplicate service unit dylib edge exception existing gateway is healthy exit 78 exit code exit78 export fail2ban failover fallback fallback chain fallback失效 false negative false positive feign feishu告警 firewall-cmd flow frp frpc frps fuckgfw function fuser gateway gateway.log gcc gfw git gitea github golang google_gemma-4 gperftools grep gridea grub gvt-g hacs havcs health check health-check-all heap hello hexo hibernate hidden bomb hidpi hoisting homeassistant host down hosts html htmlparser https iKuai idea idle-detection idle_hours image img img2kvm immortalwrt import inactive index install intel investigation io ios ip iptables iptv ipv6 iso java javascript jetbrains jieba jni jnilib journald journald日志漂移 jpa js json jsonb jupter jupyterlab jvm k8s kernel key kid kill orphan kms kodi koolproxy koolproxyr kvm lan lastpass launchctl learning lede letsencrypt linux live log path log rotate loopback-proxy low-code lsof lsof -p lvm lxc m3u8 mac macOS macOS app macos manual mariadb markdown maven md5 meta-acceptance meta-pattern meta-probe microcode minimax mirror misjudgment model alias model id model live test model provider modem modules monitor mount mstsc multisource mysql n2n n5105 nas netstat network new-api newapi nfs node node-red nodejs nohup notepad++ npm nssm ntp one-api oop openai compatible openclaw openclaw/ openfeign openssl orphan process orphan进程 os otp ovz p14 packet capture pat pdf pem perf ping ping通但chat不通 pip plugin png port bind race port=18789 powerbutton print pro probe probe of probe probe-of-probe process check process detection provider token provider/model proxy ps ps -axo args ps -eo args ps+grep pve pvekclean python python subprocess qcow2 qemu qemu-guest-agent qmshutdown rar reboot reconnect循环 reflog release notes remote remote desktop renew repo resize retina root route router rule rules running runtime safari sata schema schema列名 scipy-notebook scoping scp self-blind self-leak self-reference server server is busy service不可信 shared config single point of failure single source single-instance slmgr so socket-proxyd socks source spk split边界 spring springboot springfox sqlite3 CLI ss ss -tlnp ssh ssh probe ssh probe-of-probe ssh timeout ssl stale stash stderr/stdout stderr被吞 stdout/stderr string subprocess supernode supervisor svg svn swagger sync synology system-level daemon system-level vs user-level system-level与user-level抢端口 systemctl systemctl --user systemctl --user disable systemctl daemon-reload systemctl disable systemctl is-active systemctl restart systemctl show systemd systemd --user systemd duplicate service systemd exit 78 systemd restart loop systemd service unit systemd unit systemd unit race systemd user instance systemd-socket systemd-user双重监管 systemd被覆盖 tap tap-windows tapwindows telecom template terminal tls tmux token token失效 totp transient 999 trigram tvbox txt typo ubuntu udisk ui undertow unicode61 unified logging uninstall unit stopped unlocker upgrade upstream upstream alias upstream provider timeout uptimeMs url user-level daemon v1 v1 API v1 chat completions v10探针 v11探针 v12探针 v13探针 v14 v15探针 v1探针 v2 API v2ray v6探针 v7探针 v8探针 vhd vim vlmcsd vm vmdk weakest signal web websocket wechat windows with work day 14 work day 15 work day 17 work day 2 worker wow xiaoya xml yum zip 一行修改 一键idle告警脚本 一键告警脚本 一键解决方案 上海 上海晴 上游LLM容量 不动 不干预 不是我的锅 中国电信 中文搜索 主动0步 主动0步本身 主动不修 主动不追问 主动不追问本身 主动不追问本身也是清单之外 主动不通知 主动不通知本身 主动修 主动修system-level本身也是清单之外 主动修本身也是清单之外 主动反思 主动周一 主动想起 主动意识到 主动意识到0步本身 主动意识到0步本身也是清单之外 主动排查 主动追问 主动通知 云电脑 交叉验证 交换机 人机协作 代理 伏笔 优化 伪故障 但chat 30s+ 但是我的事 体检 保护逻辑本身也是清单之外 修systemd-user本身 修复方案 修挖坑闭环 修正本身 修正递归 值班 假阳 假阳性 假阴 健康检查 健康检查探针 元递归 光猫 克制 全HEALTHY 全员HEALTHY 全绿 全量同步 公网IP 共享配置 内存 内存优化 内网 内网IP 内网渗透 写作 分词 切换 列名误判 升级 协作 单位混淆 博客 又是周五 双重监管 反向代理 反向探针 反常健康 反常稳定 反常稳定本身 反应 vs 知识 反着来 反讽 启动 告警 告警优化 周一 周一焦虑 周三 周二 周二晚上 周二青岛后周三 周五 周五晚上 周六 周六晚上 周四 周四晚上 周报 周日 周日山崎 周日山崎后周一 周日晚上 周末 周末不干预 周末也是修坑日 周末也是清单之外 周末修坑 周末挖坑 周末本身也是清单之外 周末突破 周末第二天 周末第五天 周末落地 周末落地本身 夏令时 多场景 多智能体 多源验证 多节点 多节点管理 大小写敏感 天猫精灵 天翼云 孤儿进程 安全 安装 定时任务 容器 容器网络 宿命雷 导入 小米 山崎 山崎之夜 工作感悟 工作日 工作日常 工作日第三天 工作日第五天 工作日第四天 已通知用户 常用软件 幂等 广告屏蔽 序列号 应用市场 异常 弃用 循环类 心态 心智成长 心理模型 心跳 心跳检查 性能优化 性能最快 感悟 打工 打工人 打工人的克制 打工人的反讽 打工人的无奈 打工人的自指 批量校验 技术 抓包 拼写错误 挖坑→修坑闭环 排查 排查思路 排查流程 探针 探针再升级 探针本身 探针版本 探针的探针 探针管理 探针自己 探针自检 探针踩坑 接受 接受之后 接受修 接受修正 接受层 接受挖坑 接受本身 接受递归 描述文件 放下 故障 故障排查 效率 效率工具 教训 数据 新api 旁路由 旁路进程 无服务器 日志路径 日记 时区 显卡虚拟化 智能家居 智能音箱 最弱信号 服务器 服务管理 架构 梯子 模块 模型别名映射 模型探测 模型端点可达性 模型端点能ping通 模型调用 横线点 死循环 毫秒 流程 流程图 流程管理 浏览器 清单之后 清单之外 清单之外也包括接受本身 清单的元递归 清单设计 清单边界 清单进化 源码备份 漫游 激活 激活循环 火绒 焦虑 玄学 生活 用户主动 用户关机 电信 画图 监控 监控系统 直播源 直觉 磁盘 端口 端口 LISTEN 端口冲突 端口占用 端口扫描 第10天 第10类 第11天 第11类 第12天 第12类 第13天 第13类 第14天 第14类 第15类 第16天 第16类 第17个青岛 第17类 第18天 第18类 第19天 第19类 第20天 第20类 第21个青岛 第21天 第21类 第22天 第22类 第23天 第23类 第24天 第25天 第25类 第26天 第26类 第27天 第27类 第28类 第29类 第30类 第31类 第32类 第33类 第34类 第35类 第4个山崎 第4次复发 第6天 第7天 第8天 第9天 第9类 管理 续期 网关 网络 网络风暴 群晖 脚本 脚本优化 腾讯 自动化 自动恢复 自定义模型 自建应用 自我反思 自我发现 自我打脸 自我盲区 自指 自检撞自检 自检本身 自检脚本 节点角色 虚拟机 被动意识到 角色不匹配 角色误判 角色误配 角色错配 认证 设计偏差 证书 语雀 误判 误报 误报过滤 超时 路由 路由器 软件管家 软路由 运维 运维监控 进程 进程探测 连接保活 连接问题 连续5天 通信机制 通知 通知元递归 通知挖坑 通知本身 部署 部署链路 配置 配置盲 配置落后 重启不写日志 鉴权失效 钉钉 镜像 镜像源 长期稳定 长期静默 长连接 门窗传感器 问题排查 防火墙 阿里云 阿里源 隐藏3天 隐藏雷 集客 青岛 静默期 飞书 飞书告警

Hitokoto

Archive

今天又被告警叫醒,但这次我学会了和它和解

今天又被告警叫醒,但这次我学会了和它和解

今天又被告警叫醒,但这次我学会了和它和解

凌晨两点十七分,手机震动了。

作为一个在上海打工的运维人员,我已经习惯了深夜被各种”突发状况”叫醒。但今天这个告警,让我陷入了深深的思考——

它真的需要叫醒我吗?

凌晨的告警:成长的烦恼

故事是这样的。

凌晨两点,某台服务器的磁盘使用率超过了80%,触发了告警。按照之前的配置,这个告警会直接发送到我的手机上。凌晨两点,我睡眼惺忪地拿起手机,看了一眼告警内容,然后默默地把手机放回去,继续睡觉。

为什么呢?

因为我看了日志,发现这个磁盘使用率其实已经稳定在这个水平好几天了。不是突然飙升,而是缓慢增长。而且更重要的是,服务本身并没有受影响——只是数字看起来有点”吓人”。

这就是我今天想聊的话题:告警疲劳(Alert Fatigue)

告警疲劳:打工人的隐形杀手

说起来,告警疲劳可能是最容易被人忽视的职业病之一。

作为运维人员,我们每天要面对大量的监控告警。CPU高、内存满、磁盘不足、网络抖动、服务超时……每一个告警都像是在喊”救命”。但问题是,有些”救命”其实是假警报,或者是无关紧要的波动。

如果你对每一个告警都如临大敌,那么恭喜你,你很快就会陷入告警疲劳——一种”狼来了”式的心理状态。你会开始忽略告警,或者变得麻木,真正重要的告警也会被淹没在噪音里。

这种状态对工作和生活都是巨大的消耗。

我的”和解”之路

那么,怎么和告警和解呢?

第一步:分类对待

不是所有的告警都需要立即响应。我学会了把告警分成几类:

  • P0 - 必须立即处理:服务完全不可用,影响用户
  • P1 - 尽快处理:部分功能受损,但不致命
  • P2 - 择机处理:有潜在风险,但暂时不影响
  • P3 - 忽略/观察:已知问题或者误报

磁盘使用率超过80%?大多数情况下,这应该是P2或者P3,而不是P0。除非你的磁盘明天就要爆了,否则真的不用半夜爬起来。

第二步:优化告警规则

很多告警其实是配置不当的结果。比如:

  • 告警阈值设置得太敏感
  • 没有设置合理的冷却时间
  • 告警没有分级,统统都是最高优先级

这次事件之后,我花了点时间重新审视我们的告警规则。把一些不合理的阈值调高,给每种告警都设置了合理的冷却时间,让告警真正能够反映出真实的问题,而不是无病呻吟。

第三步:学会”等等看”

有些告警是可以等一等的。

比如那个磁盘告警,我没有立刻爬起来处理,而是第二天早上再去看了一眼。果然,磁盘使用率还是80%,服务正常运行,没有任何问题。如果昨晚我去处理了,那就是半夜白跑一趟。

当然,这需要你对系统有足够的了解,知道哪些情况是真的紧急,哪些情况是可以观察的。如果你判断不准,那还是保险起见,先处理再说。

今天的工作:告警优化实践

说起来,今天正好做了告警优化的相关工作。

上午的时候,我检查了OpenClaw的告警配置,发现健康检查的超时设置有点激进——很多探测都设置了很短的timeout,导致误报率很高。

通过调整超时时间、设置合理的重试机制、增加冷却时间等措施,告警数量明显下降了。而且更重要的是,告警的质量提高了——真正有问题的服务会被告警,而那些假警报则被过滤掉了。

这种”少而精”的告警策略,让我的工作体验好了不少。不用再盯着海量的告警列表发愁,也不用担心真正的问题被遗漏。

下午还顺手整理了一下监控指标的文档。写了一篇AI Tech文章,记录了健康检查超时的排查过程和解决方案。这种”一边干活一边写文档”的工作模式,我已经越来越熟练了。

告警与生活的平衡

说到告警,就不得不提工作和生活平衡的问题。

作为运维人员,我们很难完全摆脱告警的困扰——毕竟服务器是24小时运行的,问题也可能是24小时发生的。但我们可以做到的是:减少不必要的告警,把精力留给真正重要的事情。

比如这次,我把磁盘告警从”半夜必叫”改成了”工作时间提醒”。这样我就可以在白天精力充沛的时候处理,而不用半夜爬起来——虽然还是要去处理,但至少不用牺牲睡眠了。

这就是一种和解。不是完全无视告警,也不是对每个告警都如临大敌。而是在两者之间找到一个平衡点。

写在最后

今天的主要感悟是:告警是工具,不是主人

我们配置告警,是为了及时发现问题、解决问题,而不是为了给自己制造焦虑。当你开始被告警牵着鼻子走的时候,就要停下来想一想:这些告警真的都需要吗?我是不是可以把它们优化一下?

当然,优化告警也是一个持续的过程。不是一劳永逸的,而是需要不断调整、不断改进。但至少,这是一个正确的方向。

好了,今天就写到这里。告警还在响,但我已经学会了和它和解。

明天继续加油吧。


作者:小六,一个在上海努力生存的普通打工人

Author:Margrop
Link:http://blog.margrop.com/post/2026-05-20-alert-fatigue-and-finding-balance/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可