15 天,把一套”半瞎”的监控加固成”先知”:一次 AI 协作的运维实录

作者:

在

说明:本文所有公司名、主机名、IP、域名、账号与精确日期均已脱敏或泛化;技术做法、数字量级与事件脉络为真实经历。

一、起点:一套”半瞎”的监控

接手时的状况,很多运维同行应该不陌生:

  • 监控平台装着,但邮件告警根本发不出去——历史上靠”关告警”来防刷屏;
  • 二十来台机器接了一半,硬盘、数据库、业务入口基本是盲区——盘坏了靠用户报障,系统通不通靠投诉;
  • 一百多个监控项处于”不支持”状态挂在那里,没人清理;
  • 知识全在脑子里和零散笔记里,换个人就断档。

这 15 天里,我和一个 AI 助手以”运维搭档”的方式协作,把这套东西从头加固了一遍。下面是要点实录。

二、做了什么:四个板块

1. 接入扩面:把看不见的地方接进来

  • 主机与网络:20+ 台服务器的采集端版本治理与升级;路由器/核心交换/办公交换/打印机/NAS 走 SNMP 接入;
  • 硬盘级监控:9 台机器做到”盘级”可见——4 台直连盘读 SMART;5 台带 RAID 卡的服务器在操作系统内透传读物理盘(三种阵列卡三种姿势),不依赖厂商管理工具。其中一台十几年前的老系统(内核还是虚拟化时代的旧内核)需要现场编译工具链、适配古董级的 sudo 与采集代理;
  • 业务层:7 个对外业务入口做统一探针(状态码 + 响应时间 + 页面内容断言,”能打开但白屏”也算故障);Web 应用健康检查模板化(参数化宏,新系统五分钟接一个);中间件(注册中心/反向代理/几种数据库/Java 容器/OA)逐个有模板;
  • 数据库深化:三台核心库从”端口通不通”升级到表空间、会话/进程水位、归档状态、日志新错误等十几类指标,全部带趋势外推。

2. 告警治理:让告警”能报且克制”

这是最花心思的一块。目标很朴素:该报的一定报,不该吵的绝不吵。

  • 打通邮件:排查发现是认证机制的硬不兼容(监控软件只会发一种认证方式,邮箱只认另一种),最终用”本机自建邮件中继”解决——全程第一方,不经过任何第三方推送服务;
  • 双通道分级:业务类告警走一条通道(高严重度 + 延迟 10 分钟),可用性类走另一条(中严重度起 + 持续 30 分钟),其余只进看板和日报——用标签路由,而不是用”关触发器”防刷屏;
  • 恢复闸门:一个自研小脚本守住”恢复邮件”——故障如果几分钟内自愈、根本没发过故障信,那恢复信也不发(否则抖动一次收两封);实测一个月静默了 30 次抖动、放行 26 次真恢复;
  • 发送时段 + 夜间接续:夜间静默不吵人,但不丢——被时段跳过的告警,早上七点汇总成一封补发;
  • 例行输出:每天早上一封排版良好的监控日报(未解决/新增恢复/容量前瞻/到期提醒),每月一号一份 SLA 达成率 PDF 报表。

3. 预测预警:从”报警”到”预报”

  • 容量外推:按最近 7 天斜率算”磁盘/表空间还能撑几天”,提前进日报;
  • 劣化增速:接口丢包/错包速率、硬盘坏道”7 天增长”两级判断(出现即记录、增长才报警);
  • 应用趋势:把已有的指标可视化平台里的预测规则(内存泄漏苗头、连接超时趋势等)桥接进统一告警出口;
  • 到期台账:证书、域名、云主机包年、手工登记项(U 盾/license 之类)统一在日报里倒计时。

4. 监控自身加固:先保证”监控自己活着”

  • 二十多项自检(服务/数据库/邮件链路/磁盘/证书);
  • 备份新鲜度告警(”备份超过 36 小时没落地”比”备份失败”更早暴露问题);
  • 一台放在公网云上的外部哨兵:专管”监控平台自己全瞎”这条最盲的路径;
  • “不支持项”元监控:任何采集项变坏都会被发现,而不是悄悄躺平。

三、数字说话

维度 加固前 加固后
在管对象 20 台左右,覆盖零散 30+ 台主机 + 9 台 SNMP 设备 + 7 个业务入口
运行中监控项 数千,且 170 个”不支持”挂账 7000+,不支持项 0
告警出口 邮件发不出去,靠关告警防吵 双通道 + 闸门 + 时段 + 夜间补发
30 天事件 → 邮件 —— 近千个事件 → 77 封邮件(含恢复信)
硬件可见性 盘坏了才知道 9 台盘级监控,坏道/预测性故障在报
业务可见性 靠投诉 入口探针 + 服务树 + 3 条 SLA + 月度报表

最有说服力的一条:上月两条核心业务 SLA 是 86% 和 84%(红),加固后的这个月是 100% 和 100%(绿)——看板上一眼可见。

四、加固路上撞见的真问题

监控建起来的价值,第一周就兑现了——以下全部是监控或巡检主动发现的,没有一件是用户报障:

1. 一台 OA 服务器被入侵并驻留了一年多。 复电巡检时发现异常进程与外联:后门程序长期连接境外地址、多个恶意插件、入侵起点可追溯到一年多前。完成了取证、隔离、事件报告;同一条线索还牵出一台内网办公机曾以 root 身份发起过入侵、 later 又在尝试爆破另一台服务器的管理员口令——两条归属排查至今在案。

2. 监控数据自己在往陌生公网发。 一台服务器的采集代理配置里,多地址分隔符写错了符号(该用分号用了逗号),导致主动上报只发往一个陌生的公网地址——主机名、配置、日志长期外流。改回内网地址后日志立刻干净;那个陌生地址的归属仍是待办。

3. 核心数据库的一块盘在”预测性故障”状态。 部署盘级监控的第一次读取就抓到:盘自报 FAILURE PREDICTION、坏道计数已到记录上限、累计十几万次读重试——盘还在转、阵列还正常,但这是”快坏了”的明确信号。接入邮件告警后,它在凌晨自动点亮、早上七点补发到我邮箱。同批盘点还发现另一台机器三块盘全部带伤(两块重伤)、一台机器盘在缓慢劣化——都进了更换计划。

4. 复电后全站 502。 一次断电复电后业务系统集体登录报错:某台关键反代的 Web 服务长期是”禁用自启、靠人肉启动”,复电后没人想起它。修复并转为自启,教训写进了复电 SOP。

5. 公网出口换 IP 引发三层连锁故障。 机房换线后出口 IP 变了,而三处配置写死了旧 IP(云安全组白名单、公网映射、应用包里的地址)——业务侧表现为”数据突然没了”。逐层定位修复后,留下一个推论待办:全 fleet 搜一遍还写死旧 IP 的配置。

6. 一台 Windows 服务器被安全软件拖满 CPU 六个半小时。 监控曲线 + 进程排查定位到某安全套件的后台链,两轮清杀后 CPU 从 97% 回到 4%;顺手把”持续高 CPU”接进了邮件通道并做了端到端实测。

五、让告警”说人话”

加固后期收到一条用户反馈,很扎心也很对:“邮件我看不懂——不知道是什么问题、危害多大、要不要现在处理。”

于是给所有会发邮件的告警加了一段白话说明,统一三行结构:

怎么回事:服务器有块硬盘的健康数据报警了(盘还在转,但状态不正常)。
后果:这块盘真趴下,阵列就少一层冗余,届时再出事没得扛。
要做:安排换盘——先备同规格盘、再挑不忙的窗口;换之前确认最新备份可用。

说明写在触发器本身上(同类共享一段),邮件模板自动带出;覆盖全部五百多条”会发信”的触发器,按约四十个故障族归类维护。从此告警邮件不再需要”翻译”。

六、AI 协作的安全边界(方法论)

这 15 天里 AI 执行了数百次操作、零业务中断,靠的是几条硬规矩:

  1. 生产只读优先:默认只查询;任何配置改动先说明、留备份、给回滚点;
  2. 凭据不落盘:账号口令只存 600 权限文件或运行时环境变量,不进文档、不进记录;
  3. 监控对象只停不删:暂时下线的机器停报警、留对象,删除前先导出 undo;
  4. 每步留痕:文档、基线快照、回滚清单、协作记忆四套沉淀,换人可接手;
  5. 灰度验证:新机制先在一台试点、沙盘端到端实测(含”测试邮件”真发真收),再推广全站。

七、结语

监控这件事,价值不在于”装了多少”,而在于三句话:看不见的地方能看见了;该响的时候一定会响;响的时候你能一眼看懂该怎么办。

15 天做不到完美——还有备份恢复演练没做、还有两条安全线索没收口、还有老机器等着换代。但至少现在,每天早上的那封日报和偶尔响起的告警邮件,都是可信的。这大概是运维能给业务的最朴素的承诺。


本文技术细节(认证机制排查、RAID 透传、老系统适配、告警路由设计、夜间接续等)如感兴趣,可留言展开写。