通知管理

功能概述

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

主要功能

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

通知服务器

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

  • 企业通信工具服务器:支持集成微信企业号、钉钉和飞书内置应用,向个人发送通知。
  • 邮件服务器:通过邮件服务器发送邮件通知。
  • 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 编码。

配置 Webhook 通知的自定义请求头

如果目标 Webhook 端点需要自定义 HTTP 请求头,请在 cpaas-system 命名空间创建 Secret,后续在通知联系人组中关联该 Secret。

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

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

  3. 在 global 集群的主节点创建类似如下的 YAML 文件。

    apiVersion: v1
    kind: Secret
    metadata:
      name: webhook-header-secret
      namespace: cpaas-system
    type: NotificationSender
    data:
      X-Secret: <base64-encoded-header-value>
  4. 将 YAML 文件保存为 webhook-header.yaml 并应用资源。

    kubectl apply -f webhook-header.yaml
INFO
  1. data 下的每个键作为 HTTP 请求头名称。
  2. data 下的每个值必须先进行 base64 编码后再应用到集群。
  3. 如果端点需要多个请求头,可在 data 下添加更多键值对。

通知联系人组

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

INFO
  1. 平台支持多种通知服务器,通知类型对应的配置选项会根据通知服务器配置进行展示。
  2. 如果需要使用 Webhook 类型服务器作为通知接收人,必须在通知联系人组中配置相关 URL。
  3. 如果 Webhook 端点需要自定义请求头,必须将通知联系人组与 cpaas-system 命名空间中类型为 NotificationSender 的 Secret 关联。
  1. 在左侧导航栏点击 运维中心 > 通知。

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

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

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

关联通知联系人组与请求头 Secret

如果配置的 Webhook 端点需要自定义请求头,请将联系人组与在配置 Webhook 通知的自定义请求头中创建的 Secret 关联。

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

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

  3. 在 global 集群的主节点编辑对应的 NotificationGroup 资源。

    kubectl edit notificationgroups.ait.alauda.io -n cpaas-system <notification-group-name>
  4. 在 metadata.annotations 中添加 cpaas.io/notification.webhook.config 注解,其值必须为用于自定义请求头的 Secret 名称。

    apiVersion: ait.alauda.io/v1beta1
    kind: NotificationGroup
    metadata:
      name: <notification-group-name>
      namespace: cpaas-system
      annotations:
        cpaas.io/notification.webhook.config: webhook-header-secret
INFO

Webhook URL 配置在通知联系人组中,自定义请求头通过关联的 Secret 配置。

通知模板

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

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

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. 切换到 通知规则 标签页,参考通知规则创建通知规则。