prometheus 編寫告警規則
將自定義的告警規則寫到獨立的文件中,prometheus.yml中引用如下:
rule_files:
- "rules/*.yml"
[root@localhost prome]# mkdir /usr/local/prome/rules
編輯一個新的名為node-server.yml文件
vim node-server.yml
groups: # 告警分組
- name: Node-server.rules # 組名稱
rules: #告警規則
- alert: System Memory Used # 告警主題名稱
expr: 100-(node_memory_MemAvailable_bytes{job="node-server"}/node_memory_MemTotal_bytes{job="node-server"}*100) > 60 # 告警閾值
for: 1m # 閾值持久時間
labels: # 標簽,定義告警級別
severity: warning
annotations: # 告警描述信息
summary: "Instance {{ $labels.instance }} : {{ $labels.job }} 內存使用率過高 "
description: "{{ $labels.instance }} : {{ $labels.job }} 內存使用率超過60%.當前值: {{ $value }}" # {{ $value }} 調用的是上面的promeSQL的值
- 告警規則編寫完后,檢查一下配置
# 可以看到檢測到幾個報警規則文件和每個規則文件中定義了幾個告警規則
[root@localhost prome]# ./promtool check config prometheus.yml
Checking prometheus.yml
SUCCESS: 2 rule files found
Checking rules/node-server.yml
SUCCESS: 1 rules found
Checking rules/rules.yml
SUCCESS: 1 rules found
- 配置無誤后重載 prometheus 服務
一分鍾后收到郵件
同樣,一個資源組的其他監控項寫在同一個規則文件中的rules下定義多個告警項即可