容器化告警引擎的设计思路
目录
概述
本来是关于如何基于 Prometheus 和 AlertManager,实现一个企业级的告警监控引擎。
设计
告警规则是一个 rule.yaml
,一个文件,那么谁更改了,改了什么内容,能否支持回滚,在原生的方案里是无法直接实现的,我们需要一个数据库,来存放这些信息,方便回溯。
核心就在于这个 rule 上了,在开源的生态下,修改了,需要重启 Prometheus 或者执行类似 Nginx 的那种 reload
,包括 AlertManager 的更新,否则是读不到最新的信息的。
那么直接改这两个组件,提供一层持久化是否可行呢?肯定是可以的,只是要考虑一下开发成本的问题,这不是简单就能实现的,还要考虑后面的兼容。
那么最开始的构思就是在外围去做建设。
Prometheus加载告警rules的原理
关于目前 rules 文件的回滚和存储的问题,官方是这样做的。
https://prometheus.io/docs/prometheus/latest/storage/#backfilling-for-recording-rules
参考资料
警告
本文最后更新于 2022年4月5日,文中内容可能已过时,请谨慎参考。