Yaml 在Slack中自定义Prometheus AlertManager通知

Yaml 在Slack中自定义Prometheus AlertManager通知,yaml,slack,prometheus,prometheus-alertmanager,Yaml,Slack,Prometheus,Prometheus Alertmanager,我几乎没有安装和配置WMI的Win服务器(如Build、DB、App等),并且能够在我的Prometheus仪表板上读取度量(基于磁盘空间>90等规则) 在同一个框上设置Altermanager,我正在将度量(Diskspace>90)详细信息写入我的空闲通道 route: group_by: [cluster] # If an alert isn't caught by a route, send it slack. receiver: slack routes: # Send s

我几乎没有安装和配置WMI的Win服务器(如Build、DB、App等),并且能够在我的Prometheus仪表板上读取度量(基于磁盘空间>90等规则)

在同一个框上设置Altermanager,我正在将度量(Diskspace>90)详细信息写入我的空闲通道

route:
 group_by: [cluster]
 # If an alert isn't caught by a route, send it slack.
 receiver: slack
 routes:
  # Send severity=slack alerts to slack.
  - match:
      severity: critical
    receiver: slack
receivers:
- name: slack
  slack_configs:
  - api_url: 'https://hooks.slack.com/services/Token'
    channel: '#alerts'
而松弛通知的输出为—— 实际值

有没有一种方法可以让我准备好机器名,并将它与标签名区分开来,比如Build、Db等

我希望通知更具可读性,如下图所示(我从某个博客上获得),你能提出建议吗

预期的

非常感谢您的任何意见

谢谢,

在接收者部分添加一个“文本”字段。这将允许您从
prometheus rules.yaml
文件中提取信息

receivers:
- name: slack
  slack_configs:
  - api_url: 'https://hooks.slack.com/services/Token'
    channel: '#alerts'
    text: "<!channel> \n summary: {{ .CommonAnnotations.summary }}\n description: {{ .CommonAnnotations.description }}"
接收器:
-名称:slack
slack\u配置:
-api_url:'https://hooks.slack.com/services/Token'
频道:“#警报”
文本:“\n摘要:{{.CommonAnnotations.summary}}\n说明:{{.CommonAnnotations.description}”

您可以从这个好例子开始。将此添加到
slack\u configs
下:

        text: >-
          {{ range .Alerts }}
             *Alert:* {{ .Annotations.summary }} - `{{ .Labels.severity }}`
            *Description:* {{ .Annotations.description }}
            *Graph:* <{{ .GeneratorURL }}|:chart_with_upwards_trend:> *Runbook:* <{{ .Annotations.runbook }}|:spiral_note_pad:>
            *Details:*
            {{ range .Labels.SortedPairs }} • *{{ .Name }}:* `{{ .Value }}`
            {{ end }}
          {{ end }}
text:>-
{{range.Alerts}
*警报:{{.Annotations.summary}-`{{.Labels.severity}`
*说明:{{.Annotations.Description}
*图表:**运行手册:*
*详情:*
{range.Labels.SortedPairs}}•*{{.Name}::`{.Value}`
{{end}
{{end}

我认为分享警报规则很好。。。将有标签,可以给你的机器名称。警报管理器只是按原样传递标签和内容。当您找到edid时。GeneratorURL?警报上的内容是什么?
generatorURL字段是一个唯一的反向链接,用于标识客户端中此警报的起因实体。
-我找到了它,我发现您在Prometheus中使用--web.externalurl标志设置了它。