如果机器出现故障,请不要在特定时间维护窗口使用prometheus / alertmanager发出警报

问题描述

我有一台ec2机器,在该机器上我使用标签promethues / alertmanager进行了设置警报(如果出现故障)。维护计划如下 每周两次,每天早上6点在机器上

我不想在那段时间收到这些机器的警报。如何实现?

PD用于发出警报(我不想在服务级别上完成操作。)

解决方法

据我所知,有三种方法可以避免在维护时发出警报:

  1. 使用服务发现:根据您使用的服务发现,您可以在维护期间从Prometheus中删除服务。然后,它们将不会在Prometheus级别触发任何警报。
  2. 在AlertManager中使用静音:警报管理器可让您安排silences,该警报将自动使警报暂停。根据您的版本或警报管理器,您可能会使用没有很好说明的v1 API或使用open API的v2 API。这需要一个外部调度程序和一些修补程序(通常足够卷曲)。
  3. 使用禁止:其原理是定义一个规则,该规则在维护期间触发无提示警报,并将其用于中止其他警报。在this question中查看我的答案。此解决方案不需要外部组件,但会使您的配置复杂化。

哪种解决方案最好,取决于您的用例和环境。举几个例子:

  • 如果您使用动态服务发现(例如,领事),它应该是正常工作流程的一部分,并且不收取任何费用。

  • 如果您使用的是已知服务器和操作手动完成的传统设置,则可以在您的剧本中集成暂停警报的脚本。它成为常规更新工作流程的一部分。

  • 如果您所在的环境中,团队处理警报和进行升级的警报之间存在很大的距离,那么使用Prometheus Only解决方案并计划好维护时间,可能会更好。监视团队应该是该工具的专家,并且可以处理增加的复杂性。