Grafana 系列監控系列 — alertmanager通知管理
監控機ip:192.168.0.34
- alertmanager配置
- alertmanager.yml 將Discord的webhook 設定上去,並且重啟alertmanager 激活。
2. Prometheus 配置
- 配置連接 alertmanager 。
- 寫一個rule 若機器無反饋,則透過傳送 「THE SERVER IS OUT OF WORK!」告警。
3. 運行目標機的node_exporter 測試是否有成功檢測到並推送訊息。
1.配置alertmanager
# 編輯 /opt/bitnami/alertmanager/conf/config.yml
# 新增 Discord 通知配置
route:
group_by: ['alertname']
group_wait: 30s
group_interval: 5m
repeat_interval: 1h
receiver: 'Discord'
receivers:
- name: 'web.hook'
webhook_configs:
- url: 'http://127.0.0.1:5001/'
- name: 'Discord' # <- 關鍵這邊 新增Discord 通知配置
discord_configs:
- webhook_url: "https://xxxxxxxxdiscord/key"
inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname', 'dev', 'instance']
配置好並且重啟的alertmanager 可以透過以下方式進行測試,若成功調用則會顯示一筆TestAlert 通知,在Discord上則會顯示內容
curl -H "Content-Type: application/json" -d '[{"labels":{"alertname":"TestAlert"}}]' http://localhost:9093/api/v2/alerts
2.配置Prometheus
注意: 因為這邊在創建容器時 有先創建 network 將grafana 系列進行關聯,所以可以直接使用容器名進行連線。
大致配置
- 配置 prometheus.yml。
- 規則統一會放在 /opt/bitnami/prometheus/conf/rules/*.yml底下。
- 新增 job 監控機器。
- 配置完後可以在
http://localhost:9090/config
查看是否有配置成功。
# 編輯 /opt/bitnami/prometheus/conf/prometheus.yml
# 以下是預設的prometheus 配置
# 激活 alertmanager 配置
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets:
- alertmanager:9093 # <-- 將該行註解拿掉, 配置上激活的alertmanager
rule_files:
- "rules/*.yml"
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: "local"
static_configs:
- targets: ["192.168.0.34:9100"]
labels:
name: myname
job: test
prometheus測試用規則細節可以自行在設定,可以在面板的首頁>警報>警報規則中查詢創建的規則。
# 創建/opt/bitnami/prometheus/conf/rules/serverDown.yml 規則
groups:
- name: server_rule
rules:
- alert: SERVER_OUT_OF_WORK
expr: up{name="server-local"}==0
for: 1m
labels:
severity: page
annotations:
summary: THE SERVER IS OUT OF WORK!
在 Prometheus 面板配置連接 alertmanager
可以透過config 頁面查詢看看是否配置成功。
3. 運行node_exporter
若不了解 node_exporter 可以參考