问题描述
在使用PagerDuty时,有一个需求是希望在服务被禁用时能够收到通知。他们的团队规模较小,刚刚开始使用PagerDuty。他们有一个非常吵闹的服务,周围有很多测试工作正在进行。有时,为了避免警报过多,他们不得不关闭服务,但之后却忘记重新启用它。用户想知道是否有办法在服务被禁用时收到通知。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
PagerDuty本身不会以你期望的方式监控自身,它的作用是推送通知、呼叫和警报等。正如评论中提到的,你应该使用维护窗口(maintenance windows)。禁用服务意味着你知道自己在做什么,这是我在过去4年中从未做过的事情,只有在1-2个测试目的上使用过。如果你忘记启用服务…那么就存在另一个与技术无关的问题,你不应该忘记这一步!我建议你不要禁用服务,而是使用维护窗口,如果服务很吵闹,为什么要将其放在PagerDuty中,当它完全停止时再监控它,或者使用其他规则来处理这个问题。以下是我会做的事情:
1. 评估什么是关键警报。
2. 是否应该在每个事情上都通过PagerDuty收到通知?
3. 可能设置更动态的警报,只在特定时间段(工作时间)触发警报。PD文档链接
4. 尽量不要禁用服务,使用维护窗口。
5. 决定你需要/想要什么样的升级策略。
编辑:我从未测试过这个,但PagerDuty有一个API,可能可以用来获取服务的状态,但需要有一个监听/运行该API GET请求并将其发送到另一个PagerDuty服务的东西,这可以用来监控你想要的内容。API服务文档
编辑2:我测试了API,如果你使用这种方法,你可以使用其他工具来监控服务是否被禁用,通过获取请求中的数据:
"status": "disabled"
。例如,任何可以发送GET请求并获取这些数据的监控工具,可以设置为“如果1小时内status: disabled
,则发送PagerDuty警报”。你可以有一个单独的PagerDuty服务来监听这个监控。