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

与Cloud Manager中的 Webhook 集成

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

要将Cloud Manager与 Webhook 集成,您必须拥有项目的Project Monitoring Admin访问权限。

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

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

  3. 在侧边栏中,单击 Project Settings。

    显示项目设置页面。

2

在侧边栏中,单击 Settings 标题下的 Integrations。

显示“项目集成”页面。

3
4

在 Webhook URL字段中,输入Cloud Manager应向其发送警报通知的端点URL 。

5

在 Webhook Secret字段中,输入密钥。 Cloud Manager使用此密钥生成 X-MMS-Signature 标头以进行请求验证。

6

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

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

Cloud Manager 添加了一个名为X-MMS-Event的请求标头,以区分各种警报状态。此标头的可能值是:

alert.open

警报刚刚打开。

alert.close

警报已解决。

alert.update

先前打开的警报仍处于打开状态。

alert.acknowledge

警报已得到确认。

alert.cancel

警报无效并被取消。

alert.inform

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

如果您在 Webhook Secret字段中指定键, MongoDB Cloud Manager会添加 X-MMS-Signature请求标头。此标头包含请求正文的 base64-encoded HMAC -SHA-1 签名。 MongoDB Cloud Manager使用提供的密钥创建签名。

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

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

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

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

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

  • humanReadable:人类可读的警报描述。

有关字段的完整列表,请参阅“获取一个警报”端点文档。

以下示例显示了指标阈值警报的示例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%.",
"metricName": "DISK_PARTITION_SPACE_USED_DATA",
"currentValue": {
"number": 95.2,
"units": "RAW"
}
}

您可以通过在 Webhook 通知上设置 webhookHeadersTemplate 和 webhookBodyTemplate 字段来自定义 Webhook 请求头和主体内容。每个模板都支持 ${field} 插值:发送通知时,Cloud Manager 会将每个 ${field} 占位符替换为警报文档中匹配字段的值。

您可以插值警报文档返回的任何字段,例如 ${eventTypeName}、${clusterName}、${status} 和 ${created}。有关可插值字段的完整列表,请参阅 Get One 警报 终结点的响应字段。

示例,主体模板 {"event": "${eventTypeName}", "cluster": "${clusterName}"} 会在 Cloud Manager 发送请求之前使用其警报值渲染每个占位符。

呈现的正文必须是有效的JSON ,并与 Content-Type: application/json 标头一起发送。呈现的标头必须形成一个JSON对象,该对象将每个标头名称映射到其值。 Cloud Manager不会向模板公开 Webhook 密钥或签名标头,并编辑API响应中的这两个模板字段。

如果模板无法呈现、超过大小限制或生成无效输出, Cloud Manager会改为发送其默认负载和标头,但仍会传递通知。

要在保存警报之前预览渲染的输出,请单击 Post test message to webhook 按钮,该按钮会针对示例警报数据渲染您的模板。

Webhook Secret字段存储Cloud Manager仅用于生成用于请求验证的 X-MMS-Signature 标头的密钥。 Cloud Manager不会直接将密钥作为身份验证标头或不记名令牌发送。

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

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

  • IP访问列表:配置 Webhook 端点以仅接受来自Cloud Manager IP地址的请求。此配置可确保只有Cloud Manager才能向您的端点发送请求。

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

要验证 Webhook请求是否源自Cloud Manager,请验证 X-MMS-Signature 标头:

1
2
3

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

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

Webhook 有效负载不包括您在Cloud Manager中配置的警报严重性级别。要检索配置的严重性,请使用 Webhook 有效负载中的 alertConfigId 对“获取一个警报配置”端点进行额外调用。

Cloud Manager不提供手动触发测试警报的方法。要测试您的 Webhook 端点,您可以使用易于触发的条件临时设立警报,例如:

  • 测试部署的磁盘空间阈值较低。

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

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

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

如果防火墙要求配置IP访问列表,请允许从Cloud Manager IP地址访问权限,以便Cloud Manager可以与 Webhook 端点通信。

如果您的 Webhook 未收到警报:

1
3

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

4
5
给本页内容打分