Prometheus警报经理未发送警报



我正在与Prometheus一起在Kubernetes上工作,并试图将警报发送到Slack。问题在于警报正在发射,但没有被送到Slack。我正在使用Prometheus 1.18.1与Kubernetes 1.9。

目前,我只是想发送内置的" DeadMansSwitch"警报,我可以在UI中看到它正在射击。我的AlertManager.yaml(在Prometheus-operator/contry/kube-prometheus/Assets/AlertManager下(看起来像:

global:
  resolve_timeout: 5m
  slack_api_url: 'https://hooks.slack.com/services/AAABBBCCC/DDDEEEFFF/GGGHHHIII’
route:
  group_by: ['job']
  group_wait: 1s
  group_interval: 1s
  repeat_interval: 1s
  receiver: ‘slack’
  routes:
  - match:
       alertname: DeadMansSwitch
    receiver: ‘slack’
receivers:
- name: ‘slack’
   slack_configs:
   - channel: ‘#channel-name’

AlertManager UI上的配置显示:

global:
  resolve_timeout: 5m
  smtp_require_tls: true
  pagerduty_url: https://events.pagerduty.com/v2/enqueue
  hipchat_api_url: https://api.hipchat.com/
  opsgenie_api_url: https://api.opsgenie.com/
  wechat_api_url: https://qyapi.weixin.qq.com/cgi-bin/
  victorops_api_url: https://alert.victorops.com/integrations/generic/20131114/alert/
route:
  receiver: "null"
  group_by:
  - job
  routes:
  - receiver: "null"
    match:
      alertname: DeadMansSwitch
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 12h
receivers:
- name: "null"
templates: []

问题:
- AlertManager UI上的配置与我在AlertManager.yaml文件中的配置不同。此配置(在UI中(来自哪里?
- 在AlertManager.yaml中设置接收器是否不足以发送警报?我在这里错过什么吗?
- 我在错误的YAML文件中进行更改吗?

tl; dr = yaml是如此畸形,以至于我完全被解析了。


这是由两个无效的YAML造成的:凹痕和使用"智能撇号";您有:

receivers:
- name: ‘slack’
   slack_configs:

,但应该是:

receivers:
- name: 'slack'
  slack_configs:

否则,在yaml中,它将 nameslack_configs属性的属性中,而不是包含两个属性 nameslack_configs

的匿名对象。

您在发布的配置中都有一个"引用" slack的"引用"字符串,您使用了智能撇号,从YAML的观看点中,该字符串将字符串作为"u2018slacku2019"而不是您的含义(这是一个独立的问题(您引用了字符串,因为它与5mDeadMansSwitch没有什么不同(。

您也有一个正常的ASCII撇号领导slack_api_url:,但聪明的撇号关闭了该字符串。

无限方便的远程项目包含yaml2json,非常适合发现

之类的怪异yamlisms

最新更新