跳到主要内容
版本:3.10.x

告警和联系人

使用 API 网关时,开发人员可能会遇到各种异常,例如即将到期的 SSL 证书或 HTTP 5xx 响应代码超过预定义的阈值。为了处理这些场景,API7 网关提供了一套异常事件监控和告警触发机制。该机制可以实时跟踪异常情况,一旦发现问题,立即通过电子邮件和 Webhook 向预设联系人发送告警通知,确保及时关注和解决。

告警如何运作?

API7 网关预先配置了 20 多个异常事件,每个异常事件都可以定制特定的触发规则和阈值。此外,用户可以选择应用这些规则的网关组。

告警策略提供两种触发条件模式:ALLANYALL 模式需要满足所有条件才能激活,而 ANY 模式满足任意条件即可生效。请注意,两种模式不能在单个告警策略中同时使用。

用户可以选择告警的严重性(高、中、低)并设置告警策略的检查间隔。严重级别将包含在告警通知中,但不会影响 API7 网关中的告警策略或规则设置。最小检查间隔为 1 分钟,即事件生效后每分钟向指定联系人发送告警通知。

通知可以通过 电子邮件Webhook 发送。用户可以使用变量和模板灵活定制通知内容,并与各种系统集成。

建议在通知中添加告警策略名称 {{ .AlertPolicyName }} 和描述 {{ .Description }},以帮助识别哪个策略触发了告警。

可以为通知配置多个联系人,例如向两个电子邮件地址和三个 Webhook 联系人发送告警。

API7 网关的控制面运行一个后台程序,每分钟检查所有告警策略,看看它们是否满足触发条件和阈值。如果满足条件,通知将发送到相应的联系人列表。

API7 网关还提供告警日志保存、查看和搜索,日志保留长达 30 天。这些日志记录告警策略配置,并在发送故障排除通知时捕获请求和响应详细信息。

为什么要使用联系人?

联系人是一个组织级别的概念,它抽象了通知方法(电子邮件或 Webhook)以及哪些渠道(人员、Slack 或操作平台)接收通知。

例如,如果你将 tom@acme.com 配置为告警模块中多个告警规则的收件人,而没有联系人,则每当需要更改时,你都需要更新每个告警策略中的电子邮件地址。这个过程很麻烦并且容易出错。 引入联系人可以将告警策略与特定通知配置分离。例如,你可以添加 Alert_to_dev_team 之类的告警策略,其中联系人为 Notify_dev_team_slack(Webhook 类型)。即使联系人的 URL 或身份验证令牌发生变化,也不需要修改告警策略。 用户需要保证控制面服务器与联系人之间的网络连接顺畅。具体来说,如果使用电子邮件类型的联系人,用户需要在“组织”菜单下预先配置 SMTP 服务器,以保证电子邮件的发送。

用例

数据面节点健康状况

当健康的网关实例数量低于指定阈值(例如 3 个)时,表明提供外部服务的 API 网关节点可能出现故障。这是一个高优先级事件,需要使用 Webhook 和一组指定的电子邮件地址通过 Slack 发送告警。

5xx 响应代码比率

如果 API 请求响应码为 5xx 的比例超过指定比例(例如 0.2%),则表明 API 网关或上游服务可能出现故障。这需要及时关注,并且应通过使用 Webhook 配置的 SMS 将告警发送给运营工程师。

SSL 证书到期

假设某网站的 SSL 证书在一定期限内(例如 30 天)即将到期。这表明需要轮换 SSL 证书,这不是一个紧急任务。运维工程师可以通过 Webhook 触发创建 Jira 任务。