Prometheus告警不再多讲,重点来讲Grafana告警配置,因为有些数据源无法通过Alertmanager配置告警,比如数据源为loki、cloudwatch…,所以需要在Grafana上配置告警,我这里告警通知是通过webhook调用PrometheusAlert发送的,在文档后面我会讲到它的使用;
告警流程图
Grafana配置
Grafana告警需要完成Alert rulers
,Contact points
,Notification policies
配置;
- Alert rulers:定义告警规则
- Contact points:消息通知类型
webHook地址复制PrometheusAlert对应模版的路径即可,替换其中的tpl和dd token地址,dd token获取这里不再多说;
- Notification policies
PrometheusAlert
PrometheusAlert是开源的运维告警中心消息转发系统,支持主流的监控系统Prometheus、Zabbix,日志系统Graylog2,Graylog3、数据可视化系统Grafana、SonarQube等支持WebHook接口的系统发出的预警消息,支持将收到的这些消息发送到钉钉,微信,飞书,腾讯短信,腾讯电话,阿里云短信,阿里云电话,华为短信,容联云电话等。
参考链接:https://feiyu563.github.io/
示例:这是一个接受者类型为钉钉的模版
{{ $var := .externalURL}}
{{ range $k,$v:=.alerts }}
{{if eq $v.status "firing"}}
![预警](https://********/ops/error.jpg) #这是告警时的图片
#### [{{$v.labels.alertname}}]({{$var}})
###### 告警级别:{{$v.labels.severity}}
###### 开始时间:{{$v.startsAt}}
###### 结束时间:{{$v.endsAt}}
###### 告警实例:{{$v.labels.instance}}
###### 告警内容:{{$v.annotations.summary}}
[点我屏蔽告警]({{$v.silenceURL}})
{{else}}
![恢复](https://*********/ops/ok.jpg) #这是告警恢复时的图片
#### [{{$v.labels.alertname}}]({{$var}})
###### 告警级别:{{$v.labels.severity}}
###### 开始时间:{{$v.startsAt}}
###### 结束时间:{{$v.endsAt}}
###### 告警实例:{{$v.labels.instance}}
####告警内容:{{$v.annotations.summary}}
[点我屏蔽告警]({{$v.silenceURL}})
{{ end }}
{{ end }}
效果如下: