配置告警
API7 网关会监控网关实例、证书、许可证用量和请求状态码,并在条件超过阈值时通知你。告警由控制台中的三个概念组成:
- 联系人:可复用的通知目的地,包括电子邮件或 Webhook。
- 告警策略:需要评估的事件、规则、网关组和检查间隔,以及触发后通知的联系人。
- 告警历史:过去 30 天的告警和已发送通知记录。
有关告警评估和投递方式,请参阅告警和联系人。
配置联系人
创建策略前,至少配置一个联系人,以便网关发送通知。
- 在顶部导航栏选择 Organization,然后选择 Contact Points。
- 点击 Add Contact Point,选择以下类型之一:
- Email:输入一个或多个收件地址。电子邮件投递需要 SMTP 服务器,可在 Organization > Settings > SMTP Server 中配置。
- Webhook:输入目标 URL。可将通知转发到 Slack(通过 Slack Incoming Webhooks)、PagerDuty、Microsoft Teams 或其他接收告警负载的 HTTP 端点。
一个告警策略可以关联多个联系人,例如同时通知值班邮件列表和 Slack 频道。
推荐的告警策略
控制台提供 20 多种内置事件类型。以下策略适用于大多数生产环境。请从 Alert > Policies > Add Alert Policy 创建策略。
| 事件 | 用途 | 建议检查间隔 |
|---|---|---|
| 网关实例离线 | 数据面节点停止报告心跳且不再提供流量。 | 60 分钟 |
| 控制面与数据面之间的 mTLS 证书即将过期 | 此类证书的有效期为 13 个月;证书过期会中断控制面与数据面通信。 | 1440 分钟(每天) |
| SSL 证书即将过期 | 在客户端遇到 TLS 错误前轮换监听器证书。 | 1440 分钟(每天) |
| 许可证允许的 CPU 配额已超出 | 所有数据面实例的 CPU 核数超过 API7 企业版许可证配额。 | 60 分钟 |
| 健康网关实例数 | 网关组低于 SLO 要求的最小实例数。 | 30 分钟 |
| 状态码 500 的数量或比例 | 发现影响一定比例流量的上游或网关故障。 | 30 分钟 |
有关事件和控制面评估方式,请参阅告警和联系人。有关通知模板可用的变量,请参阅告警变量与模板。
自定义通知内容
电子邮件主题、电子邮件正文和 Webhook 负载可以包含以下模板变量:
| 变量 | 说明 |
|---|---|
{{ .AlertPolicyName }} | 告警策略名称。 |
{{ .Description }} | 告警策略描述。 |
{{ .Severity }} | 严重程度,包括 High、Medium 或 Low。 |
{{ .TriggerGatewayGroup }} | 触发告警的网关组名称,多个名称以逗号分隔。 |
{{ .AlertTime }} | 告警时间,可使用 {{ .AlertTime.Format "2006 Jan 02 15:04:05" }} 格式化。 |
{{ .AlertDetail }} | 触发告警事件的易读描述。嵌入 JSON Webhook 正文时,请使用 escape 函数({{ .AlertDetail | escape }})。 |
完整变量参考请参阅告警变量与模板。
查看告警历史
告警事件及其投递通知会保留 30 天。在控制台侧边导航栏中选择 Alert,然后点击 History。每条记录包含触发的策略、严重程度、触发时间、涉及的网关组以及已发送的告警详情。