告警原则

我们根据一个简单的原则来管理如何接收警报。警报是需要人类执行某种操作的事情。其他任何事情都是通知,这是我们无法控制且无法对其采取任何行动的事情。通知是有用的,但它们不应该在任何情况下唤醒人们。

警报优先级#

高优先级警报

任何在半夜唤醒人类的事情都应该是立即需要人类采取行动的。如果不是这些事情,那么我们需要调整警报,使其不在那些时间发出。

优先级 警报 响应
高优先级 PagerDuty 警报 24/7/365。 需要立即人类行动
高优先级 PagerDuty 警报仅在工作时间 需要在24小时内采取人类行动。
低优先级 PagerDuty 警报 24/7/365。 需要在某个时间点采取人类行动。
通知 抑制的 PagerDuty 事件。 不需要响应。仅提供信息。

如果你正在设置一个新的警报/通知,考虑上面的图表来决定如何通知人们。要注意不要创建不需要立即响应的高优先级警报。

优先级示例#

"生产服务的请求失败率达到75%,自动化无法解决。"#

这将是优先级页面,需要立即采取人类行动来解决。

高紧急

"生产服务器磁盘空间正在填充,预计48小时后满。日志轮转不足以解决。"#

这将是优先级页面,需要人类尽快采取行动,但不是立即。

中紧急

"SSL证书将在一周后到期。"#

这将是优先级页面,需要在不久的将来采取人类行动。

低紧急

"部署成功。"#

这将是通知,应作为抑制事件发送。它在发生事件时提供有用的上下文,但不需要通知人类。

通知

警报内容#

我们应该确保警报包含足够有用的上下文,以便快速识别问题和任何潜在的修复步骤。具有通用标题或描述的警报没有用,并且会造成混淆。我们有一套警报内容的指南,所有警报都应该遵循,

使标题/摘要具有描述性和简洁性。#

确保在正文中包含触发警报的指标。#

正文还应包括实际问题的描述以及为什么它是一个问题。#

提供清晰的解决问题步骤,或链接到运行手册。没有这些内容的警报是无用的。#

测试你的警报#

测试是关键

未测试的警报等同于没有警报。你无法确定它在需要时是否会提醒你。测试你的警报是否实际工作对于适当的服务健康至关重要,并且应包含在任何发布计划/部署工作中。

确保测试所有新的和修改的警报。这通常作为任何新服务的Failure Friday的一部分涵盖;然而,如果你需要更快地测试它们,你应该手动测试。一些需要测试的事情: