Alertmanager處理客戶端應(yīng)用程序(如Prometheus服務(wù)器)發(fā)送的警報(bào)。 它負(fù)責(zé)對它們進(jìn)行重復(fù)數(shù)據(jù)刪除,分組和路由,以及正確的接收器集成,例如電子郵件,PagerDuty或OpsGenie。 它還負(fù)責(zé)警報(bào)的靜音和抑制。
以下描述了Alertmanager實(shí)現(xiàn)的核心概念。 請參閱配置文檔以了解如何更詳細(xì)地使用它們。
一、分組
分組將類似性質(zhì)的警報(bào)分類為單個(gè)通知。 在許多系統(tǒng)一次性失敗并且數(shù)百到數(shù)千個(gè)警報(bào)可能同時(shí)發(fā)生的較大中斷期間,這尤其有用。
示例:發(fā)生網(wǎng)絡(luò)分區(qū)時(shí),群集中正在運(yùn)行數(shù)十或數(shù)百個(gè)服務(wù)實(shí)例。 一半的服務(wù)實(shí)例無法再訪問數(shù)據(jù)庫。 Prometheus中的警報(bào)規(guī)則配置為在每個(gè)服務(wù)實(shí)例無法與數(shù)據(jù)庫通信時(shí)發(fā)送警報(bào)。 結(jié)果,數(shù)百個(gè)警報(bào)被發(fā)送到Alertmanager。
作為用戶,人們只想獲得單個(gè)頁面,同時(shí)仍能夠確切地看到哪些服務(wù)實(shí)例受到影響。 因此,可以將Alertmanager配置為按群集和alertname對警報(bào)進(jìn)行分組,以便發(fā)送單個(gè)緊湊通知。
通過配置文件中的路由樹配置警報(bào)的分組,分組通知的定時(shí)以及這些通知的接收器。
二、抑制
如果某些其他警報(bào)已經(jīng)觸發(fā),則抑制是抑制某些警報(bào)的通知的概念。
示例:正在觸發(fā)警報(bào),通知無法訪問整個(gè)集群。 Alertmanager可以配置為在該特定警報(bào)觸發(fā)時(shí)將與該集群有關(guān)的所有其他警報(bào)靜音。 這可以防止發(fā)送與實(shí)際問題無關(guān)的數(shù)百或數(shù)千個(gè)觸發(fā)警報(bào)。
通過Alertmanager的配置文件配置禁止。
三、靜默
沉默是在給定時(shí)間內(nèi)簡單地靜音警報(bào)的簡單方法。 基于匹配器配置靜默,就像路由樹一樣。 檢查傳入警報(bào)它們是否匹配活動(dòng)靜默的所有相等或正則表達(dá)式匹配器。 如果他們這樣做,則不會發(fā)送該警報(bào)的通知。
在Alertmanager的Web界面中配置了靜音。
四、客戶端行為
Alertmanager對其客戶的行為有特殊要求。 這些僅適用于不使用Prometheus發(fā)送警報(bào)的高級用例。
五、高可用
Alertmanager支持配置以創(chuàng)建用于高可用性的集群。 這可以使用---cluster-標(biāo)志進(jìn)行配置。
重要的是不要在Prometheus和它的Alertmanagers之間加載平衡流量,而是將Prometheus指向所有Alertmanagers的列表。
六、鏈接
Prometheus官網(wǎng)地址:https://prometheus.io/
我的Github:https://github.com/Alrights/prometheus