2、Prometheus基於Alertmanager實現釘釘告警

1.安裝prometheus-webhook-dingtalk插件

wget https://github.com/timonwong/prometheus-webhook-dingtalk/releases/download/v0.3.0/prometheus-webhook-dingtalk-0.3.0.linux-amd64.tar.gz
tar -zxf prometheus-webhook-dingtalk-0.3.0.linux-amd64.tar.gz -C /opt/
mv /opt/prometheus-webhook-dingtalk-0.3.0.linux-amd64 /opt/prometheus-webhook-dingtalk

2.釘釘建立機器人自定義告警關鍵詞並獲取token

2、Prometheus基於Alertmanager實現釘釘告警

選擇羣組—>羣設置–>添加智能羣助手–>添加機器人

注意:選擇過程當中會有三種安全設置(這裏咱們只用第一種)
1.第一個自定義關鍵字是說你在之後發送的文字中必需要有這個關鍵字,不然發送不成功。
2.加簽是一種特殊的加密方式,第一步,把timestamp+"\n"+密鑰當作簽名字符串,使用HmacSHA256算法計算簽名,而後進行Base64 encode,最後再把簽名參數再進行urlEncode,獲得最終的簽名(須要使用UTF-8字符集)。
3.IP地址就是說你在發送時會獲取你的IP地址,若是不匹配就發送不成功。這個加密的方式能夠本身選擇,咱們選擇加簽。若是你想使用IP的話,能夠訪問https://ip.cn/

3.啓動釘釘插件dingtalk

vim /etc/systemd/system/prometheus-webhook-dingtalk.service
#添加以下內容
[Unit]
Description=prometheus-webhook-dingtalk
After=network-online.target

[Service]
Restart=on-failure
ExecStart=/opt/prometheus-webhook-dingtalk/prometheus-webhook-dingtalk --ding.profile=ops_dingding=本身釘釘機器人的Webhook地址

[Install]
WantedBy=multi-user.target

#命令行啓動
systemctl daemon-reload
systemctl start prometheus-webhook-dingtalk
ss -tnl | grep 8060

#測試
curl   -H "Content-Type: application/json"  -d '{ "version": "4", "status": "firing", "description":"description_content"}'  http://localhost:8060/dingtalk/ops_dingding/send

4.配置Alertmanager

cat /opt/alertmanager/alertmanager.yml
global:
  #每一分鐘檢查一次是否恢復
  resolve_timeout: 1m
route:
  #設置默認接收人
  receiver: 'webhook'
  #組告警等待時間。也就是告警產生後等待10s,若是有同組告警一塊兒發出
  group_wait: 10s
  #兩組告警的間隔時間
  group_interval: 10s
  #重複告警的間隔時間,減小相同微信告警的發送頻率
  repeat_interval: 1h
  #採用哪一個標籤來做爲分組依據
  group_by: [alertname]
  routes:
  - receiver: webhook
    group_wait: 10s
    match:
      team: node
receivers:
- name: 'webhook'
  webhook_configs:
  - url: http://localhost:8060/dingtalk/ops_dingding/send 
    #警報被解決以後是否通知
send_resolved: true

#命令行啓動
cd /opt/alertmanager/
./alertmanager --config.file=alertmanager.yml &
netstat -anput | grep 9093

5.關聯Prometheus並配置報警規則

cat /opt/prometheus/rules/node_down.yml 
groups:
- name: Node_Down
  rules:
  - alert: Node實例宕機
    expr: up == 0
    for: 10s
    labels:
      user: prometheus
      severity: Warning
    annotations:
      summary: "{{ $labels.instance }} 服務宕機"
      description: "{{ $labels.instance }} of job {{ $labels.job }} has been Down."
修改Prometheus配置文件
cat /opt/prometheus/prometheus.yml
# 修改如下內容
# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
- targets: ["localhost:9093"]
rule_files:
  - "/opt/prometheus/rules/node_down.yml"                 # 實例存活報警規則文件

#重啓
systemctl restart prometheus

6.測試釘釘報警功能

#關閉node_exporter
systemctl stop node_exporter
告警通知

2、Prometheus基於Alertmanager實現釘釘告警

恢復通知:

2、Prometheus基於Alertmanager實現釘釘告警

相關文章
相關標籤/搜索