ITPub博客

首页 > 自动化运维 > 应用服务器 > 我写了422次告警的自动化处理逻辑,总结出这些设计原则

我写了422次告警的自动化处理逻辑,总结出这些设计原则

原创 应用服务器 作者:suoten 时间:2026-09-24 11:24:57 0 删除 编辑

前言 三年运维,被叫醒422次。这个数字不是抱怨,是一个数据集。

每次被叫醒,我都会记录:什么告警、什么原因、处理了多久、怎么处理的、有没有更好的办法。

422条记录之后,我总结出了一些自动运维的设计原则。后来这些原则变成了ServerGuard这个工具。这篇文章分享这些原则。

原则一:能自动处理的,绝不等人 422次告警里,有80%是同一类问题反复出现:

磁盘满了 → 清旧日志

内存泄漏 → 重启进程

证书过期 → 续期

SSH暴破 → 封IP

这些事情,不需要人的判断力。 需要的是有人(或什么东西)在正确的时间执行正确的操作。

设计结论: 把“发现”和“修复”之间的时间差压到零。

原则二:安全约束比修复能力更重要 我写过一个自动删日志的脚本,把正在写入的日志删了,程序直接崩了。

我写过一个自动重启服务的脚本,nginx配置有错,脚本重启了20次,系统负载拉满。

教训:自动修复的能力不是瓶颈,自动修复的安全约束才是。

设计结论: 每次操作前,必须过安全检查链。通不过就不执行。

原则三:确定性规则 > 黑盒AI 有人问我:为什么不用AI来做决策?

因为自动运维场景下,可解释性比智能更重要。

如果系统自动杀了一个进程,你问它为什么,它说“我判断它可能有问题”——这是不可接受的。

确定性规则的好处:每一步操作都能追溯到具体的判断条件。出了问题,你能复盘,能改规则。

设计结论: 用规则和统计,不用黑盒模型。

原则四:告警要收敛,但数据不能丢 告警刷屏的后果是什么?用户把通知关了。

关掉通知的那一刻,等于没有任何监控。

但收敛不等于丢弃。所有原始告警一条不少全部落库,面板随时可查。

设计结论: 通知可以少发,数据不能少存。

原则五:先跑观察模式,再开自动修复 初次部署默认只观察、只告警,不动手。

跑1-2天,确认告警合理、误报率可接受,再关闭学习模式。

这是信任的建立过程——你得先证明你不会乱来,然后才被允许动手。

设计结论: 学习模式不是可选项,是默认行为。

这些原则的落地 后来我把这些原则写成了一套代码,叫ServerGuard。16MB,零依赖,Apache 2.0开源。

自动修复:磁盘清理、内存重启、证书续期、SSH封禁、服务重启、木马查杀

安全约束:45+白名单、11项检查链、熔断器、Kill预算、重启预检、级联防护

告警收敛:抖动抑制 + 同源合并,每天47条→8条

智能分析:基线异常检测(168时段学习)、磁盘写满预测(线性回归)、根因分析快照

多机管控:Hub统一纳管,WebSocket注册/心跳/告警上报

项目地址:

GitHub:suoten/ServerGuard

Gitee:suoten/ServerGuard

如果你也在做自动运维相关的事情,欢迎交流。评论区或者GitHub Issues都行。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70050062/viewspace-3183783/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2026-05-07

  • 博文量
    69
  • 访问量
    55000