## Alertmanager 警報管理器
---
[Alertmanager](https://github.com/prometheus/alertmanager)處理由客戶端應用程序發送的警告,例如:Prometheus服務發送的警告。它關心deduplication, grouping和routing到正確的接收器,如:email,PageDuty或者OpsGenie。它還負責保護和抑制警報。
下面描述有關實現Alertmanager的核心概念。參考[配置文件](https://prometheus.io/docs/alerting/configuration),它會教你怎樣使用Alertmanager。
### Grouping
Grouping分組將性質類似的警告分組成一個通知類。當許多系統同時出現故障時,這種情況尤其有用,而數百到數千個警報可能同時觸發。
例如: 當出現網絡分區時,十個到數百個服務實例正在集群中運行。這時多半服務實例暫時無法訪問數據庫。如果服務實例不能和數據庫通信,則對于已經配置好警報規則的Prometheus服務將會對每個服務實例發送一個警報。這樣數百個警報會發送到Alertmanager。
如果一個用戶僅僅想看到一個頁面,這個頁面上的數據是精確地表示哪個服務實例受影響了。Alertmanager通過它們的集群和警報名稱來分組標簽, 這樣它可以發送一個單獨受影響的通知。
警報分組,分組通知的時間,和通知的接受者是在配置文件中由一個路由樹配置的。
### Inhibition 抑制
如果某些其他警報已經觸發了,則對于某些警報,Inhibition是一個抑制通知的概念。
例如:一個警報已經觸發,它正在通知整個集群是不可達的時,Alertmanager則可以配置成關心這個集群的其他警報無效。這可以防止與實際問題無關的數百或數千個觸發警報的通知。
通過Alertmanager的配置文件配置Inhibition。
### Sliences 靜默
靜默是一個非常簡單的方法,可以在給定時間內簡單地忽略所有警報。slience基于matchers配置,類似路由樹。來到的警告將會被檢查,判斷它們是否和活躍的slience相等或者正則表達式匹配。如果匹配成功,則不會將這些警報發送給接收者。
Silences在Alertmanager的web接口中配置。
### Client behavior 客戶行為
對于客戶行為,Alertmanager有[特別要求](https://prometheus.io/docs/alerting/clients)。這些僅僅適用于Prometheus服務不用于發送警報的高級用例。