---
title: "通过 HTTP 方式自定义告警推送 - 云平台 OCP V4.3.2 | OceanBase 文档中心"
description: 通过 HTTP 方式自定义告警推送 如果您的系统已经有成熟的告警管理功能，可以提供 HTTP API 来对接 OCP 告警。 应用场景 常用的两个场景： 各个云平台提供的告警机器人，如钉钉机器人、飞书机器人等，这些机器人都提供发送自定义消息，提供了Webhook（API）。按照所要求的消息格式请求 API 即可发送告…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*lJTmRZ61jSUAAAAAAAAAAAAADiGDAQ/original) 云平台 OCPV 4.3.2

# 通过 HTTP 方式自定义告警推送

更新时间：2026-04-14 15:15:54

[编辑](https://github.com/oceanbase/ocp-doc/edit/V4.3.2/zh-CN/1850.ocp-om-best-practices/2100.customize-alarm-push-through-https.md)  

如果您的系统已经有成熟的告警管理功能，可以提供 HTTP API 来对接 OCP 告警。

## 应用场景

常用的两个场景：

1. 各个云平台提供的告警机器人，如钉钉机器人、飞书机器人等，这些机器人都提供发送自定义消息，提供了Webhook（API）。按照所要求的消息格式请求 API 即可发送告警消息。
 2. 由用户侧提供告警接口，一般不需要对接口加签名、增加特殊字段（如当前时间戳）等，推送固定格式的消息到 API 即可发送告警消息。

## 前提条件

需要您提供明确的 API 用于接受告警消息，可以写出一个简单的命令来测试该接口，具体的请求内容需结合实际情况：

```shell
curl -XPOST '客户提供的API接口' \
 -H 'Content-Type:application/json; charset=utf-8' \
 --data '{"message":"告警测试消息"}' \
 --compressed \
 --insecure

```

若 API 有鉴权，如 Basic Auth 鉴权，可以在 Header 中加上鉴权信息：`-H'Authorization: Basic xxxx'`

## 技术原理

HTTP API 告警通道对应的是发送 HTTP 请求，请求字段包括（以钉钉为例）：

- API 地址：钉钉的 Webhook 地址。
 - 请求方法：POST，大部分接收告警的接口为 POST 接口。
 - Header：HTTP 请求的 Header 部分，常见的如 `Content-Type:application/json; charset=utf-8`，`Authorization: Basic xxxx` 等。
 - 请求 Body：请求参数，需要客户提供 API 的具体格式，需要传入哪些字段，各个字段的含义，是否允许为空（如果不能为空且没有对应字段，需填写默认字段）。以钉钉为例，Body 为：`{"msgtype": "markdown","markdown": {"content":"${message}","title":"${alarm_name}"}}`。
 - 代理：如果 API 为公网地址且内网与公网不通，需要设置网络代理，告警消息先发送到代理，代理再转发到 API，例如钉钉 API。

## 注意事项

1. 确保 API 无需复杂的请求参数，如加签名，带上当前时间戳等特殊需求；
 2. API 须返回必要的响应内容，如 success（非 json 消息），{"err_code":0,"message":"success"}（json 消息）。这样方便 OCP 判断消息发送成功（参考常见问题配置 Respon 校验信息）。

## 操作步骤

1. 在左侧导航栏中，单击 **监控告警** > **告警**。
 2. 在告警详情页中，单击 **告警通道**。

   ![1](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/ocp/421/%E9%85%8D%E7%BD%AE%E9%92%89%E9%92%89%E5%91%8A%E8%AD%A6-1.png)
 3. 然后在告警通道页签下，单击 **新建通道**。
 4. 配置 HTTP 告警通道。以钉钉为例（以下输入为示例，请根据实际情况填写信息），需要输入以下信息：

      1. 基本配置。

        ![2](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/ocp/421/%E9%85%8D%E7%BD%AEHTTP%E5%91%8A%E8%AD%A6-1.png)

        | 选择项 | 是否必选 | 描述 |
        | --- | --- | --- |
        | 通道类型 | 是 | 下拉选择 HTTP。 |
        | 通道名 | 是 | 自定义通道名称，方便后续识别。 |
        | 接收人字段 | 是 | 选择 **用户ID**。 |
      2. 通道配置。

        ![3](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/ocp/421/%E9%85%8D%E7%BD%AEHTTP%E5%91%8A%E8%AD%A6-2.png)

        | 选择项 | 是否必选 | 描述 |
        | --- | --- | --- |
        | 代理 | 否 | 若网络可以访问钉钉 API，则无需设置代理。 |
        | 请求方法 | 是 | POST。 |
        | URL 模板 | 是 | 填写钉钉的 Webhook 地址。 |
        | Header 模板 | 是 | `Content-Type:application/json; charset=utf-8`，不同 Header 以回车换行来区分。 |
        | Body 模板 | 是 | `{"msgtype": "text","text": {"content":"${message}"}}` |
        | Response 校验信息 | 是 | `{"errcode":0,"errmsg":"ok"}` |
      3. 消息配置。

        ![4](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/ocp/421/%E9%85%8D%E7%BD%AEHTTP%E5%91%8A%E8%AD%A6-3.png)

        消息结构可以更改，设置 **消息格式** 为 `markdown`，可通过输入 `${}` 引入变量。

        `shell 　### OCP 告警通知 ${alarm_name} 　- 级别：${alarm_level} 　- 告警对象：${alarm_target} 　- 概述：${alarm_summary} 　- 生成时间：${alarm_active_at} 　- 详情：${alarm_description} 　- OCP 链接：${alarm_url} 　`
 5. 其他功能。

   告警消息聚合：可以开启通道聚合功能，避免一段时间内一条告警发送多次。OCP 告警默认 3 分钟（从 4.1.0 版本开始）产生一次告警，开启告警通道聚合之后，相同告警默认 600 秒仅发送一次。
 6. 单击 **提交**，完成配置。

## 常见问题

### Response 校验信息

Q：如何解决 Response 校验信息失败？

A：从 OCP 3.3.0 版本开始，需设置 Response 校验信息。设置 Response 校验信息失败是为了防止告警脚本编写不规范或 API 响应不规范（发送失败仍返回 200 响应码）导致用户收不到告警、漏发告警等问题。要求告警脚本里输出有且仅有一次有效信息（可以是 API 响应码，也可以是 API 响应体），OCP 来校验信息是否匹配。支持正则匹配、json 键值对匹配。如果校验字段与 API 返回内容不匹配，OCP 会判定发送告警失败，会重试发送：可能用户已经收到了消息，仅仅是接口判定为失败，则用户可能会受到多次告警。校验规则如下：

#### 说明

请注意这些仅是示例，具体配置成什么要根据 API 响应结果而定，切忌直接复制粘贴。

- 如果返回结果是 json 格式，则 Response 校验信息也需配置为 json 字符串（默认是{}）, 匹配两者是否相等：API 返回内容需包含 Response 校验信息中所有 key-value 内容。例如 API 返回 `{"成功的标志1":"成功","错误码":0,"当前时间戳":"2023-09-12T10:00:00+8:00"}`，则 Response 校验信息可以配置为以下配置中的任意一个：`{"成功的标志1":"成功","错误码":0}`、`{"成功的标志1":"成功"}`、`{"错误码":0}`。
 - 如果返回结果不是 json，则 Response 校验信息应与返回结果相同，如 API 响应结果为 success，则 Response 校验信息应设置为 success；如果 API 响应结果为`success:2023-09-12T10:00:00+8:00`，则 Response 校验信息应需设置为正则表达式 `success.*`。
 - 判断返回结果是否为 json 目前仅是判断首尾是否是 `{}` 字符来判断的，如果响应结果刚好出现此情况且不是 json 格式，会导致误判。

### 告警接口超时

OCP 发送告警的默认超时时间是 10 秒，如果客户提供的告警接口响应时间超过 10 秒，则会被认为发送失败，会重试发送告警消息。配置参数：

- 发送告警超时参数：`ocp.alarm.send.once-timeout-ms`，默认 10000 毫秒。
 - 发送告警失败，重试次数：`ocp.alarm.send.once-retry-times`，默认 1 次。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
