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 相关的工具