跳到主要内容

CMDB 5 万条资产只记得一个 IP,怎么跨模型找

· 阅读需 8 分钟

现场:小赵排障卡在 20 分钟,只因一个 IP

凌晨 1 点,小赵被叫起来处理一个 P2 告警。

告警说“10.0.1.5 节点上的服务响应超时”。他打开 CMDB,准备找一下这个 IP 是哪台机器、跑什么业务、归谁管。

CMDB 里的资产有几万条。他凭直觉选了“主机”模型,在搜索框里输入 IP,没命中。

小赵在 CMDB 搜索界面反复切换模型

他改选“数据库”模型,搜索,还是没命中。

又改选“中间件”模型,这次命中了,但他心里没底:这个 IP 是不是同时也是某台主机?是不是同时也是某个数据库的部署目标?

他又回到“主机”模型,切换到精确匹配模式,再搜一次,这次命中了。

整个过程花了 20 分钟,中间切换了 3 个模型,还调整了一次匹配方式。

最后他发现,这个 IP 同时挂在 3 个模型下:主机模型 1 条、数据库模型 1 条、中间件模型 1 条。而他第一次搜的“主机”模型下其实是有命中的,只是因为大小写不敏感没匹配上

巡检脚本跑了 3 年没问题,作者一走就没人敢动

· 阅读需 9 分钟

现场:小周离职那天,运维组才意识到巡检脚本有多脆弱

周一上午 9 点,小周提交了离职流程的最后一项。

交接清单拉到第 17 行,写的是"日常巡检脚本 owner"。他手上有 6 份脚本,横跨 3 个业务线,跑得最久的一份已经稳定运行 3 年。每周值班同学都会在群里说"今晚脚本正常",从来没出过事。

交接会议上,接手的小李问了一句:"这份脚本,生产环境能改吗?"

小周想了想,说:"能改,但要按我之前发的那个流程。"

"流程在哪?"

"在我脑子里。"

小周离开后,运维团队围着黑屏讨论脚本交接

这不是个例。很多团队的巡检脚本,3 年的"稳态"其实是把 5 类信息全部装在作者脑子里。脚本本身只是冰山露出水面的那一角,水面下的"作者经验、运行历史、版本演进、参数命名习惯、依赖关系"才是真正在稳的部分。

作者一走,水面下这一整块就一起走了。脚本表面上没动,实际上已经失去了最关键的那一层支撑。

半夜里 P1 事故群里失控,事故到哪一步没人能答

· 阅读需 7 分钟

开场

凌晨 2 点,值班的小周刚看完一轮监控曲线,准备去倒杯水。运维群里弹出第一条 P1 告警——"支付回调链路数据库连接池告警"。他放下水杯,回了句"看到了",开始在群里同步。

5 分钟内,运维群、业务群、上游链路群同时炸开。告警截图、监控曲线、日志片段、临时方案、互相追问——所有信息都按时间顺序混在同一条消息流里。

20 分钟过去,群消息刷过 200 条。

业务方在群里 @ 小周:"事故处理到哪一步了?"

小周翻了一下聊天记录,迟疑了 5 秒。

没人能一句话答清楚。

凌晨 2 点值班现场:群里消息刷屏,值班同学看着屏幕

运维记忆越多越乱,OpsPilot 从写入侧收口

· 阅读需 8 分钟

月末复盘前,小周让 AI 助手整理本月核心系统运行画像,准备发给值班组和业务负责人。

稿子出来得很快,但第一眼就不对。

同一次支付回调抖动,在月报里被写成了两个根因:前半段说是下游超时,后半段又说是连接池打满。更麻烦的是,故障当天为了止血写下的“临时绕过某个下游服务”,被整理成了后续运行建议,看起来像一条稳定处理口径。

AI 并不是没有找到历史。相反,它找到了太多:几次 RCA 里的结论、值班交接记录、临时绕行说明,还有一段后来被推翻的初步判断。真正的问题是,这些材料在进入长期记忆时没有被分清楚。

这就是运维记忆和普通聊天记忆最大的差别:它不是为了让助手更懂某个人,而是要长期维护一份稳定的业务上下文。月报、运行画像、团队排障口径,最后都会被交付、复用、审计。写入时没收口,后面每次调用都会继续放大这个错误。

AI 助手的记忆边界

· 阅读需 6 分钟

晨会前二十分钟,运维负责人小周被问到一个很具体的问题:昨天让 AI 助手整理过的支付回调故障背景,今天另一个同事继续排查时,为什么也被带进了回答里?

那段背景不是假的。它来自前一天的对话,也确实帮助小周少解释了很多上下文。

但问题卡在另一个地方:这到底是小周个人的排障偏好,还是团队共同认可的服务背景?

AI 助手能记住上下文,解决的是效率问题;它该把哪些上下文记给谁看,解决的是协作边界问题。

多环境脚本失控,往往从复制开始

· 阅读需 6 分钟

一次例行发布前,运维负责人小周收到了一项看似简单的任务:在测试、预发布和生产环境执行同一套服务检查。

共享目录里已经有三份脚本,文件名分别带着 testuatprod。但小周没有立即执行。测试脚本比生产脚本多了异常判断,生产脚本又多出一条临时诊断命令,预发布脚本里的接口地址还是旧值。

问题已经不再是“应该选哪个环境的文件”,而是没人能解释这些版本为什么不同。原本为了快速适配环境而复制的脚本,逐渐变成了三套各自演进的执行逻辑。

配置文件被改过没人知道,故障复盘就少了一段关键证据

· 阅读需 8 分钟

发布负责人小周是在复盘会上被问住的。

接口超时发生在发布后十几分钟。监控曲线有,错误日志也有,应用到数据库的依赖关系也能查到。所有材料看起来都在指向同一个方向:连接不稳定。

直到业务接口人问了一句:“故障发生前,连接池配置是不是刚调过?”

会议室安静了几秒。

有人翻发布记录,有人翻群消息,有人登录机器看当前文件。可当前文件只能证明“现在是什么样”,不能证明“当时是什么样”。真正卡住复盘的,不是没人看日志,而是没人能拿出配置文件在故障前后的版本和差异。

复盘最怕的不是线索少,而是线索到了配置层突然断掉。

故障复盘为什么总拼不出现场

· 阅读需 11 分钟

开场:晨会前那张拼不完整的图

晨会前 20 分钟,运维负责人小周被问住了。

昨天下午发布后,支付回调服务抖动了十几分钟。故障已经恢复,业务侧也确认交易补偿完成,但复盘材料迟迟拼不成一张完整图。

监控同学给了接口延迟曲线。

研发同学贴了几段带请求 ID 的错误日志。

CMDB 里能查到支付回调、缓存、数据库和下游账务服务的关系。

告警列表里也有触发、认领和恢复时间。

材料看起来很全。可复盘主持人追问了一句:

“这次到底是哪个点先异常?影响范围是一个实例、一条服务链,还是整段支付链路?”

会议室安静了几秒。

不是没人有数据,而是每个人手里都只有一块碎片。小周能解释其中任意一张截图,却很难把这些截图串成一个连续现场。

这就是很多故障复盘最难受的地方:证据都在,现场不在。

日志权限全量放开,排障更慢也更危险

· 阅读需 9 分钟

发布后十分钟,日志权限先被要走

周三下午的例行发布刚结束,支付回调开始出现零星失败。业务接口人在群里追问影响范围,发布负责人把一条用户投诉里的请求 ID 发了出来,研发小周想马上进日志平台查上下文。

这时候运维还在确认一个问题:小周到底该看哪一批日志?

订单、会员、支付、履约几个服务都在同一条交易链路里,日志字段也有不少重叠。小周负责的是支付回调,但这次请求 ID 在多个系统里都会出现。如果只开放支付日志,担心线索不够;如果直接给全量检索权限,又可能把其他业务线的运行细节一起暴露出去。

群里很快有人给出最省事的建议:

先给全量检索权限,查完再收。

这句话听起来很务实。问题还没定位,大家都不想把时间耗在授权上。可小周真正进入全量入口以后,排障并没有变快。他搜同一个请求 ID,结果里同时出现支付回调、订单状态变更、会员权益校验和履约通知的日志。字段名相似,错误码相近,时间又都集中在同一分钟内。

他确实看到了更多日志,但也被更多无关日志拖住了。

更麻烦的是,其中几条会员侧日志里带着小周并不负责的业务参数。于是现场从“怎么尽快定位支付回调失败”,变成了两个问题一起压过来:权限是不是放大了,线索是不是也被放乱了。

这就是全量授权最容易被忽略的地方。它不只是“可能不合规”,也不只是“权限太大”。在真实排障里,它会同时造成数据越界和定位变慢。

CMDB 失真,往往不是录入问题

· 阅读需 7 分钟

晨会前,最难回答的不是有没有资产

晨会前二十分钟,运维负责人被追问一件事:昨天那次抖动,到底是应用自己有问题,还是底层资源刚改过?

群里已经有人甩出了几张截图。有人说数据库实例前一晚做过调整,有人说服务其实早就迁过节点,还有人坚持配置没变。CMDB 里并不是没有这批资产,相关实例、关系和负责人也都能查到,但没有人愿意直接拿那份数据下结论。

让人头疼的,不是 CMDB 里查不到对象,而是查到了以后,没人敢保证它还是当前状态。信息开始过期以后,CMDB 会从排障入口退回成参考资料。