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

import { Step, Steps } from "fumadocs-ui/components/steps";

# Prometheus 集成

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

## 前提条件

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

## 概述

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

## 分步指南

<Steps>
<Step>
### 创建 Echobell 频道

1. 打开 Echobell 应用
2. 创建新频道（例如："Prometheus 告警"）
3. 选择便于识别的颜色
</Step>
<Step>

### 配置通知模板

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}}
```

</Step>
<Step>
### 方式 A — Webhook（推荐）

1. 在 Echobell 频道中，从触发器复制 Webhook URL
2. 在 Alertmanager 中配置 Webhook 接收器：

```yaml
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` 会在告警解除时也发送通知。

</Step>
<Step>
### 方式 B — Email（备选）

如果偏好使用 Email，使用 Alertmanager 的 Email 接收器：

1. 在 Echobell 中，从触发器复制频道的 Email 地址
2. 在 Alertmanager 中配置 Email 接收器：

```yaml
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>
```

</Step>
<Step>
### 创建示例告警规则

```yaml
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。

</Step>
</Steps>

## 通知类型

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

## 最佳实践

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

## 故障排除

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

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

## 相关资源

- [Prometheus 文档](https://prometheus.io/docs/introduction/overview/)
- [Alertmanager 配置](https://prometheus.io/docs/alerting/latest/configuration/)
- [Echobell Webhook](/zh/docs/webhook)
- [通知模板](/zh/docs/notification)
