---
title: "查看告警通道配置示例 - 云平台 OCP V4.3.2 | OceanBase 文档中心"
description: 查看告警通道配置示例 本文档为您列举常见的告警通道配置示例，供您参考。 钉钉通道 可以基于钉钉群机器人的 Webhook 实现群消息发送，配置钉钉告警通道需要进行两部分操作： 在接收告警的钉钉群配置机器人。 在 OCP 中配置钉钉通道信息。 配置钉钉群机器人 在 PC 端打开需要接收告警通知的钉钉群。 单击上方菜单栏…
---
切换语言

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

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

# 查看告警通道配置示例

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

[编辑](https://github.com/oceanbase/ocp-doc/edit/V4.3.2/zh-CN/860.alert-management/500.manage-alert-channels/600.examples-of-alert-channel-configuration.md)  

本文档为您列举常见的告警通道配置示例，供您参考。

## 钉钉通道

可以基于钉钉群机器人的 Webhook 实现群消息发送，配置钉钉告警通道需要进行两部分操作：

- 在接收告警的钉钉群配置机器人。
 - 在 OCP 中配置钉钉通道信息。

### 配置钉钉群机器人

1. 在 PC 端打开需要接收告警通知的钉钉群。
 2. 单击上方菜单栏的 **群设置** 按钮。
 3. 在弹出的面板中单击 **智能群助手 > 添加机器人**。
 4. 在 **群机器人** 弹窗中单击 ![1](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/ocp/401/%E8%AE%BE%E7%BD%AE%E5%9B%BE%E6%A0%871.png)，选择要添加的机器人。
 5. 单击 **自定义** 机器人，在 **机器人详情** 弹窗中单击 **添加**。
 6. 设置机器人信息，包括 **机器人名字** 及 **安全设置**。

   安全设置包括三种模式：**自定义关键词**、**加签** 及 **IP 地址段**。您可参考 [自定义机器人安全设置](https://open.dingtalk.com/document/robots/customize-robot-security-settings) 根据所需选择一种进行配置，此处以 **自定义关键词** 为例。

   ![1](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/ocp/401/%E6%B7%BB%E5%8A%A0%E6%9C%BA%E5%99%A8%E4%BA%BA1.png)
 7. 勾选 **我已阅读并同意 《自定义机器人服务及免责条款》**，单击 **完成**。
 8. 在 **添加机器人** 对话框中复制生成的机器人 Webhook 地址，单击 **完成**。

### 配置钉钉通道信息

1. 登录 OCP。
 2. 在左侧导航栏中单击 **告警中心** 。
 3. 单击 **告警通道** 页签。
 4. 在告警通道页签中，单击 **新建通道** 。
 5. 配置通道 **基本信息**。

   | 参数 | 说明 |
   | --- | --- |
   | 通道类型 | 选择 **钉钉**。 |
   | 通道名 | 告警通道的名称， |
   | Webhook 地址 | 配置钉钉机器人后生成的 Webhook 地址，即 **配置钉钉群机器人** 中 **步骤 8** 复制的地址。 |
   | 签名密钥 | 可选填。在钉钉机器人安全设置时，选择 **加签** 模式后所获取的签名密钥字符串。 |
   | 指定用户 | 可选填。钉钉群成员的手机号码。 |
   | 代理 | 可选填。请填写发送告警信息的代理，格式为 `http:ip:port` 。其中：ip 为代理服务器的 IP，port 为发送告警使用的端口。 若代理服务器的 IP 为 xxx.xxx.xxx.xxx，规划使用 80 端口发送告警消息，则可配置为 `http:xxx.xxx.xxx.xxx:80` 。   #### 说明    仅 HTTP 通道需要配置代理。 |

   ![2](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/ocp/401/%E9%92%89%E9%92%89%E9%80%9A%E9%81%93%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF1.png)
 6. 单击 **发送测试消息**，测试告警是否发送成功。
 7. 如果发送成功，可单击 **提交**。

## 自定义脚本通道

自定义脚本通道，是为了满足特殊的告警对接场景而设计的。一般用于无法通过 HTTP 的方式配置或者对告警格式有特殊要求的场景，您可以在脚本中定制一些特殊的逻辑。比如：告警时间的转换，对第三方告警网关默认参数的添加等，均可以通过自定义脚本通道来实现。

- 基本信息：通道类型选择自定义脚本，其他选项根据具体需求进行选择。
 - 通道配置：

     - 脚本内容：参考 [OCP 告警模板标签](https://www.oceanbase.com/docs/common-ocp-1000000001405853) 在脚本内以标签的方式引用。
     - Response 校验信息：用于防止告警脚本编写不规范或 API 响应不规范（发送失败仍返回 200 响应码）导致用户收不到告警、漏发告警等问题。要求告警脚本里输出有且仅有一次有效信息（可以是 API 响应码，也可以是 API 响应体），OCP 来校验信息是否匹配。支持正则匹配、json 键值对匹配。如果校验字段与 API 返回内容不匹配，OCP 会判定发送告警失败，会重试发送：可能用户已经收到了消息，仅仅是接口判定为失败，则用户可能会受到多次告警。校验规则如下：

           - 如果返回结果是 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 格式，会导致系统误判。
 - 告警消息模板：

  ```javascript
  OCP 告警通知-单条告警
  - 名称：${alarm_name}
  - 级别：${alarm_level}
  - 告警对象：${alarm_target}
  - 概述：${alarm_summary}
  - 生成时间：${alarm_active_at}
  - 详情：${alarm_description}
  - OCP链接：${alarm_url}

  ```
 - 告警恢复消息模板：

  ```javascript
  OCP 告警恢复通知 ${alarm_name}
  - 告警对象：${alarm_target}
  - 告警详情：${alarm_description}
  - 恢复时间：${alarm_resolved_at}

  ```
 - 告警消息聚合模板：

  ```javascript
  OCP 告警通知-多条告警
  - 名称：${alarm_name}
  - 级别：${alarm_level}
  - 告警数量：${alarm_count}
  - 聚合分组：${alarm_group_by}
  - 告警对象：${alarm_target}
  - 生成时间：${alarm_active_at}

  ```
 - 脚本文件名：系统默认有一个自定义脚本样例 `alarm_send_script_demo.sh`，您可以在其基础上进行修改，也可以参考 **Python 脚本示例** 和 **Bash 脚本示例** 新增自定义的脚本。在修改或新增文件时，请确保该脚本文件已存放在每个 OCP 的 `/home/admin` 目录下。
 - 发送测试消息：调试脚本时，可以使用发送测试消息来测试，默认消息内容使用脚本中的变量 `${message}`，请确保该变量在发送的消息体中。由于自定义脚本发送成功的判断逻辑需要视具体情况而定，系统认为只要脚本执行成功，即代表发送成功。不过，在浏览器的开发者模式中，用户可以根据发送测试消息对应的 _test 请求的 Response 内容进行调试。

  ![1738](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/4995987361/p358660.png)

### Python 脚本示例

```python
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 注意：脚本内容第一行必须是 shebang 指定执行的程序，只支持 python 和 bash

import json
import requests
import os
import sys

ACCESS_TOKEN = "Ding Talk Token"

def send_alarm():
    """
    可以通过 os.environ 从环境变量获取告警相关的变量值。
    支持的变量列表参见 《OCP 告警模板变量》。
    """
    message = os.environ['message']
    data = {
        "msgtype": "markdown",
        "markdown": {
            "text": message
        }
    }
    resp = requests.post("https://oapi.dingtalk.com/robot/send?access_token=" + ACCESS_TOKEN, json=data)
    resp.close()
    response = json.loads(resp.text)

    # 将返回结果输入到标准错误（stderr）或标准输出（stdout），会被用于验证告警是否发送成功，优先验证stderr。
    if not response['errcode'] == 0:
        sys.stderr.write(resp.text)
    else:
        print(resp.text)

def main():
    """
    若发送成功，返回值为 0
    若发送失败，错误输出到 stderr，返回值不为 0
    """
    try:
        send_alarm()
        return 0
    except Exception as e:
        sys.stderr.write(str(e))
        return 1

if __name__ == "__main__":
    sys.exit(main())

```

### Bash 脚本示例

```bash
#!/usr/bin/env bash

# should contains shebang in first line, only python/bash are supported

# this function defines to how to assembly request by yourself according to your requirements
# this demo shows you how to send alarm to ding ding
function send() {
    # this token is ding ding group token, please apply and assign it to variable token
    token='Ding Talk Token'
    URL="https://oapi.dingtalk.com/robot/send?access_token=$token"

    # if message is json format, use "'"${message}"'" or "${message}", do not wrapper a new json body
    # if message is not json format, use "${message}"
    # do not use '${message}'
    # print the response to stderr or stdout, which will be validated if success, validate stderr firstly.
    curl -s -X POST ${URL} -H 'Content-Type: application/json' -d '{"msgtype":"text","text":{"content":"'"${message}"'"}}'

    return $?
}

# invoke function to
send

```

#### 说明

目前支持的 Shebang 包括 python、bash、sh、/bin/bash、/bin/sh、/usr/bin/python、/usr/bin/bash、/usr/bin/env python 和 /usr/bin/env。 bashShebang 的正确写法为 `#!/bin/sh`，推荐使用 `#!/usr/bin/env bash` 这种写法，执行时会去 $PATH 中找第一个符合的命令来执行。

  上一篇 下一篇 ![有帮助](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) 咨询热线
