部署AlertManager
部署Alertmanager
Alertmanager和Prometheus Server一樣均採用Golang實現,並且沒有第三方依賴。一般來說我們可以通過以下幾種方式來部署Alertmanager:二進位制包、容器以及原始碼方式安裝。
使用二進位制包部署AlertManager
獲取並安裝軟體包
Alertmanager最新版本的下載地址可以從Prometheus官方網站https://prometheus.io/download/獲取。
curl -LO https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gz tar xvf alertmanager-0.21.0.linux-amd64.tar.gz
建立alertmanager配置檔案
Alertmanager解壓後會包含一個預設的alertmanager.yml配置檔案,內容如下所示:
global: resolve_timeout: 5m route: group_by: ['alertname'] group_wait: 10s group_interval: 10s repeat_interval: 1h receiver: 'web.hook' receivers: - name: 'web.hook' webhook_configs: - url: 'http://127.0.0.1:5001/' inhibit_rules: - source_match: severity: 'critical' target_match: severity: 'warning' equal: ['alertname', 'dev', 'instance']
Alertmanager的配置主要包含兩個部分:路由(route)以及接收器(receivers)。所有的告警資訊都會從配置中的頂級路由(route)進入路由樹,根據路由規則將告警資訊傳送給相應的接收器。
在Alertmanager中可以定義一組接收器,比如可以按照角色(比如系統運維,資料庫管理員)來劃分多個接收器。接收器可以關聯郵件,Slack以及其它方式接收告警資訊。
當前配置檔案中定義了一個預設的接收者default-receiver由於這裡沒有設定接收方式,目前只相當於一個佔位符。
在配置檔案中使用route定義了頂級的路由,路由是一個基於標籤匹配規則的樹狀結構。所有的告警資訊從頂級路由開始,根據標籤匹配規則進入到不同的子路由,並且根據子路由設定的接收器傳送告警。目前配置檔案中只設置了一個頂級路由route並且定義的接收器為default-receiver。因此,所有的告警都會發送給default-receiver。
啟動Alertmanager
Alermanager會將資料儲存到本地中,預設的儲存路徑為data/
。因此,在啟動Alertmanager之前需要建立相應的目錄:
./alertmanager
使用者也在啟動Alertmanager時使用引數修改相關配置。--config.file
用於指定alertmanager配置檔案路徑,--storage.path
用於指定資料儲存路徑。
檢視執行狀態
Alertmanager啟動後可以通過9093埠訪問,http://192.168.75.21:9093