Prometheus 告警无法发送到 OneAlert 排错文档

根据不同集成类型,有不同排错方法:

webhook方式集成

排查步骤:

  1. 请确认配置内容中 url 正确,请直接复制应用配置页面内容。修改 alertmanager 模块的配置文件,通过 webhook 方式通知 OneAlert,编辑告警的配置文件,新增以下内容。

  2. 请确认是否启动 alertmanager 模块,并加载该配置文件。

  3. 请确认网络是否正常,能否 ping 通 api.110monitor.com。

  4. 请确认您在 Prometheus 上配置的规则是否正确,是否能够匹配到 team-X-pager

兼容 PagerDuty 方式集成

排查步骤:

1.OneAlert 接收不到告警信息

Prometheus 的告警消息顺序如下:

Prometheus -> Alertmanager -> OneAlert

所以我们需要通过排查是否是以上三个环节出现问题。

2.Prometheus 是否启用告警推送至 Alertmanager

需要启动 Prometheus 时,加入 alertmananger.url 参数,例如:

./prometheus    -config.file=prometheus.yml 
alertmanager.url=http://your.alertmanager.domain.com:9093
web.external-url=http://your.prometheus.domain.com:9090/ 
log.level=debug

如果 Prometheus 连接不上 Alertmanager,那么就会报错:

ERRO[0651]    Error    sending    alerts:     Post 
http://localhost:9093/api/v1/alerts:  dial tcp 127.0.0.1:9093: 
getsockopt:   connection   refused  
alertmanager="http://localhost:9093/api/v1/alerts"  count=1 
source="notifier.go:379"

3.Alertmanager 是否接收到告警信息

修改配置后需要重启,建议启动 debug 模式 -log.level=debug

./alertmanager   -config.file=simple.yml   -web.external
url=http://your.alertmanager.com:9093/ -log.level=debug

当出现 flushing、notify 等信息时,说明 alertmanager 成功触发消息。

DEBU[1032] Received alert
alert=go_memstats_frees_total_gt[fd66490][active] 
component=dispatcher source="dispatch.go:186"
DEBU[1032] Received alert
alert=go_memstats_alloc_bytes_gt[3399c28][active] 
component=dispatcher source="dispatch.go:186"
DEBU[1032] flushing [go_memstats_alloc_bytes_gt[3399c28][active]]  
aggrGroup={}:{alertname="go_memstats_alloc_bytes_gt"} 
source="dispatch.go:428"
DEBU[1032] notifying PagerDuty
eventType=trigger 
incident="{}:{alertname="go_memstats_alloc_bytes_gt"}" 
source="impl.go:466"
  • 注意:Alertmanager 并不会一直触发外送消息,有一个积累的过程。特别是老告警,是不会推送的。所以建议通过制造新的测试告警

4.制造新的测试告警

在 Prometheus 中设置新的告警(以前没有发生过),如果告警已经发生过,则需要修改告警规则,包括名称,条件都可以。

在 Prometheus 中 Alerts 查看新告警

之后通过 Alertmanager 界面上看有没有新告警,注意可以通过 receiver 过滤对应的接收者,如果配置了 team-X-mails,那么别的告警是不会推送给 OneAlert 的。

5.老告警的恢复消息 OneAlert 不会处理

OneAlert 处理告警的顺序是,trigger(active)-> resolve(resolved)。如果是 resolve 事件先过来,那么该事件会被忽略掉。


如果您对 OneAlert 感兴趣,可以选择使用我们的产品,只需要点击下面的按钮免费注册即可。


注册,永久免费使用 OneAlert