【问题标题】:Prometheus Alert Manager not sending out alertsPrometheus 警报管理器未发送警报
【发布时间】:2018-04-25 05:37:21
【问题描述】:

我正在与 Prometheus 在 Kubernetes 上合作,并尝试将警报发送到 slack。问题是警报正在触发,但没有发送到松弛状态。 我正在使用 Prometheus 1.18.1 和 Kubernetes 1.9。

现在我只是尝试发送内置的“DeadMansSwitch”警报,我可以在 UI 中看到它正在触发。我的 alertmanager.yaml(在 prometheus-operator/contrib/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 文件中进行了更改?

【问题讨论】:

    标签: kubernetes prometheus-alertmanager


    【解决方案1】:

    tl;dr = yaml 的格式如此错误,我惊呆了,它被解析了。


    这是由两位无效的 YAML 引起的:缩进和“智能撇号”的使用;你有:

    receivers:
    - name: ‘slack’
       slack_configs:
    

    但应该是:

    receivers:
    - name: 'slack'
      slack_configs:
    

    否则在 YAML 中,它会将 name 变成一个属性为 slack_configs对象,而不是包含两个属性 nameslack_configs 的匿名对象

    在您发布的配置中,您在每个有“引用”字符串 slack 的地方都使用了智能撇号,从 YAML 的角度来看,它使字符串文字为 "\u2018slack\u2019" 而不是您的意思(它是一个单独的问题,为什么要引用字符串开头,因为它与 5mDeadMansSwitch 没有任何不同。

    slack_api_url: 前面还有一个普通的 ascii 撇号,但该字符串的结尾是一个智能撇号。

    无限方便的remarshal 项目包含yaml2json,非常适合发现此类奇怪的 YAML 主义

    【讨论】:

    • 非常感谢 Matthew .. 帮助很大!!
    猜你喜欢
    • 2020-04-15
    • 2021-12-23
    • 2020-02-28
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多