格式化来自 Grafana 的 Slack 通知

AWS*_*der 13 grafana prometheus grafana-api grafana-alerts prometheus-node-exporter

从 Grafana 获取 Slack 警报。但它的格式不太好。有没有办法在 Grafana 的 slack 中自定义通知?我正在使用节点导出器导出指标。仪表板从https://grafana.com/grafana/dashboards/1860下载

如何自定义通知,例如:

标题:服务器上的 CPU 负载警报

实例 IP:192.xxxx 值:CPU 使用率 90% 优先级:高

随附了 slack 中的示例输出。

在此输入图像描述

The*_*ko0 1

因此,在本指南的帮助下,我设法根据自己的需要很好地解决了这个问题:

https://community.grafana.com/t/how-to-use-alert-message-templates-in-grafana/67537/3

我也绝不会在这里发布配置:

  1. Grafana / 联系点 / 消息模板 - 创建名为“myalert”的新模板
{{ define "myalert" }}
  [{{.Status}}] {{ .Labels.alertname }} 
  {{ .Annotations.AlertValues }}
{{ end }}
Run Code Online (Sandbox Code Playgroud)
  1. Grafana / 联系点 - 消息模板 - 为名为“mymessage”的消息创建另一个模板
{{ define "mymessage" }}
  {{ if gt (len .Alerts.Firing) 0 }}
    {{ len .Alerts.Firing }} firing:
    {{ range .Alerts.Firing }} {{ template "myalert" .}} {{ end }}
  {{ end }}
  {{ if gt (len .Alerts.Resolved) 0 }}
    {{ len .Alerts.Resolved }} resolved:
    {{ range .Alerts.Resolved }} {{ template "myalert" .}} {{ end }}
  {{ end }}
{{ end }}
Run Code Online (Sandbox Code Playgroud)
  1. Grafana / 接触点 / 接触点 / Slack / 可选的 Slack 设置 / 文本正文 - 添加以下内容:
Alert summary:
{{ template "mymessage" . }}
Run Code Online (Sandbox Code Playgroud)
  1. Grafana / Some-Alert / Summary and Annoitations - 添加一个名为“AlertValues”的字段,其中包含以下内容:
Alert summary:
{{ with $values }}
{{ range $k, $v := . }}
   Location: {{$v.Labels.device}}
   Variable: {{$v.Labels.instance}}
   Alerting value: {{ $v }}
{{ end }}
{{ end }}
Run Code Online (Sandbox Code Playgroud)

^^设备实例可能会有所不同,具体取决于查询返回值(标签)

我得到的结果是:

    Alert summary:
     
       1 firing:
       
     [firing] EKS Storage
     
      Location: /dev/nvme0n1p1
      Variable: 10.0.112.170:9100
      Alerting value: 24.88013967279807
    ```
Run Code Online (Sandbox Code Playgroud)