原创-prometheus报警规则

需要将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可以配置静默时间,可永久或暂停告警。

 

---

接着可以在钉钉等看到告警通知

 

---

告警成功。

 

posted @ 2021-01-13 21:21  Normanlin  阅读(2345)  评论(0编辑  收藏  举报