Echobell

Prometheus Alertmanager 集成 - 服务器和基础设施监控通知

将 Prometheus Alertmanager 与 Echobell 集成以获取即时移动警报的完整指南。通过 Webhook 或电子邮件接收服务器监控、基础设施警报、CPU/内存使用率警告和关键系统事件的推送通知。

Prometheus 集成

Prometheus 配合 Alertmanager 是广泛使用的开源监控和告警栈。将 Alertmanager 与 Echobell 集成后,每当告警规则触发时,您可以收到即时移动通知(包括时效性通知或电话通知)。

前提条件

  • 已创建至少一个频道的 Echobell 账户
  • 运行中的 Prometheus + Alertmanager 环境
  • 能够编辑 Alertmanager 配置文件(alertmanager.yml)

概述

  1. 创建 Echobell 频道
  2. 配置通知模板
  3. 选择集成方式(Webhook 或 Email)
  4. 创建或更新告警规则
  5. 测试和优化

分步指南

创建 Echobell 频道

  1. 打开 Echobell 应用
  2. 创建新频道(例如:"Prometheus 告警")
  3. 选择便于识别的颜色

配置通知模板

Alertmanager 的 Webhook 负载包含 status、commonLabels、commonAnnotations、externalURL 和 alerts 数组等结构化字段。

标题模板:

{{commonLabels.alertname}} - {{status}}

正文模板:

🔔 告警:{{commonLabels.alertname}}
📊 严重级别:{{commonLabels.severity}}
🖥️ 实例:{{alerts[0].labels["instance"]}}
⏰ 开始时间:{{alerts[0].startsAt}}
ℹ️ 摘要:{{commonAnnotations.summary}}

可选链接模板(高级设置):

{{alerts[0].generatorURL || externalURL}}

方式 A — Webhook(推荐)

  1. 在 Echobell 频道中,从触发器复制 Webhook URL
  2. 在 Alertmanager 中配置 Webhook 接收器:
route:
  receiver: echobell-webhook

receivers:
  - name: echobell-webhook
    webhook_configs:
      - url: "https://hook.echobell.one/t/REPLACE_WITH_YOUR_TOKEN"
        send_resolved: true
        http_config:
          follow_redirects: true

注意:send_resolved: true 会在告警解除时也发送通知。

方式 B — Email(备选)

如果偏好使用 Email,使用 Alertmanager 的 Email 接收器:

  1. 在 Echobell 中,从触发器复制频道的 Email 地址
  2. 在 Alertmanager 中配置 Email 接收器:
receivers:
  - name: echobell-email
    email_configs:
      - to: "PASTE_CHANNEL_EMAIL_ADDRESS"
        send_resolved: true
        subject: "{{ .CommonLabels.alertname }} - {{ .Status }}"
        html: |
          <p><strong>摘要:</strong> {{ .CommonAnnotations.summary }}</p>
          <p>{{ .CommonAnnotations.description }}</p>

创建示例告警规则

groups:
  - name: example
    rules:
      - alert: HighCPU
        expr: avg(rate(process_cpu_seconds_total[5m])) > 0.8
        for: 2m
        labels:
          severity: critical
        annotations:
          summary: "CPU 使用率过高"
          description: "CPU 已超过 80% 持续 2 分钟"

当此告警触发时,Alertmanager 会将事件发送到 Echobell。

通知类型

  • 时效性:关键生产故障、需要呼叫级别响应的事件
  • 电话:必须中断专注模式的严重故障
  • 普通:常规告警、警告或信息通知

最佳实践

  1. 保持模板简洁但信息完整
  2. 使用链接模板直接跳转到图表/仪表板
  3. 在 Alertmanager 中分组和路由告警
  4. 将 Webhook URL 作为机密信息保护

故障排除

如果告警没有出现在 Echobell 中:

  • 验证 Webhook URL 或频道 Email
  • 确保频道处于活动状态且有订阅者
  • 检查 Alertmanager 日志中的投递错误
  • 验证 alertmanager.yml 中的路由

相关资源

目录