部署 alertmanager
官網(wǎng)下載:
https://prometheus.io
上傳解壓
tar xzvf alertmanager-0.26.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/alertmanager-0.26.0.linux-amd64 /usr/local/alertmanager
啟動方式:
直接啟動
# ./alertmanager
可以放后臺啟動
# nohup ./alertmanager &
配置文件:
alertmanager.yml
在配置alertmanager.yml前需要先在prometheus上創(chuàng)建rules
# vim prometheus.yml
rule_files:
- "./rules/ops.yml" #添加rules路徑
# vim ./rules/ops.yml
groups: #告警分組
- name: test #rules名稱
rules:
- alert: high_rate_of_cpu_usage #告警名稱
expr: avg by(instance)(1-rate(node_cpu_second_total{mode=“idle”}[5m]))*100 >= 85 #PromQL表達(dá)式
for: 10s #持續(xù)時間
labels: #分組標(biāo)簽结窘,需要和alertmanager.yml上路由匹配
status: high_rate
team: test
annotations: #注釋信息
summary: "test!!!"
description: "test!!!"
以上配置僅為測試,生產(chǎn)配置以具體需求為準(zhǔn)充蓝。
重啟prometheus
可以在prometheus_IP:9090的UI界面導(dǎo)航欄上 Alerts中看到high_rate_of_cpu_usage
配置alertmanager.yml:
# vim /usr/local/alertmanager/alertmanager.yml
global:
resolve_timeout: 5m #如果5m沒有發(fā)送告警則聲明為已恢復(fù)
smtp_smarthost: 'smtp.163.com:25'
smtp_from: '郵箱@163.com'
smtp_auth_username: '郵箱@163.com'
smtp_auth_password: '授權(quán)碼'
#smtp相關(guān)配置隧枫,如果需要發(fā)送郵件告警,就需要配置smtp信息谓苟。
route: #告警路由策略官脓,分配告警到接收人
group_by: ['alertname'] #告警分組
group_wait: 30s #同一組告警等待時間,30s內(nèi)同一組告警只發(fā)一次
group_interval: 10s #同一組告警信息重發(fā)間隔時間
repeat_interval: 10s #定義告警信息重發(fā)間隔時間
receiver: 'dingding_robot' #指定一個默認(rèn)接收人
routes: #定義路由規(guī)則
- match: #匹配標(biāo)簽涝焙,與prometheus的rules的標(biāo)簽對應(yīng)
status: high_rate
team: test
receiver: 'dingding_robot' #指定這條告警接收人
receivers: #接收人信息配置
- name: 'to_email'
email_configs:
- to: '郵箱2@163.com'
- name: 'dingding_robot'
webhook_configs:
- url: 'webhook地址' #如果想通過釘釘機(jī)器人發(fā)送到群里卑笨,不能直接填機(jī)器人的webhook,可以跑個flask仑撞,接收并處理json數(shù)據(jù)赤兴,再發(fā)送給釘釘機(jī)器人的webhook。
以上配置僅為測試隧哮,生產(chǎn)配置以具體需求為準(zhǔn)桶良。
alertmanager.yml還有一些很有用的配置,這里沒用到就沒寫沮翔,如抑制規(guī)則...
修改好配置后陨帆,保存退出,后臺啟動alertmanager
手動觸發(fā)告警:告警規(guī)則是5分鐘內(nèi)cpu平均使用率到達(dá)85%以上,那么對node_exporter那臺機(jī)器進(jìn)行壓力測試# stress -c 4 疲牵,可以觀察graph圖表的趨勢承二,直到收到告警。