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