我想将严重警报标记为红色,警告警报标记为橙色,正常警报标记为绿色。但是,当所有三个警报同时发送时,它们都会显示为红色。我希望每个 Slack Alert 通知颜色都能被区分。顺便说一句,它们都是红色的,如下图所示。
这是我的 Grafana 警报模板。
{{ define "slack_title" }}
{{ if gt (len .Alerts.Firing) 0 }}
🔥 {{ len .Alerts.Firing }} alert(s) firing
{{ end }}
{{ if gt (len .Alerts.Resolved) 0 }}
✅ {{ len .Alerts.Resolved }} alert(s) resolved
{{ end }}
{{ end }}
{{ define "slack_message" }}
{{ if gt (len .Alerts.Firing) 0 }}
{{ range .Alerts.Firing }} {{ template "slack_alert_firing" .}} {{ end }} {{ end }}
{{ if gt (len .Alerts.Resolved) 0 }}
{{ range .Alerts.Resolved }} {{ template "slack_alert_resolved" .}} {{ end }} {{ end }}
{{ end }}
{{/* alert */}}
{{ define "slack_alert_firing" }}
🔥 Alert Fired
Cluster: {{ .Labels.Cluster }}
Instance: {{ reReplaceAll ":9100" "" .Labels.instance }}
Value: {{ .Annotations.Value }}
Node: {{ reReplaceAll "aks-" "" .Labels.nodename }}
Severity: {{ .Labels.severity }}
{{ end }}
{{ define "slack_alert_resolved" }}
✅ Alert Resolved
Cluster: {{ .Labels.Cluster }}
Instance: {{ reReplaceAll ":9100" "" .Labels.instance }}
Value: {{ .Annotations.Value }}
Node: {{ reReplaceAll "aks-" "" .Labels.nodename }}
Severity: Normal
{{ end }}
{{/* Color of Slack attachment (appears as line next to alert )*/}}
{{ define "slack.monzo.color" -}}
{{ if eq .Status "firing" -}}
{{ if eq .CommonLabels.severity "warning" -}}
warning
{{- else if eq .CommonLabels.severity "critical" -}}
danger
{{- else -}}
#439FE0
{{- end -}}
{{ else -}}
good
{{- end }}
{{- end }}
不知道您是否能够解决该问题,但我的方法是使用通知策略来触发 3 个不同的警报(1 个用于严重警报,1 个用于警告,1 个用于已解决的事件)。
通过这样做,您可以同时发送多条消息,每条消息都有相应的颜色。
https://grafana.com/docs/grafana/latest/alerting/fundamentals/notifications/notification-policies/