Alertmanager與Prometheus是相互分離的兩個組件。Prometheus服務器根據報警規則將警報發送給Alertmanager,而後Alertmanager將silencing、inhibition、aggregation等消息經過電子郵件、微信、等發送信息,linux
下載軟件包git
wget https://github.com/prometheus/alertmanager/releases/download/v0.20.0/alertmanager-0.20.0.linux-amd64.tar.gz
github
解壓安裝web
tar zxvf alertmanager-0.16.0.linux-amd64.tar.gz && cd alertmanager-0.16.0.linux-amd64服務器
啓動 alertmanager 微信
./alertmanager --config.file=alertmanager.ymlide
修改 prometheus.yml 配置文件ui
配置 與alertmanager 通訊lua
alerting: alertmanagers: - static_configs: - targets: - x.x.x.x:9093
增長報警規則,監控主機服務,默認正常是1 code
#Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
groups: - name: generals.rules rules: - alert: InstanceDown expr: up == 0 for: 1m labels: severity: error annotations: summary: "Instance {{ $labels.isinstance }} down" description: "{{ $labels.instance }} down more than 1 minutes"
重載配置文件 kill -hup $pid 或者重啓 prometheus 服務
查看配置的報警規則
報警規則已建立 ,設置郵件通知報警,已qq 郵箱爲示列,qq 郵箱須要開啓smtp ,
smtp_require_tls 默認爲true ,這裏須要修改成false,不然郵件觸發不成功, smtp_auth_password 填寫受權瑪
global: 全局配置,包括報警解決後的超時時間、SMTP 相關配置、各類渠道通知的 API 地址等等。
route: 用來設置報警的分發策略,它是一個樹狀結構,按照深度優先從左向右的順序進行匹配。
receivers: 配置告警消息接受者信息,例如經常使用的 email、wechat、slack、webhook 等消息通知方式。
global: resolve_timeout: 5m smtp_smarthost: 'smtp.qq.com:465' smtp_from: 'xxx@qq.com' smtp_auth_username: 'xxx@qq.com' smtp_auth_password: 'xxx' #smtp_auth_secret: false smtp_require_tls: false smtp_hello: 'qq.com' route: group_by: ['alertname'] group_wait: 10s group_interval: 10s repeat_interval: 1h receiver: 'mail' receivers: - name: 'mail' email_configs: - to: 'xxx@qq.com' send_resolved: true
觸發報警,手動關閉,es 服務,幾分鐘後收到郵件報警