管理通知

功能概述

通过通知功能,您可以将平台的监控和告警特性结合起来,及时将预警信息发送给通知对象,提醒相关人员采取必要措施以解决问题或避免故障。

主要功能

  • 通知服务器:通知服务器为平台提供向通知联系组发送通知消息的服务,例如邮箱服务器。
  • 通知联系组:通知联系组是一组具有相似逻辑特征的通知对象,可以通过分类接收通知消息,从而减轻您的维护负担。
  • 通知模板:通知模板是由自定义内容、内容变量和内容格式参数组成的标准化结构。其目的是为通知策略标准化告警通知消息的内容和格式,例如自定义邮件通知的主题和内容。
  • 通知策略:通知策略是一系列规则的集合,用于定义如何向特定联系对象发送通知消息。在需要通知外部服务的情况下(如告警、巡检和登录认证),必须使用通知策略。

通知服务器

通知服务器用于为平台提供向通知对象发送通知消息的服务。平台当前支持以下通知服务器:

  • 企业通讯工具服务器:支持与企业微信、钉钉和飞书内置应用的集成,发送通知给个人。
  • 邮件服务器:使用邮件服务器通过电子邮件发送通知。
  • Webhook 类型服务器:支持集成企业微信群机器人、钉钉群机器人、飞书群机器人,或发送 Webhooks 到您指定的服务器。
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开关用于控制是否在服务器与客户端之间建立加密连接。
    跳过非安全验证:非安全验证开关用于控制是否验证客户端证书和服务器主机名。如果启用,则不会验证证书以及证书中的主机名与服务器主机名是否一致。
    发送人邮箱通知服务器中的发送人邮箱账户,用于发送通知邮件。
    启用认证如果需要启用认证,请配置邮箱服务器的用户名和授权码。
  4. 点击 确定

Webhook 类型服务器

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

企业微信群机器人

  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)中的标签或注释的键,格式为 {{.标签键}}。为了方便用户快速获取关键信息,可以为变量定义自定义显示名称,例如:告警等级:{{ .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(六级标题)。设置标题层级。
段落<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类型服务器,则可以跳过此步骤。

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

  5. 切换至 通知策略 标签页,参考通知策略创建通知策略。