kubernetes - Prometheus 警报管理器未发送警报
问题描述
我正在与 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 文件中进行了更改?
解决方案
tl;dr = yaml 的格式如此错误,以至于我对它的解析感到震惊。
它是由两位无效的 YAML 引起的:缩进和“智能撇号”的使用;你有:
receivers:
- name: ‘slack’
slack_configs:
但应该是:
receivers:
- name: 'slack'
slack_configs:
否则在 YAML 中,它会name
变成一个具有属性的对象slack_configs
,而不是包含两个属性name
和的匿名对象slack_configs
您在发布的配置中有一个“引用”字符串的每个地方slack
,您都使用了智能撇号,从 YAML 的角度来看,它使字符串文字"\u2018slack\u2019"
而不是您的意思(这是一个单独的问题,为什么您将字符串引用到开头,因为它与5m
or没有任何不同DeadMansSwitch
。
您还有一个正常的 ascii 撇号引导slack_api_url:
但一个智能撇号关闭该字符串。
无限方便的remarshal项目包含yaml2json
非常适合发现类似的奇怪 YAML 主义
推荐阅读
- autodesk-forge - 如何在 Autodesk Forge 查看器中更改选择颜色?
- gnat - Gnatbind 中的 C 活页夹开关
- elasticsearch - 如何匹配 Elasticsearch 中数组数据类型的多个值?
- java - 不使用 SimpleDateFormat 解析字符串
- javascript - 刷新 jQuery 数据表
- hibernate - 将包含连接提取的 SQL 查询转换为 Criteria Hibernate 查询
- php - WooCommerce 产品类别的新邮件通知
- c# - 如何在 hostgator linux 共享主机上安装 ASP.NET Core 应用程序?
- r - R:逻辑回归,glm&predict:预测哪个类?
- c - x86-64 中的内存分配