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