通知管理

目录

功能概述

通过通知功能,您可以集成平台的监控和告警功能,及时向通知接收人发送预警信息,提醒相关人员采取必要措施解决问题或避免故障。

主要功能

  • 通知服务器:通知服务器为平台上的通知联系人组提供发送通知消息的服务,例如邮件服务器。
  • 通知联系人组:通知联系人组是一组具有相似逻辑特征的通知接收人,通过对接收通知消息的实体进行分类,可以减少您的维护负担。
  • 通知模板:通知模板是由自定义内容、内容变量和内容格式参数组成的标准化结构,用于规范通知策略的告警通知消息的内容和格式。例如,自定义邮件通知的主题和内容。
  • 通知规则:通知规则是一组定义如何向特定联系人发送通知消息的规则。对于需要通知外部服务的场景,如告警、巡检和登录认证,必须使用通知规则。

通知服务器

通知服务器为平台上的接收人提供发送通知消息的服务。平台目前支持以下通知服务器:

  • 企业通信工具服务器:支持集成微信企业号、钉钉和飞书内置应用,向个人发送通知。
  • 邮件服务器:通过邮件服务器发送邮件通知。
  • Webhook 类型服务器:支持集成企业微信群机器人、钉钉群机器人、飞书群机器人,或向您指定的服务器发送 WebHook。
WARNING

仅能添加一个企业通信工具服务器。

企业通信工具服务器

微信企业号

  1. 按照以下示例配置通知服务器参数。填写参数后,切换至 集群管理 > 资源管理 中的 global 集群,创建资源对象。

    # 微信企业号 corpId、corpSecret、agentId 获取方式参考官方文档:https://developer.work.weixin.qq.com/document/path/90665
    apiVersion: v1
    kind: Secret
    type: NotificationServer
    metadata:
      labels:
        cpaas.io/notification.server.type: CorpWeChat
        cpaas.io/notification.server.category: Corp
      name: platform-corp-wechat-server
      namespace: cpaas-system
    data:
      displayNameZh: 企业微信            # 服务器中文显示名称,默认 base64 编码
      displayNameEn: WeChat             # 服务器英文显示名称,默认 base64 编码
      corpId:                           # 企业 ID,默认 base64 编码
      corpSecret:                       # 应用密钥,默认 base64 编码
      agentId:                          # 企业应用 ID,默认 base64 编码
  2. 创建完成后,需在平台的 用户角色管理 > 用户管理 或用户的 个人信息 中更新用户的 微信企业号 ID,确保用户能正常接收消息。

钉钉

  1. 按照以下示例配置通知服务器参数。填写参数后,切换至 集群管理 > 资源管理 中的 global 集群,创建资源对象。

    # 钉钉 appKey、appSecret、agentId 获取方式:https://open-dev.dingtalk.com/fe/app#/corp/app
    apiVersion: v1
    kind: Secret
    type: NotificationServer
    metadata:
      labels:
        cpaas.io/notification.server.type: CorpDingTalk
        cpaas.io/notification.server.category: Corp
      name: platform-corp-dingtalk-server
      namespace: cpaas-system
    data:
      displayNameZh: 钉钉                # 服务器中文显示名称,默认 base64 编码
      displayNameEn: DingTalk           # 服务器英文显示名称,默认 base64 编码
      appKey:                           # 应用 key,默认 base64 编码
      appSecret:                        # 应用密钥,默认 base64 编码
      agentId:                          # 应用 agent_id,默认 base64 编码
  2. 创建完成后,需在平台的 用户角色管理 > 用户管理 或用户的 个人信息 中更新用户的 钉钉 ID,确保用户能正常接收消息。

飞书

  1. 按照以下示例配置通知服务器参数。填写参数后,切换至 集群管理 > 资源管理 中的 global 集群,创建资源对象。

    # 飞书 appId、appSecret 获取方式:https://open.feishu.cn/app/
    apiVersion: v1
    kind: Secret
    type: NotificationServer
    metadata:
      labels:
        cpaas.io/notification.server.type: CorpFeishu
        cpaas.io/notification.server.category: Corp
      name: platform-corp-feishu-server
      namespace: cpaas-system
    data:
      displayNameZh: 飞书                 # 服务器中文显示名称,默认 base64 编码
      displayNameEn: Feishu             # 服务器英文显示名称,默认 base64 编码
      appId:                            # 应用 ID,默认 base64 编码
      appSecret:                        # 应用密钥,默认 base64 编码
  2. 创建完成后,需在平台的 用户角色管理 > 用户管理 或用户的 个人信息 中更新用户的 飞书 ID,确保用户能正常接收消息。

邮件服务器

  1. 在左侧导航栏点击 平台设置 > 通知服务器

  2. 点击 立即配置

  3. 参考以下说明配置相关参数。

    参数说明
    服务地址支持 SMTP 协议的通知服务器地址,例如 smtp.yeah.net
    端口通知服务器端口号。勾选 使用 SSL 时,需填写 SSL 端口号。
    服务器配置使用 SSL:安全套接字层(SSL)是一种标准的安全技术。SSL 开关用于控制是否在服务器和客户端之间建立加密连接。
    跳过不安全验证:insecureSkipVerify 开关用于控制是否验证客户端证书和服务器主机名。启用后,将不验证证书及证书中主机名与服务器主机名的一致性。
    发件邮箱通知服务器中的发件邮箱账号,用于发送通知邮件。
    启用认证如果需要认证,请配置邮件服务器的用户名和授权码。
  4. 点击 确定

Webhook 类型服务器

支持集成企业微信群机器人、钉钉群机器人、飞书群机器人,或向您指定的 Webhook 服务器发送 HTTP 请求。

企业微信群机器人

  1. 在左侧导航栏点击 集群管理 > 集群

  2. 点击 global 集群旁的操作按钮 > CLI 工具

  3. global 集群的主节点执行以下命令:

    kubectl patch secret -n cpaas-system platform-wechat-server -p '{"data":{"enable":"dHJ1ZQo="}}'

    提示dHJ1ZQo= 是 true 的 base64 编码;若要禁用,将 dHJ1ZQo= 替换为 ZmFsc2UK,即 false 的 base64 编码。

钉钉群机器人

  1. 在左侧导航栏点击 集群管理 > 集群

  2. 点击 global 集群旁的操作按钮 > CLI 工具

  3. global 集群的主节点执行以下命令:

    kubectl patch secret -n cpaas-system platform-dingtalk-server -p '{"data":{"enable":"dHJ1ZQo="}}'

    提示dHJ1ZQo= 是 true 的 base64 编码;若要禁用,将 dHJ1ZQo= 替换为 ZmFsc2UK,即 false 的 base64 编码。

飞书群机器人

  1. 在左侧导航栏点击 集群管理 > 集群

  2. 点击 global 集群旁的操作按钮 > CLI 工具

  3. global 集群的主节点执行以下命令:

    kubectl patch secret -n cpaas-system platform-feishu-server -p '{"data":{"enable":"dHJ1ZQo="}}'

    提示dHJ1ZQo= 是 true 的 base64 编码;若要禁用,将 dHJ1ZQo= 替换为 ZmFsc2UK,即 false 的 base64 编码。

Webhook 服务器

  1. 在左侧导航栏点击 集群管理 > 集群

  2. 点击 global 集群旁的操作按钮 > CLI 工具

  3. global 集群的主节点执行以下命令:

    kubectl patch secret -n cpaas-system platform-webhook-server -p '{"data":{"enable":"dHJ1ZQo="}}'

    提示dHJ1ZQo= 是 true 的 base64 编码;若要禁用,将 dHJ1ZQo= 替换为 ZmFsc2UK,即 false 的 base64 编码。

通知联系人组

通知联系人组是一组具有相似逻辑特征的通知接收人。例如,您可以将运维团队设置为通知联系人组,便于在配置通知策略时选择和管理。

INFO
  1. 平台支持多种通知服务器,通知类型对应的配置选项会根据通知服务器配置进行展示。
  2. 如果需要使用 Webhook 类型服务器作为通知接收人,必须在通知联系人组中配置相关 URL。
  1. 在左侧导航栏点击 运维中心 > 通知

  2. 切换到 通知联系人组 标签页。

  3. 点击 创建通知联系人组,并根据以下说明配置相关参数。

    参数说明
    邮箱为整个通知联系人组添加一个邮箱,平台会向该邮箱及组内所有联系人的邮箱发送通知。
    Webhook URL/微信企业号群机器人/钉钉群机器人/飞书群机器人请根据已配置的通知服务器填写对应的通知方式 URL,配置后该组内联系人将通过此方式接收通知。
    联系人配置点击 添加联系人,将已有平台用户添加至联系人组。请确保所选联系人的联系方式(电话、邮箱、接口回调)准确无误,避免消息通知遗漏。
  4. 点击 添加

通知模板

通知模板是由自定义内容、内容变量和内容格式参数组成的标准化结构,用于规范通知策略的告警通知消息的内容和格式。

平台管理员或运维人员可以设置通知模板,根据不同的告警通知方式自定义通知消息的内容和格式,帮助用户快速获取关键告警信息,提高运维效率。

INFO

平台支持多种通知服务器,通知类型对应的通知模板会根据通知服务器配置进行展示。若未配置通知服务器,默认不显示对应的通知模板。

创建通知模板

  1. 在左侧导航栏点击 运维中心 > 通知

  2. 切换到 通知模板 标签页。

  3. 点击 创建通知模板

  4. 基本信息 部分,配置以下参数。

    参数说明
    消息类型根据通知目的选择消息类型。
    告警消息:发送由告警规则触发的告警消息,配合平台告警功能使用;
    组件异常消息:发送由某些组件异常触发的通知信息。
  5. 模板配置 部分,参考不同模板类型配置变量和内容格式参数。

INFO
  1. 模板内容只能由变量、变量显示名以及平台支持的特殊格式标记语言组成。变量和其他元素可自由组合,只要符合语法规则。
  2. 模板中只能使用平台支持的变量。您可以修改变量的显示名和内容格式,但不能修改变量本身。参考 参考变量邮件中的特殊格式标记语言
  3. 平台基于实际运维场景提供了多种通知类型的默认通知模板内容,满足大多数通知消息设置需求。如无特殊需求,可直接使用默认模板内容。
  1. 点击 创建

参考变量

变量是通知消息(NotificationMessage)中标签或注解的键,格式为 {{.labelKey}}。为方便用户快速获取关键信息,可为变量指定自定义显示名;例如:告警级别: {{ .externalLabels.severity }}

当通知规则基于通知模板向用户发送通知消息时,模板中的变量会引用通知消息中对应标签的值(实际监控数据),最终以标准化内容格式发送监控数据给用户。

平台默认提供以下基础变量:

显示名变量说明
告警状态{{ .externalLabels.status }}例如:告警中。
告警级别{{ .externalLabels.severity }}例如:严重。
告警集群{{ .labels.alert_cluster }}例如:发生告警的集群 1。
告警对象{{ .externalLabels.object }}告警发生的资源类型及名称,例如节点 192.168.16.53。
规则名称{{ .labels.alert_resource }}告警规则名称,例如 cpaas-node-rules。
告警描述{{ .externalLabels.summary }}告警规则描述。
触发值{{ .externalLabels.currentValue }}触发告警的监控值。
告警时间{{ dateFormatWithZone .startsAt "2006-01-02 15:04:05" "Asia/Chongqing" }}告警开始时间。
恢复时间{{ dateFormatWithZone .endsAt "2006-01-02 15:04:05" "Asia/Chongqing" }}告警结束时间。
指标名称{{ .labels.alert_indicator }}监控指标名称。

邮件中的特殊格式标记语言

邮件通知中常用的 HTML 格式标签及说明如下表:

内容元素标签说明
文本-支持输入中英文文本内容。
字体<font color="#FF0000">设置字体颜色</font>
<b>加粗字体</b>
设置字体格式。
标题<h1>一级标题</h1>,支持至 h6(标题 6)。设置标题级别。
段落<p>段落</p>插入普通段落文本。
引用<q>引用</q>插入简短引用内容。
超链接<a href="//www.example.com">超链接</a>插入超链接。

通知规则

通知规则是一组定义如何向特定联系人发送通知消息的规则。对于需要通知外部服务的场景,如告警、巡检和登录认证,必须使用通知策略。

INFO

平台支持多种通知服务器,通知类型对应的通知模式会根据通知服务器配置进行展示。若未配置通知服务器,默认不显示对应的通知模式。

前提条件

使用 企业通信工具服务器 通知联系人前,用户需先在 个人信息 中修改联系方式,填写 微信企业号 ID

操作流程

  1. 在左侧导航栏点击 运维中心 > 通知

  2. 点击 创建通知规则,并根据以下说明配置相关参数。

    参数说明
    通知联系人组通知联系人组是一组逻辑上的通知接收人,平台将使用指定的通知方式通知该组。
    通知接收人选择添加一个或多个通知接收人,平台将根据接收人的 个人信息 中的联系方式发送通知。
    通知方式支持多种方式,包括 微信企业号钉钉飞书企业微信群机器人钉钉群机器人飞书群机器人WebHook URL,支持多选。
    注意:部分参数需配置通知服务器后才会显示。
    通知模板选择通知模板以展示通知信息。
  3. 点击 创建

为项目设置通知规则

平台的通知策略、通知模板和通知联系人组均为租户隔离。作为项目管理员,您无法查看或使用其他项目或平台管理员配置的通知策略、通知模板或通知联系人组。因此,您需要参考本文档为您的项目配置合适的通知策略。

前提条件

  1. 您已联系平台管理员完成通知服务器的搭建。

  2. 若需通过企业通信工具通知,还需确保被通知联系人已在 个人信息 中正确配置通信工具 ID。

操作流程

  1. 项目管理 视图中,点击 项目名称

  2. 在左侧导航栏点击 通知

  3. 切换到 通知联系人组 标签页,参考 通知联系人组 创建通知联系人组。

TIP

如果不需要通过通知联系人组管理通知联系人,或不需要通知 webhook 类型通知服务器,可跳过此步骤。

  1. 切换到 通知模板 标签页,参考 通知模板 创建通知模板。

  2. 切换到 通知规则 标签页,参考 通知规则 创建通知规则。