需要將prometheus的報警規則存放在/etc/rules里面的yml文件中 同時prometheus的yaml文件需要開啟alertmanager,通過alertmanager觸發告警到各個平台,例如釘釘。
---
rules.yml文件
groups:
- name: api-server /報警名
rules:
- alert: api-server_cnt /報警規則名稱
for: 3m /持續時間
expr: count(up{job="kubernetes-apiservers"}) > 2 /報警語法
annotations: /報警的內容
summary: "api-server大於2"
values: "{{ $value }}"
labels: /打標簽
severity: error
classification: lyz
workline: xdrive
- alert: InstanceGone
for: 10s
expr: absent(up{job="node"})
annotations:
summary: "host {{ $labels.instance }} is no longer reporting"
labels:
severity: critical
classification: lyz2
workline: xdrive
---
接着需要在alertmanager的配置文件中更新路由和接收者:
這里定義默認接收者為lyz,同時routes使用分支路由,匹配標簽為serverity為critical的告警規則,發送給lyz2
---
最后需要在dingtalk組件中定義你的接收者發送地址,這個百度即可解決。
---
重啟prometheus
---
如果成功,則可以在頁面中看到
---
一旦觸發警告,則可以在alertmanager控制台中看到
注意,這里silence可以配置靜默時間,可永久或暫停告警。
---
接着可以在釘釘等看到告警通知
---
告警成功。