kthxbye一种解决prometheus alertmanager 报警确认的守护进程

一些问题

当前,在Alertmanager中触发新警报时,有两种选择:

  • 解决警报时,使其处于活动状态
  • 使此警报静音一段时间

这在小型环境中效果很好,但可能会导致大型团队出现问题:

  • 如果您将警报保持处于活动状态,则需要以某种方式传达您正在处理它的信息,否则团队中的其他人也可能会开始处理它,或者(更糟糕的是)假设其他人已经在工作,则没人会对此进行处理。
  • 如果您使此警报静音,则需要选择正确的持续时间。如果持续时间太短,则您可能需要在其过期后再次使其静默,这对于许多Alertmanager用户而言可能是嘈杂的。如果持续时间太长,您需要记住在问题解决后将其过期,否则它可能会掩盖其他问题或问题很快再次发生。
    有一些可以更好地管理警报所有权的工具,例如PagerDuty或Opsgenie,可以帮助避免此问题,但是它们需要将所有警报发送到外部系统

原理

kthxbye是一种基于sidecar 模式的

  • 运行原理:
 
kthxbye将持续扩展将要到期但与触发警报匹配的静音。仅当沉默与任何警报都不匹配时,它们才会被允许过期。
- 新警报开始在Alertmanager中触发
- 用户使用带有预定义前缀和短持续时间的注释为其创建沉默
- kthxbye将不断轮询Alertmanager的警报和静音:
  - 获取所有沉默列表
  - 获取所有静音警报的列表
  - 查找所有以预定义前缀开头且即将过期的沉默
  - 对于每一个这样的沉默:
    - 检查静音是否与任何当前触发的警报匹配
    - 如果是,则沉默持续时间将延长
    - 如果没有,那么沉默将被终止
这样可以使警报静音,而不必担心为沉默选择正确的持续时间,因此您可以有效地使特定的故障行为静音而不是警报

运行命令

kthxbye -alertmanager.uri http://alertmanager.example.com:9093

说明

kthxbye 的作者同时也是karma的作者,都是很不错的prometheus Alertmanager 相关的工具

参考资料

https://github.com/prymitive/kthxbye

posted on 2020-05-13 10:50  荣锋亮  阅读(651)  评论(0编辑  收藏  举报

导航