1

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

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

PD 用于警报(我不想在服务级别完成)。

4

1 回答 1

4

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

  1. 使用服务发现:根据您使用的服务发现,您可以在维护期间从 Prometheus 中删除服务。然后,他们不会在 Prometheus 级别触发任何警报。
  2. 在 AlertManager 中使用静默:警报管理器让您可以安排静默,自动暂停警报根据您的版本或警报管理器,您可能会使用没有很好记录的 v1 API 或使用开放 API 的 v2 API。这需要一个外部调度程序和一些修修补补(curl 通常就足够了)。
  3. 使用抑制:原理是定义在维护期间触发静默警报的规则,并将其用于打盹其他警报。请参阅我在这个问题中的回答。此解决方案不需要外部组件,但会使您的配置复杂化。

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

  • 如果您使用动态服务发现(例如 consul),它应该是正常工作流程的一部分并且是免费的。

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

  • 如果您所在的环境在处理警报的团队和进行升级的团队之间存在明显的分离,那么使用 Prometheus 唯一的解决方案,并安排好维护时间,可能会更好。监控团队应该是该工具的专家,并且可以处理增加的复杂性。

于 2020-09-04T07:22:27.073 回答