对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

与 Webhook 集成

您可以配置Atlas ,以将警报通知作为HTTP POST 请求发送到 Webhook 端点,以进行编程处理。 Webhook 允许您将Atlas警报与自定义监控系统、事件管理平台或自动化工作流程集成。

要将 Atlas 与 Webhook 集成,您必须具有该项目的 Organization Owner 或 Project Owner 访问权限。

1
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

  3. 在侧边栏中,单击 图标 Project Overview 旁边的图标。

显示项目设置页面。

2

单击 Integrations 标签页。

显示“项目集成”页面。

3
4

在 Webhook URL 字段中,输入 Atlas 应发送警报通知的终结点 URL。

5

在 Webhook Secret 字段中,输入秘钥。Atlas 使用此秘密为请求验证生成 X-MMS-Signature 头。

6

您可以使用 FreeMarker 模板自定义请求头和主体内容:

  1. 在 Webhook Headers Template字段中,输入 FreeMarker 模板以自定义通过 Webhook 请求发送的HTTP 头部。

  2. 在 Webhook Body Template 字段中,输入 FreeMarker 模板以自定义请求主体结构。

如果配置模板,然后查看或编辑 webhook 集成,则模板会显示为编辑版本,并且其内容会被 ****** 替换。您可以使用新值覆盖编辑版本模板。

保存配置时,Atlas 会验证 FreeMarker 语法。如果模板包含无效语法,则表单会显示内联验证错误。

7

要将警报发送到 Webhook,请配置警报通知。要了解更多信息,请参阅配置警报设置。

Atlas在每个 Webhook请求中包含以下HTTP 头部:

标头
说明

X-MMS-Event

表示警报状态。可能的值:

  • alert.open: Atlas 刚打开警报。

  • alert.close: Atlas 已解决警报。

  • alert.update:先前打开的警报仍处于打开状态。

  • alert.acknowledge: 用户确认了警报。

  • alert.cancel: 警报失效;Atlas 已取消该警报。

  • alert.inform: 表示信息警报,即时间点事件,例如“主节点当选”。

X-MMS-Signature

(可选)如果您在 Webhook Secret字段中指定密钥,Atlas会包含此标头。包含请求正文的 Base64-encoded HMAC -SHA-1 签名。 Atlas使用提供的密钥创建签名。使用此标头验证 Webhook请求是否源自Atlas。

请求正文包含一个JSON 文档,其格式与Atlas Administration API警报资源相同。有效负载包括以下关键字段:

  • id: 警报的唯一标识符。

  • eventTypeName: 触发警报的事件类型。

  • created: 创建警报的时间戳。

  • status: 警报的当前状态(例如 OPEN、CLOSED)。

  • severity:警报的严重性。 Atlas在警报打开时设置此值。要学习;了解Atlas如何确定严重性,请参阅严重性级别。

  • humanReadable: 人类可读的警报说明。此字段包含项目名称和组织名称,格式为 "项目:[项目名称] 组织:[组织名称]",以及其他警报详情。

有关字段的完整列表,请参阅 Atlas Administration API 获取所有项目警报文档。

返回所有项目警报和返回一个警报端点还会返回每个警报的已解析 severity。此值与Atlas在 Webhook、PagerDuty 和 Opsgenie 通知有效负载中包含的严重性相匹配。

以下示例显示了磁盘空间警报的示例 Webhook 负载:

{
"id": "5d1b6f8e8c2e4e2d3c4a5b6c",
"groupId": "5d1b6f8e8c2e4e2d3c4a5b6d",
"eventTypeName": "OUTSIDE_METRIC_THRESHOLD",
"status": "OPEN",
"created": "2024-01-15T10:30:00Z",
"updated": "2024-01-15T10:30:00Z",
"lastNotified": "2024-01-15T10:30:00Z",
"humanReadable": "Disk space used on data partition is 95.2%.
Project: MyProject Organization: MyOrganization",
"metricName": "DISK_PARTITION_SPACE_USED_DATA",
"currentValue": {
"number": 95.2,
"units": "RAW"
}
}

Webhook Secret 字段存储 Atlas 专门用于生成 X-MMS-Signature 请求验证头的秘密。Atlas 不会将秘密直接作为身份验证头或 Bearer token 发送。

如果您的 Webhook 终结点需要身份验证,则必须使用以下方法之一独立处理:

  • 查询参数:在 Webhook URL 中包含身份验证凭证作为查询参数。示例:https://example.com/webhook?token=your-auth-token

  • IP 访问列表:将 Webhook 终结点配置为仅接受来自 Atlas IP 地址的请求。此配置可确保仅 Atlas 可向终结点发送请求。

  • 反向代理或 API 网关:使用反向代理或 API 网关,在将请求转发到 Webhook 终结点之前处理身份验证。

要验证 webhook 请求来自 Atlas,请验证 X-MMS-Signature 头部:

1
2
3

如果它们匹配,则请求是真实的。

使用 Webhook 集成时,请考虑以下限制:

Atlas 不提供手动 trigger 测试警报的方法。要测试您的 webhook 终结点,您可以临时设置一个条件容易 trigger 的警报,例如:

  • 测试集群上的磁盘空间阈值较低。

  • 可以通过打开多个连接来 trigger 的连接计数阈值。

  • 测试副本集上的复制延迟阈值。

确认网络钩正确接收警报后,您可以删除测试警报配置。

如果防火墙要求您配置 IP 访问列表,请允许从 Atlas IP 地址进行访问,以便 Atlas 可以与您的 webhook 终结点通信。

如果您的 Webhook 未收到警报:

1
2
3

Atlas 将其他状态代码视为失败。

4
5
给本页内容打分