在 V2.3.0 版本的 OCP 部署完成后,用户需要在 OCP 配置告警通道并完成订阅后,才能通过设置通道接收到告警。
操作步骤
- 登录 OCP。
- 单击左导航栏告警。
- 单击告警通道,操作列可对这些通道进行查看、编辑、删除操作,其中默认通道不可删除且需要经过配置才能使用。
- 单击新建通道。在页面中填写通道名称、接收人字段、通道类型、是否群消息通道等信息。
其中:
- 接收人字段:默认选择 用户 ID;
- 通道类型:如果希望告警消息直接通过钉钉/短信/电话网关等服务发送(需确保 OCP 服务所在网络能发送消息至钉钉/电话网关等外部服务网络),则推荐选择 HTTP 类型。
如果消息无法通过 HTTP 的方式配置或者对告警格式有特殊要求的场景下,可以选择 自定义脚本 类型。
- 自定义脚本:用户可以在脚本中定制一些特殊的格式,例如:告警时间的转换,对第三方的告警网关的默认参数的添加等,均可以通过自定义脚本通道来实现;如下面的脚本中使用告警通道告警模板中代表告警内容的变量message(由下图中聚合消息模板中的内容组合构成),使用变量
${message}
将其代入脚本中,最终实现钉钉发送的需求;实际编写时可根据具体需要,添加并需要重定义的功能变量,例如,告警时间${alarm_active_at}
。 - 自定义脚本示例:
#!/bin/sh
if [ $# != 2 ] ;then
echo "USAGE: ./$0 <receiver> <message>"
exit 255;
fi
receiver=${1}
message=${2}
function send(){
URL="https://oapi.dingtalk.com/robot/send?access_token=da81ac1b0ce542a5a19d19edc92df91232bdde44e92eed9d9e002522d45bb1a1"
curl -X POST ${URL} -H 'Content-Type: application/json' -H 'OCP-OPS: AK' -d '{"msgtype":"text","text":{"content":"'"${message}"'"}}'
}
send
- 是否为群消息通道选项:如果是群消息通道,那么当无人订阅时,系统也会推送通知,默认选是;
- 填写完成单击下一步进入通知内容配置界面。
- 告警消息模板:通常情况下保持默认即可,如有模板定制要求,可在告警消息模板中进行编辑定义。
- 告警消息聚合:建议打开,可以避免在告警时出现告警风暴,规则默认即可,这里的聚合规则可在完成新建后从告警通道进行再编辑。
注意
- 首次聚合等待时间代表消息正式发送前的等待时间,告警消息会等待该时间长度后聚合发送同类告警;
- 消息聚合间隔代表同类告警发出之后,又出现内容不同的同类告警新消息时,则等待该时间长度后聚合发送告警;
- 相同告警重复发送间隔代表在此时间长度后如果内容完全相同的告警仍未消除,则等待该时间长度后发出重复告警。
- 完成填写后单击下一步,进入通道配置界面。
- 请求方法默认选择 POST,代理按需填写;
URL 模板:
默认钉钉群消息为钉钉机器人Webhook连接,获取方式可参考钉钉官方文档:
https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq/26eaddd5
- 短信消息模板默认为:
http://短信服务地址:8080/services/SendMonitorMsg?Action=SendMonitorMsg&type=sms&to_user=${receiver}&content=${message}
电话消息默认默认为:
http://电话服务地址:8080/services/SendMonitorMsg?Action=SendMonitorMsg&type=ivr&to_user=${receiver}&content=${message}
Header 模板:
Content-Type:application/json; charset=utf-8
- Body 模板
{
"msgtype": "text",
"text": {
"content": ${message_json}
}
}
- 完成填写配置后,单击发送测试消息,可以发送测试消息,验证通道配置是否正确。单击提交,完成告警通道新建。
可选择的告警消息样例如下表所示。
参数 | 字段 |
应用类型 | app_type |
告警类型 | alarm_type |
告警对象 | alarm_target |
范围 | alarm_scope |
告警级别 | alarm_level |
告警评估间隔(秒) | alarm_evaluation_interval |
持续时长(秒) | alarm_duration |
告警状态 | alarm_status |
告警触发时间 | alarm_active_at |
告警消除时间 | alarm_resolved_at |
持续时长(秒) | alarm_last_interval |
告警名称 | alarm_name |
指标值 | value |
告警阈值 | alarm_threshold |
告警更新时间 | alarm_updated_at |
告警概述 | alarm_summary |
告警详情 | alarm_description |
告警等级对应的颜色 | alarm_level_color |
告警 ID | alarm_id |
告警在 OCP 站点的访问 URL | alarm_url |
服务名 | service |
OB 集群组 | ob_cluster_group |
OB 集群 | ob_cluster |
OB 租户 | ob_tenant |
主机 IP | host_ip |
应用集群 | app_cluster |
告警模板中变量的如下表所示。
类别 | 名称 | 描述 |
告警规则 | app_type | 应用类型 |
告警规则 | alarm_type | 告警类型 |
告警规则 | alarm_target | 告警对象 |
告警规则 | alarm_scope | 范围 |
告警规则 | alarm_level | 告警级别 |
告警规则 | alarm_evaluation_interval | 告警评估间隔(秒) |
告警规则 | alarm_duration | 持续时长(秒) |
告警规则 | alarm_status | 告警状态 |
告警规则 | alarm_active_at | 告警触发时间 |
告警规则 | alarm_resolved_at | 告警消除时间 |
告警规则 | alarm_last_interval | 持续时长(秒) |
告警规则 | alarm_name | 告警名称 |
告警规则 | value | 指标值 |
告警规则 | alarm_threshold | 告警阈值 |
告警规则 | alarm_updated_at | 告警更新时间 |
告警规则 | service | 服务名 |
告警规则 | ob_cluster_group | OceanBase 集群组 |
告警规则 | ob_cluster | OceanBase 集群 |
告警规则 | ob_tenant | OceanBase 数据库租户 |
告警规则 | host_ip | 主机IP |
告警规则 | app_cluster | 应用集群 |
通知消息 | app_type | 应用类型 |
通知消息 | alarm_type | 告警类型 |
通知消息 | alarm_target | 告警对象 |
通知消息 | alarm_scope | 范围 |
通知消息 | alarm_level | 告警级别 |
通知消息 | alarm_evaluation_interval | 告警评估间隔(秒) |
通知消息 | alarm_duration | 持续时长(秒) |
通知消息 | alarm_status | 告警状态 |
通知消息 | alarm_active_at | 告警触发时间 |
通知消息 | alarm_resolved_at | 告警消除时间 |
通知消息 | alarm_last_interval | 持续时长(秒) |
通知消息 | alarm_name | 告警名称 |
通知消息 | value | 指标值 |
通知消息 | alarm_threshold | 告警阈值 |
通知消息 | alarm_updated_at | 告警更新时间 |
通知消息 | alarm_summary | 告警概述 |
通知消息 | alarm_description | 告警详情 |
通知消息 | alarm_level_color | 告警等级对应的颜色 |
通知消息 | alarm_id | 告警 ID |
通知消息 | alarm_url | 告警在 OCP 站点的访问 URL |
通知消息 | service | 服务名 |
通知消息 | ob_cluster_group | OceanBase 集群组 |
通知消息 | ob_cluster | OceanBase 集群 |
通知消息 | ob_tenant | OceanBase 数据库租户 |
通知消息 | host_ip | 主机 IP |
通知消息 | app_cluster | 应用集群 |
聚合消息 | app_type | 应用类型 |
聚合消息 | alarm_type | 告警类型 |
聚合消息 | alarm_target | 告警对象 |
聚合消息 | alarm_scope | 范围 |
聚合消息 | alarm_level | 告警级别 |
聚合消息 | alarm_evaluation_interval | 告警评估间隔(秒) |
聚合消息 | alarm_duration | 持续时长(秒) |
聚合消息 | alarm_status | 告警状态 |
聚合消息 | alarm_active_at | 告警触发时间 |
聚合消息 | alarm_resolved_at | 告警消除时间 |
聚合消息 | alarm_last_interval | 持续时长(秒) |
聚合消息 | alarm_name | 告警名称 |
聚合消息 | value | 指标值 |
聚合消息 | alarm_threshold | 告警阈值 |
聚合消息 | alarm_updated_at | 告警更新时间 |
聚合消息 | alarm_summary | 告警概述 |
聚合消息 | alarm_description | 告警详情 |
聚合消息 | alarm_level_color | 告警等级对应的颜色 |
聚合消息 | alarm_id | 告警 ID |
聚合消息 | service | 服务名 |
聚合消息 | ob_cluster_group | OceanBase 集群组 |
聚合消息 | ob_cluster | OceanBase 集群 |
聚合消息 | ob_tenant | OceanBase 租户 |
聚合消息 | host_ip | 主机IP |
聚合消息 | app_cluster | 应用集群 |
聚合消息 | alarm_group_by | 告警聚合分组 |
聚合消息 | alarm_count | 告警数量 |
通道配置 | app_type | 应用类型 |
通道配置 | alarm_type | 告警类型 |
通道配置 | alarm_target | 告警对象 |
通道配置 | alarm_scope | 范围 |
通道配置 | alarm_level | 告警级别 |
通道配置 | alarm_name | 告警名称 |
通道配置 | alarm_summary | 告警概述 |
通道配置 | alarm_description | 告警详情 |
通道配置 | service | 服务名 |
通道配置 | ob_cluster_group | OceanBase 集群组 |
通道配置 | ob_cluster | OceanBase 集群 |
通道配置 | ob_tenant | OceanBase 数据库租户 |
通道配置 | host_ip | 主机 IP |
通道配置 | app_cluster | 应用集群 |
通道配置 | message | 消息(由消息模板或聚合消息模板生成) |
通道配置 | message_json | 消息 json 字符串(message 值的 json 格式) |
通道配置 | recipients_uids | 接收人用户 ID 列表,逗号分隔形式 |
通道配置 | at_recipients | @接收人列表的值 |
通道配置 | recipients_json_array | 接收人列表 json 数组,用于钉钉群消息 @接收人 |