告警与联系人
在使用 API 网关时,开发人员可能会遇到各种异常,例如即将到期的 SSL 证书或超过预定义阈值的 HTTP 5xx 响应代码。为了处理这些场景,API7 企业版提供了一套异常事件监控和告警触发机制。该机制允许实时跟踪异常,并在检测到问题时,通过电子邮件和 Webhook 立即向预设联系人发送告警通知,确保及时的关注和解决。
告警如何工作?
API7 企业版预配置了 20 多个异常事件,每个事件都可以使用特定的触发规则和阈值进行自定义。此外,用户可以选择应用这些规则的网关组。
告警策略为触发条件提供了两种模式:ALL(全部)或 ANY(任意)。ALL 模式要求满足所有条件才能激活,而 ANY 模式在满足任何条件时生效。请注意,这两种模式不能在单个告警策略中同时使用。
用户可以选择告警的严重程度(高、中、低)并设置告警策略的检查间隔。严重级别将包含在告警通知中,但不会影响 API7 企业版中的告警策略或规则设置。最小检查间隔为 1 分钟,这意味着生效后,事件的告警通知将每分钟发送给指定的联系人。
通知可以通过 Email 或 Webhook 发送。用户 可以使用 变量和模板 灵活地自定义通知内容,并与各种系统集成。
建议在通知中添加告警策略名称 {{ .AlertPolicyName }} 和描述 {{ .Description }},以帮助识别触发告警的策略。
可以为通知配置多个联系人,例如将告警发送到两个电子邮件和三个 Webhook 联系人。
API7 企业版的控制平面运行一个后台程序,每分钟检查所有告警策略,看它们是否满足触发条件和阈值。如果是,通知将被发送到相应的联系人列表。
API7 企业版还提供告警日志以供保存、查看和搜索,日志保留长达 30 天。这些日志记录了告警策略配置,并在传递通知时捕获请求和响应详细信息,以便进行故障排除。
为什么使用联系人?
联系人(Contact Point)是一个组织层面的概念,它抽象了通知方法(电子邮件或 Webhook)以及接收通知的渠道(人员、Slack 或运维平台)。
例如,如果你在告警模块中为多个告警规则配置 tom@acme.com 作为收件人,如果没有联系人,每当需要更改时,你需要更新每个告警策略中的电子邮件地址。这个过程繁琐且容易出错。
引入联系人将告警策略与具体通知配置解耦。例如,你可以添加一个名为 Alert_to_dev_team 的告警策略,使用联系人 Notify_dev_team_slack(Webhook 类型)。即使联系人的 URL 或身份验证令牌发生变化,也不需要修改告警策略。
用户需要确保控制平面服务器和联系人之间的 网络连接畅通。具体来说,如果使用电子邮件类型的联系人,用户需要在“组织”菜单下预先配置 SMTP 服务器,以确保可以发送电子邮件。
用例
数据平面节点健康状况
当健康网关实例的数量低于指定阈值(例如 3)时,表明提供外部服务的 API 网关节点可能发生故障。这是一个高优先级事件,需要通过 Webhook 发送 Slack 告警,并向一组指定的电子邮件地址发送告警。
5xx 响应代码比率
如果具有 5xx 响应代码的 API 请求比例超过指定比率(例如 0.2%),则表明 API 网关或上游服务可能遇到了故障。这需要及时关注,并应通过使用 Webhook 配置的 SMS 向运维工程师发送告警。
SSL 证书到期
假设网站的 SSL 证书即将在于一定期限内(例如 30 天)到期。这表明需要轮换 SSL 证书,这不是一项紧急任务。可以通过 Webhook 为运维工程师触发创建一个 Jira 任务。