警报原则
我们管理如何根据一个简单的原则被警报。警报是需要人类执行动作的事情。其他任何东西都是通知,这是我们无法控制的东西,并且我们无法采取任何行动来影响它。通知很有用,但是在任何情况下,他们都不应该唤醒人们。
警报优先级#
高优先级警报
在半夜唤醒人类的任何事情都应该是人类立即可行。如果不是这些事情,那么我们需要调整警报以在那些时间不在页面上。
优先 | 警报 | 回复 |
---|---|---|
高的 | 高优先级Pagerduty Alert 24/7/365。 | 需要直接的人类行动。 |
中等的 | 高优先级的PAGERDUTITY警报仅营业时间。 | 需要在24小时内行动。 |
低的 | 低优先级PAGERDUTY ALERT 24/7/365。 | 在某个时候需要人类行动。 |
通知 | 被抑制的Pagerduty事件。 | 无需响应。仅提供信息。 |
如果您要设置新的警报/通知,请考虑上面的图表,以了解如何提醒人们。例如,如果不需要立即响应,请注意不创建新的高优先级警报。
优先示例#
“生产服务失败了75%的请求,自动化无法解决。” _#
这将是一个高的优先页面,需要立即采取人类行动才能解决。
“生产服务器磁盘空间正在填充,预计将在48小时内完成。日志旋转不足以解决。”#
这将是一个中等的优先页面,很快需要人类行动,但不立即采取行动。
“ SSL证书将在一周内到期。”#
这将是一个低的优先页面,要求人类行动很快。
“部署成功。”#
这将是一个通知,应作为压制事件发送。如果发生事件,它提供了有用的上下文,但不需要通知人类。
警报内容#
我们应确保警报包含足够的有用上下文,以快速识别问题和任何潜在的补救步骤。具有通用标题或描述的警报无用,可能会引起混乱。我们有一套有关警报内容的准则,我们所有的警报都应遵循,
使标题/摘要描述性和简洁。#
- 警报:出了点问题。
- 磁盘已满80%
Prod-web-loadBalancer-AF5462CE
。
确保包括触发机身某个地方的警报的度量标准。#
- 磁盘上的磁盘空间正在填充。
avg(last_1h):max:system.disk.in_use {env:prod-web-loadbalancer} by {host}> 0.8
身体还应包括描述实际问题是什么,以及为什么这是一个问题。#
- 磁盘已满。
- 该主机上的磁盘的容量为80%。如果它变得过于饱满,可能会导致系统不稳定性,因为将无法创建新文件,并且不会写入当前文件。
提供清晰的步骤来解决问题,或链接到运行书。这些事情都没有用的警报。#
- 通过删除内容来修复它。
- 在此处关注运行书以识别和解决磁盘空间问题:https://example.com/runbook/disk。此外,您应该研究日志旋转阈值是否足以防止这种情况再次发生,以下书籍有必要的步骤:https://example.com/runbook/log-rotate
测试您的警报#
测试至关重要
未经测试的警报等同于根本没有警报。您无法确定它会在时间到来时提醒您。测试您的警报实际上对适当的服务健康至关重要,应包括在任何发布计划 /部署工作中。
确保测试所有新的和修改的警报。这通常是作为一部分周五失败对于任何新服务;但是,如果需要更快,则应手动测试它们。有些要测试的事情:
- 测试是否适当设置阈值。我们不想要嘈杂的警报。
- 测试如果适用,请注意您对“无数据”条件的警报。通常,没有收到数据与打破阈值相同。
- 测试指标返回正常时,警报会自动解决。