Prometheus 的 Alertmanager Slack webhook 得到 "alertmanager.yaml err=" 不支持的方案 \"\" for URL"

Prometheus' Alertmanager Slack webhook getting "alertmanager.yaml err="unsupported scheme \"\" for URL"

我正在尝试向 Slack 发送 Alertmananger 警报,并且我使用我的自定义模板成功地做到了这一点。

但现在我想向不同的渠道发送警报,因此 select 从配置文件中获取不同的 webhook,但我无法这样做并得到

component=configuration msg="Loading configuration file failed" file=/etc/alertmanager/config/alertmanager.yaml err="unsupported scheme \"\" for URL"

我正在从模板文件中选择 webhook,问题主要在于加载变量 "slack.myorg.webhook"

Alertmanager.yaml

global:
  resolve_timeout: 5m
  slack_api_url: '{{ template "slack.myorg.webhook" . }}'
route:
  group_by: ['alertname']
  ...
  ...
  ...
templates: ['/etc/alertmanager/config/*.tmpl']

slack-myorg-template.tmpl

稍后我会将我的逻辑添加到某些标签上的 select webhook 中,现在只是通过模板加载

# To identify from which cluster the alerts are comming
{{ define "slack.myorg.username" }}Minikube{{ end }}

# select webhook
{{ define "slack.myorg.webhook" }}https://hooks.slack.com/services/XXX/XX/XX{{ end }}

唯一的问题是 slack.myorg.webhook 没有通过调用 '{{ template "slack.myorg.webhook" 完美地加载到 slack_api_url 中。 }}'.

我试过的其他东西

  1. 只是提到{{定义"slack.myorg.webhook" }}https://hooks.slack.com/services/XXX/XX/XX{{ end }} 不会导致 任何问题。
  2. 如果我做 username: '{{ template "slack.myorg.webhook" 。 }}' 在松弛配置下它不会抛出错误。

slack_api_url(以及 slack_config 中的 api_url)不支持模板。

https://github.com/prometheus/alertmanager/issues/2207#event-3127085200