Alertmanager 處理由使用者端應用程式(如 Prometheus server)傳送的警報。它負責去重(deduplicating),分組(grouping),並將它們路由(routing)到正確的接收器(receiver)整合,如電子郵件,微信,或釘釘。它還負責處理警報的靜默/遮蔽(silencing)、定時傳送/不傳送(Mute)和抑制(inhibition)問題。
AlertManager 作為 開源的為 Prometheus 而設計的告警應用, 已經具備了告警應用各類豐富、靈活、可客製化的功能:
AlertName
, Instance
, Job
等任意 label 對海量告警進行分組. 典型情況就是, 突然好多 Pod 都發出了 AlertName: InstanceDown
的 Alerts, 那麼可以直接根據 AlertName
進行分組後傳送, 這樣使用者只會收到一封 xxx 個 Pods InstanceDown
的告警郵件. 大大減少告警接收人員的收件量.job=db
的告警路由給 DBA; 滿足 team=team-A
的告警路由給 team-A 的郵件組...critical
級別告警已經觸發(空間使用超過 90%), 這時候 warning
級別的告警(空間使用超過 80%)就被抑制.除了沒有多租戶功能、沒有很好的 UI 介面、沒有告警歷史統計展示之外,作為告警應用, AlertManager 已經是非常強大了。