1. 程式人生 > 實用技巧 >部署AlertManager

部署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