在Cloudflare应对警报疲劳

Cloudflare 的警报可观察性改进与应对警报疲劳的策略

在 Cloudflare 的一篇详细博客中,Monika Singh 探讨了值班人员面临的紧张工作环境,特别是由“this is fine”迷因所描述的警报疲劳现象。警报疲劳是指由于处理大量未优先排序或不明确的警报而导致的疲惫状态。为了应对这一问题,Cloudflare 团队定期进行警报分析,以提高警报的准确性和可操作性。

警报疲劳的影响

Singh 指出,警报疲劳会严重影响值班人员的睡眠、社交生活和休闲活动,甚至可能导致职业倦怠。通过定期分析警报,可以减少不必要的干扰,提高值班工作的效率。尽管警报分析非常重要,但并非所有团队都会进行。Singh 强调,分析警报不仅有助于值班人员撰写交接笔记,还能帮助管理人员评估职业倦怠风险,并支持事故报告的编写。

Prometheus 架构与警报管理

Cloudflare 依赖 Prometheus 架构来监控其设备,这些设备遍布 310 多个城市,运行在 1100 多台服务器上。Prometheus 负责收集指标、评估规则并触发警报,而 Alertmanager 则集中管理警报,通过 webhook 存储警报以供分析。Alertmanager 通过抑制、分组、静默或路由警报来处理它们,但并非所有警报都进行了最佳配置,导致噪音问题。

警报分析的改进

Cloudflare 最初使用 alertmanager2es 进行警报监控和报告,但由于其无法通知团队关于静默或抑制的警报,存在局限性。Singh 介绍了 Cloudflare 如何通过查询 Alertmanager API 捕获所有警报状态来克服这一限制。Cloudflare 将所有警报状态聚合到一个数据存储中,通过关联来自 Alertmanager webhook 和 API 的数据,并使用唯一的指纹字段将它们绑定在一起。数据通过 vector.dev 进行转换,并存储在 ClickHouse 中进行分析。

仪表盘与监控

Cloudflare 创建了多个仪表盘来监控警报,包括:

  • 警报概览:Alertmanager 接收到的警报的总体情况。
  • 警报名称概览:对特定警报的详细分析。
  • 接收者概览:针对团队或接收者的警报分析。
  • 警报状态时间线:警报数量和活动的快照。
  • Jira 警报概览:工单系统接收到的警报。
  • 静默概览:Alertmanager 静默的详细信息。

优化警报配置

通过分析,Cloudflare 发现了一些警报在没有通知标签的情况下触发,还有一些警报来自已停用的集群,且未移除警报。此外,Alertmanager 的抑制功能有时会失效,导致不必要的警报。通过将警报数据存储在 ClickHouse 中,Cloudflare 能够检测并解决这些配置错误。Alertmanager 还允许在维护或处理期间静默警报。通过分析静默,Cloudflare 识别了不再相关的静默,确保警报始终相关。

演示与总结

Singh 提供了使用 Docker Compose、Prometheus、Alertmanager、Vector、ClickHouse 和 Grafana 实现警报可观察性的演示。这一设置允许用户探索预建的演示仪表盘,并了解 Cloudflare 使用的警报可观察性流程。Singh 总结说,警报可观察性通过减少不必要的干扰,提高了值班效率并减少了职业倦怠。Cloudflare 的方法改进了警报管理,为故障排除和优化警报配置提供了宝贵的洞察,促进了更易于管理的值班环境。

阅读 22
0 条评论