ConversationSpec · 议事厅

告警巡检与自动修复

平台:feishu群组:定时任务管理Topic:告警巡检与自动修复Thread ID:omt_1958b483088f5b84标题来源:manual
更新:2026-07-05T20:50:20
状态:active距今:28 天任务:9/17未决问题:0
brief.md

Brief

当前状态

  • 用户要求:先暂停告警守望相关巡检,等待用户 review 完优化报告后再继续。
  • 已暂停告警守望 cron:

- 9f30084193b8:告警守望5分钟实时采集与企微路由(Agent全量判断)

- fa4fc55658ae:告警守望10分钟健康检查(Agent全量判断)

- b91ff4b01147:告警守望30分钟聚合分析(飞书摘要,不直推企微)

- 613b695710af:告警守望08点日报(Agent全量分析)

- ba78afa527b5:告警守望机制化执行审计与架构优化

  • 暂停时间:2026-07-04 07:45 +08:00。

完整优化报告结论

  • 当前告警守望系统“部分有效,但实时监控链路处于失效/盲区状态”。
  • 降噪目标部分有效:routing.realtime_wecom_enabled=false,实时企微未全量刷屏;P0/P1 候选以记录、延迟、日报方式沉淀。
  • 隐藏风险发现目标当前受阻:AMC/OPD collector 从 2026-07-04 02:22:31 +08:00 后持续失败;07:42 审计快照显示盲区约 316 分钟,最近 1 小时采集成功率 0%。
  • 因 source UNKNOWN / collector stale,不能声称“0 告警”或“持续监控有效”;当前首要矛盾是恢复数据源,再补采盲区。

最小上下文

  • 当前线程:飞书「定时任务管理」/ omt_1958b483088f5b84
  • Watchdog 配置:/Users/zhengbokai/alert_inspection_local/watchdog/config.json
  • Watchdog 状态目录:/Users/zhengbokai/alert_inspection_local/watchdog/state/
  • 关键报告输出:/Users/zhengbokai/.hermes/cron/output/ba78afa527b5_20260704_074214.txt
decisions.md

Decisions

  • 2026-07-05:告警内容需要入库,采用“JSONL append-only 原始流水 + SQLite 查询/统计/聚合索引”的双轨方案;第一阶段只做离线同步和查询,不改现有采集链路,避免恢复巡检前引入额外风险。
  • SQLite MVP 位置定为 /Users/zhengbokai/alert_inspection_local/watchdog/alert_watchdog.db;优先支撑今日概览、P0/P1、重复 Top、source 健康、待处理 incident 五类查询。
  • 告警入库不是简单保存原文,而要保留 raw/event/incident/source_run/handling_log 这几类状态,为后续统计处理、降噪效果、父事件聚合和人工介入打基础。
  • 2026-07-04:用户要求“更新完整的优化报告到 spec 然后先暂停巡检,等我 review 完再说”;因此告警守望相关 cron 已暂停,恢复前需等待用户明确指令。
  • 实时任务只落盘,不推企微;routing.realtime_wecom_enabled 必须保持 false
  • 告警摘要不能逐条转发原始告警,应按严重级别、分类、业务对象、重复指纹、自动恢复状态进行降噪。
  • 企微只用于极少数已分析过的情况:巡检系统自身故障、确认 P0、持续升级;普通 P1/P2/P3 和未分析原始告警不得直推企微。
  • SSO 过期、AUTH_EXPIRED、UNKNOWN、collector stale 等采集问题是巡检系统自身故障,不能被展示为“0 告警”。
  • 07-04 最新审计结论:当前首要问题不是企微直推,而是 AMC/OPD source unavailable + state stale;恢复前不能声称业务侧无告警。
tasks.md

Tasks

Todo

  • [ ] 等用户 review 完优化报告后,再决定是否恢复告警守望巡检 cron。
  • [ ] 若恢复巡检,先恢复 AMC/OPD / tmeoa-reader / Chrome CDP / SSO 采集链路,并验证低负载 amc-alerts --pages 1 --rows 20 --output-limit 50 成功。
  • [ ] source 恢复后,补采 2026-07-04 02:22:31 +08:00 之后盲区,优先复核 P0/P1、hidden_infra_risk、critical_business_with_risk。
  • [ ] 人工复核 VIP Saturn vip_sub_cancel_sms 广州/北京跨地域重复 P1,判断是否为同一父事件或公共依赖/配置问题。
  • [ ] 人工复核 cron_job 10.5.97.3 多个算法/视频任务 exit status 255,判断是否为同机公共依赖或环境故障。
  • [ ] 继续拆分 other 分类,尤其生产仓库服务、KWS、CAT、BI、finance/revenue,降低日报认知噪声。
  • [ ] 对 disabled_recorded_only / cap_deferred 中的 P0/P1 建立强制复核清单,避免高风险因降噪策略静默。
  • [ ] 将 SQLite 查询结果接入观澜台/动力炉,形成今日告警、未处理 P0/P1、重复 Top、source 健康、优化效果的可视化入口。

Doing

  • 暂无;巡检已按用户要求暂停,等待 review。

Done

  • [x] 初始化并整理本线程 ConversationSpec,去除无效自动捕捉项。
  • [x] 将“概念版手表播放失败”从长期巡检决策中移除,标记为临时分支任务。
  • [x] 关闭实时企微直推:routing.realtime_wecom_enabled=false
  • [x] 新增飞书聚合分析与健康检查/日报/审计类 cron。
  • [x] 将告警守望通知策略写入本线程 spec。
  • [x] 2026-07-04 更新完整优化报告到 spec。
  • [x] 2026-07-04 07:45 暂停告警守望相关巡检 cron:9f30084193b8fa4fc55658aeb91ff4b01147613b695710afba78afa527b5
  • [x] 2026-07-05 将告警入库优化方案写入 spec:JSONL 保持审计流水,SQLite 作为查询/统计/聚合索引;先做离线同步和查询,不改现有采集链路。
  • [x] 2026-07-05 实现 SQLite 入库与查询 MVP:watchdog/bin/alert_watchdog_db.py,已导入历史 JSONL 并验证 overview / P0P1 / repeated / source-health 查询。
open_questions.md

Open Questions

  • 暂无。
context.md

Context

背景

  • 之前实时采集恢复登录态后,脚本按 P0/P1 关键词直接调用企微 webhook,导致大量未分析原始告警刷到企微。
  • 用户明确要求改为 owner 型巡检机制:采集、落盘、聚合、分析、再输出结论;不要让脚本机械转发原始告警。
  • OPD/AMC SSO 过期曾被错误折叠成“0 告警”,已修正为显式 AUTH_EXPIRED/UNKNOWN;遇到 SSO 登录页时,企微失败消息必须附带当前二维码截图,方便人工扫码恢复。

2026-07-04 完整优化报告摘要

总体结论

  • 当前告警守望系统部分有效:降噪机制已经避免实时企微全量刷屏。
  • 但实时监控链路处于失效/盲区状态:AMC/OPD collector 从 2026-07-04T02:22:31+08:00 后持续失败;07:42 审计显示盲区约 316.8 分钟。
  • 最近 1 小时 run_summaries:ok=0fail=30success_rate=0%;低负载探测 --pages 1 --rows 20 --output-limit 50 仍 75s 超时。
  • 因此当前不能发布“0 告警”或“持续监控有效”;必须按“巡检系统自身故障 / SOURCE_UNAVAILABLE / STATE_STALE”处理。

24h 告警画像

  • 事件总量:3583。
  • 唯一指纹:2790。
  • 严重级别:P3=1438、P1=1081、P2=735、P0=329。
  • 分类 Top:other=942、host=482、kgmonitor=352、k8s_pod=338、tmrpc=320、cron_job=251、saturn=235、finance_revenue=181。
  • 判定原因 Top:low_signal_daily=1438、risk_daily_or_escalate=605、hidden_infra_risk=494、p0_keyword_or_emergency=329、critical_business_with_risk=299。

重复指纹与隐藏风险候选

  • 4b5f4b59f67cad68 x103:生产仓库服务 / 用户仓库 goods 接口拉取失败。当前为高频 P3,应从 other 拆到更准确分类。
  • 916b00c3856521e7 x68、f2ba57be4097041f x35:VIP vip_sub_cancel_sms Saturn 作业在广州/北京跨地域重复 P1,疑似同一父事件或公共依赖/配置问题。
  • 0862e21727cbd14d x30、ef5b2150b1ee4418 x29:Saturn 低信号高频,适合 known-issue + 日报聚合。
  • 10.5.97.3 上多个 AI-DJ/视频算法 cron_job 重复 exit status 255,具备父事件聚合价值。
  • 24h 内 hidden_infra_risk=494,风险词包括 CPU、error、Failed、状态码、错误码、失败率、磁盘、超时、内存、499、CrashLoop。

已完成的机制化优化

  • 刷新 state/baselines/alert_signature_baseline_24h.json,验证 event_count=3583unique_fingerprints=2790
  • 更新 8 个 24h 重复告警 known issues:4b5f4b59f67cad68916b00c3856521e7f2ba57be4097041f0862e21727cbd14def5b2150b1ee4418547098c60f91228b39a869c3a83487be44e87b4bf5c47921
  • 刷新 state/source_health.json,确认盲区持续扩大。
  • 追加 state/optimization_decisions.jsonloptimization_decisions.jsonl
  • py_compile、baseline 构建、known issue upsert、source_health 刷新均通过;低负载 AMC 探测失败,说明 source/CDP/SSO/网络链路仍未恢复。

暂停的 cron

  • 9f30084193b8:告警守望5分钟实时采集与企微路由(Agent全量判断)
  • fa4fc55658ae:告警守望10分钟健康检查(Agent全量判断)
  • b91ff4b01147:告警守望30分钟聚合分析(飞书摘要,不直推企微)
  • 613b695710af:告警守望08点日报(Agent全量分析)
  • ba78afa527b5:告警守望机制化执行审计与架构优化

关键链接与证据

  • 线程标题:告警巡检与自动修复
  • 线程公开 spec:<https://abos-at.work/thread/feishu/定时任务管理/omt_1958b483088f5b84/index.html>
  • Watchdog 配置:/Users/zhengbokai/alert_inspection_local/watchdog/config.json
  • Watchdog 状态目录:/Users/zhengbokai/alert_inspection_local/watchdog/state/
  • 最新优化报告:/Users/zhengbokai/.hermes/cron/output/ba78afa527b5_20260704_074214.txt
  • 最新聚合摘要:/Users/zhengbokai/.hermes/cron/output/b91ff4b01147/2026-07-04_07-08-41.md
  • 最新健康检查:/Users/zhengbokai/.hermes/cron/output/fa4fc55658ae/2026-07-04_07-28-33.md

2026-07-05 入库优化 MVP

  • 已新增 SQLite 索引脚本:/Users/zhengbokai/alert_inspection_local/watchdog/bin/alert_watchdog_db.py
  • 数据库位置:/Users/zhengbokai/alert_inspection_local/watchdog/alert_watchdog.db
  • 当前设计:JSONL 继续作为 append-only 审计流水;SQLite 作为查询、统计、聚合索引,第一阶段只做离线同步和查询,不改现有 collector/路由逻辑。
  • 已入库验证:alert_events=8494alert_incidents=2003alert_route_decisions=7974alert_source_runs=1245alert_handling_logs=16
  • 已支持查询:overviewp0p1top-repeatedsource-healthopen-incidents
  • 验证结论:入库后可快速得到严重级别分布、分类 Top、重复指纹 Top、P0/P1 清单和最新 source 健康状态;最新 source 仍为 SOURCE_UNAVAILABLE,last_success_at=2026-07-04T02:22:31+08:00,盲区约 327 分钟。
archive.md

Archive

  • 暂无。

2026-07-03 01:08 自动更新

  • 用户:b5f9a9f6
  • session_id:20260702_093835_c8330782
  • 消息:[Replying to: "告警巡检与自动修复"] 恢复实时企微干嘛的
  • 回复:少侠,不该恢复实时企微。在下前面“恢复/切换企微机器人”的动作,是基于错误理解:我以为你要把实时告警继续发到另一个企微机器人;但从后续反馈看,你要的是: - 告警先采集、归类、分析; - 不要把原始告警一条条刷到企微; - 重要结论可以在这里/日报里汇总; - 企微最多用于极少数真正紧急、已分析过的事件。 现在已经止血:配置里是: ``json "realtime_wecom_enabled": false ` 并且我刚验证过正式采集结果是: ``json "suppressed": true, "…

2026-07-03 01:10 自动更新

  • 用户:b5f9a9f6
  • session_id:20260702_093835_c8330782
  • 消息:[Replying to: "告警巡检与自动修复"] 是这个意思: 后续正确方向: 1. 实时任务只落盘,不推企微。 2. 每 5\~10 分钟由 Agent 聚合分析后,在飞书线程输出摘要。 3. 只有系统自身故障、确认 P0、持续升级并已分析过的情况,才考虑企微。
  • 回复:少侠,收到,这就是后续机制。在下已经按这个方向落地了: 1. 实时任务只落盘,不推企微 - 已确认配置: ``json "realtime_wecom_enabled": false ` - 实时采集任务仍每 1 分钟跑,但只记录事件/路由决策,不再 wecom_post() 刷企微。 2. 新增 10 分钟飞书聚合分析任务 - 新 cron: `text 告警守望10分钟聚合分析(飞书摘要,不直推企微) ` - 频率: `text every 10m ` - 投递: `…

2026-07-03 01:20 自动更新

  • 用户:b5f9a9f6
  • session_id:20260702_093835_c8330782
  • 消息:[Replying to: "告警巡检与自动修复"] 更新spec了吗
  • 回复:刚才还没更新干净。现在已更新并发布。 已写入本线程 spec: - brief.md - decisions.md - tasks.md - context.md 关键决策已经落进去: ```text 实时任务只落盘,不推企微;routing.realtime_wecom_enabled 必须保持 false。 告警摘要由 Agent 每 5~10 分钟聚合分析后输出到当前飞书线程;当前按 10 分钟执行。 企微只用于极少数已分析过的情况:巡检系统自身故障、确认 P0、持续升级。 SSO/AUTH_…

2026-07-03 02:11 自动更新

  • 用户:b5f9a9f6
  • session_id:20260703_020824_d90eb4dd
  • 消息:[Replying to: "告警巡检与自动修复"] 严重的问题你能定位就先定位给结论
  • 回复:结论先说:我已经看了当前告警守望的真实落盘数据和最近输出,现在最严重的不是采集挂了,而是“严重告警已识别但实时闭环没打开”。 ## 当前定位到的严重问题 ### P0:实时高危触达未闭环 证据: - 告警采集正常:最近 collector ok=true,最新事件时间到 2026-07-03 02:08:44 - 但实时企微开关是:realtime_wecom_enabled=false - 最近多条 P0/P1 都被记录为:realtime_wecom_disabled - 审计任务也明确…