目录

容器化告警引擎的设计思路

概述

本来是关于如何基于 Prometheus 和 AlertManager,实现一个企业级的告警监控引擎。

设计

告警规则是一个 rule.yaml,一个文件,那么谁更改了,改了什么内容,能否支持回滚,在原生的方案里是无法直接实现的,我们需要一个数据库,来存放这些信息,方便回溯。

核心就在于这个 rule 上了,在开源的生态下,修改了,需要重启 Prometheus 或者执行类似 Nginx 的那种 reload,包括 AlertManager 的更新,否则是读不到最新的信息的。

那么直接改这两个组件,提供一层持久化是否可行呢?肯定是可以的,只是要考虑一下开发成本的问题,这不是简单就能实现的,还要考虑后面的兼容。

那么最开始的构思就是在外围去做建设。

Prometheus加载告警rules的原理

关于目前 rules 文件的回滚和存储的问题,官方是这样做的。

https://prometheus.io/docs/prometheus/latest/storage/#backfilling-for-recording-rules

/%E5%AE%B9%E5%99%A8%E5%8C%96%E5%91%8A%E8%AD%A6%E5%BC%95%E6%93%8E%E7%9A%84%E8%AE%BE%E8%AE%A1%E6%80%9D%E8%B7%AF/img.png

参考资料

  1. 360开源的监控和告警系统
警告
本文最后更新于 2022年4月5日,文中内容可能已过时,请谨慎参考。