Alertmanager起步

Note

实践环境采用 在Kubernetes集群(z-k8s)部署集成GPU监控的Prometheus和Grafana ,服务访问端口采用 NodePort 简化配置,本文测试脚本配置端口按照 NodePort 配置

kube-prometheus-stack 配置AlertManager

Prometheus 通常与处理警报和警报路由的 AlertManager 结合使用:

  • AlertManager 支持各种报警传输(例如电子邮件或 slack )

  • AlertManager 报警功能可以通过自定义 webhookss 扩展,也就是企业可以开发自己的告警平台,然后结合到 AlertManager 的 webhook

Note

Swatto/promtotwilio 提供了一个从 Prometheus监控 接收webooks然后通过 Twilio 发送短信告警

测试alert

  • Altermanager 发送一个测试告警:

测试alertmanager
alertmanager_ip=192.168.6.115
alertmanager_port=30903

curl -XPOST "http://${alertmanager_ip}:${alertmanager_port}/api/v1/alerts" \
  -d \
  "[{
    \"status\": \"firing\",
    \"labels\": {
      \"alertname\": \"测试告警\",
      \"service\": \"test-service\",
      \"severity\":\"warning\",
      \"instance\": \"testinstance.cloud-atlas.io\"
    },
    \"annotations\": {
      \"summary\": \"延迟过高!\"
    }
  }]"

如果正常,终端会收到:

{"status":"success"}

检查 AlertManager 管理WEB页面可以看到添加了如下一条信息:

../../../_images/test_alert.png

Note

cURL提交json文件 是通用的 curl 方法,在 alertmanager 上可以用来测试数据路由

配置 alertmanager.yml

Alertmanager的配置主要包含两个部分:

  • 路由(route)

  • 接收器(receivers)

参考