创建和管理通知渠道

本文档介绍了如何使用 Google Cloud 控制台配置通知渠道。Cloud Monitoring 使用这些渠道来通知您, 或您的待命团队。创建 提醒政策,您可以通过从电子邮件提醒中选择 已配置通知渠道的列表。例如,您可以配置用于监控 Compute Engine 实例的提醒政策,以发布 Pub/Sub 主题并通知值班团队的 Slack 频道。

如需了解详情,请参阅通知延迟时间每个突发事件的通知数量

本文档介绍了如何使用 Google Cloud 控制台。如果您使用的是 Cloud Monitoring API,请参阅通过 API 创建和管理通知渠道

准备工作

如需获取使用 Google Cloud 控制台查看和配置通知渠道所需的权限, 请让管理员授予您 项目的 Monitoring Editor (roles/monitoring.editor) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

如需详细了解 Cloud Monitoring 角色, 请参阅 使用 Identity and Access Management 控制访问权限

创建通知渠道

创建提醒政策时,您可以选择任何已配置的通知渠道,并将其添加到政策中。您可以预配置通知渠道,也可以在创建提醒政策的过程中配置它们。如需了解详情,请参阅按需创建渠道

如需使用 Google Cloud 控制台创建通知渠道,请按照下表中包含的特定于渠道的说明操作:

电子邮件

如需添加电子邮件通知渠道,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 提醒页面:

    进入提醒

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 点击修改通知渠道
  3. 电子邮件部分中,点击新增
  4. 输入单个电子邮件地址和说明。
  5. 点击保存

如果您使用群组电子邮件地址作为提醒政策的通知渠道,请将该群组配置为接受来自 alerting-noreply@google.com 的邮件。

您可以在创建提醒政策期间创建电子邮件渠道。如需了解详情,请参阅 创建点播频道

mobile-app

您可以使用 Google Cloud 控制台移动应用随时随地监控 Google Cloud 控制台资源和 Monitoring 信息。Google Cloud 控制台移动应用通知会发送给特定设备或特定用户:

Google Cloud 控制台移动应用通知渠道列表。

  • 设备表示通知仅发送到创建通知渠道的特定设备。对于设备范围的通知渠道,显示名字段包含设备信息。
  • 用户表示通知将发送到安装了 Google Cloud 控制台移动应用的所有设备。

Cloud Monitoring 会在创建渠道时确定通知范围。您不能选择或更改范围。

如需为特定的特定服务配置 Google Cloud 控制台移动应用通知渠道, Google Cloud 项目中,请执行以下操作:

  1. 从移动设备的应用商店安装 Google Cloud 控制台移动应用。
  2. 选择要在 Google Cloud 控制台移动应用中查看的项目。

    选择项目后,应用与所选的 Google Cloud 项目之间会交换数据。当不存在通知渠道时,系统会创建一个通知渠道。几分钟后,该渠道会列在通知渠道页面的移动设备部分。

如需将您的移动设备添加为提醒政策的通知渠道,请在提醒通知部分中选择 Google Cloud 控制台(移动设备),然后从列表中选择您的移动设备。

PagerDuty

PagerDuty 支持双向同步 。因此,真实情况如下:

  • 如果在 Monitoring 中创建了突发事件,则会在 PagerDuty 中打开一个突发事件。
  • 您不能使用 PagerDuty 来结束 Monitoring 中的突发事件。
  • 如果您在 PagerDuty 中解决了突发事件,而 Monitoring 中仍有该突发事件处于打开状态,则该突发事件会在 PagerDuty 中重新打开。

若要设置 PagerDuty 通知,请按以下步骤操作: 执行以下操作:

  1. PagerDuty 账号中,在新服务中配置集成,或将集成添加到现有服务。
    1. 创建一个账号或登录现有账号。
    2. 前往服务页面。
      • 如需创建服务,请执行以下操作:
        1. 点击 + 新服务
        2. 输入服务名称和说明,然后点击 下一步
        3. 配置上报政策,然后点击下一步
        4. 如果您的 PagerDuty 账号支持提醒分组并 暂时性提醒,对其进行配置,然后点击下一步
        5. 在集成设置页面的 Search for an integration(s)(搜索集成)工具栏中,输入 Events API v1,然后点击 Create Service(创建服务)。然后,您会返回到新服务的 Integrations(集成)面板。
      • 如需修改现有服务,请执行以下操作:
        1. 从服务目录中选择一项服务。
        2. 在服务页面上,选择集成面板。
        3. 点击 + 添加其他集成,前往集成设置页面。
        4. 在集成设置页面的搜索集成工具栏中,输入 Events API v1,然后点击添加。然后,您会返回 Integrations(集成)面板。
    3. 在服务的集成面板上,找到您的 新集成,展开其菜单,然后复制集成密钥。
  2. 在 Cloud Monitoring 中,添加 PagerDuty 通知渠道:
    1. 在 Google Cloud 控制台中,转到 提醒页面:

      进入提醒

      如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

    2. 点击修改通知渠道
    3. PagerDuty 部分,点击新增
    4. 输入显示名。此名称应与您在第 1 步中配置新集成的 PagerDuty 服务的名称一致。
    5. 将您在第 1 步中复制的集成密钥粘贴到服务密钥字段中。
    6. 点击保存

创建提醒政策时,请在 Notifications 部分选择 PagerDuty,然后选择您的 PagerDuty 配置。

PagerDuty 的 JSON 数据包采用以下格式:

 {
     "description": A string of various fields in the incident,
     "details": JSON payload with schema version 1.2.
 }

如需查看 details 字段的示例和架构, 请展开即可下部分。

弃用政策

载荷架构需遵守 Google Cloud Platform 服务条款第 1.4(d) 条所述的 Google Cloud 弃用政策。请注意,该架构不会控制生成的字段值的格式,这些格式可能会发生变化而不另行通知。例如,incident.summaryincident.documentation.contentincident.url 旨在包含与其字段相关的数据,但该架构并不具备可保证准确解析这些字段的限制条件。您可以将该值作为一个整体进行使用,并希望它遵守弃用政策,但请勿凭借它来解析生成的字段。

短信

如需配置短信通知,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 提醒页面:

    进入提醒

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 点击修改通知渠道
  3. 短信部分中,点击新增
  4. 完整填写对话框,然后点击保存

设置提醒政策时,请选择短信通知类型,然后从列表中选择经过验证的电话号码。

Slack

在发生新事件时,Monitoring Slack 集成允许您的提醒政策向 Slack 渠道发布通知。如需设置 Slack 通知,请执行以下操作:

  1. 在 Slack 中:在 Slack 网站上创建一个 Slack 工作区和渠道。请记录渠道网址。

  2. 在 Google Cloud 控制台中,转到 提醒页面:

    进入提醒

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  3. 点击修改通知渠道

  4. Slack 部分中,点击新增以打开 Slack 登录页面:

    1. 选择您的 Slack 工作区。
    2. 点击允许以允许 Cloud Monitoring 访问您的 Slack 工作区。此操作会使您返回通知渠道的 Monitoring 配置页面。
    3. Slack 渠道名称字段中,输入您要用于通知的 Slack 渠道的名称。
    4. 云提醒显示名称字段,输入一个简短的 描述性陈述监控功能会在通知渠道页面上显示此字段的值。
    5. (可选)如需测试 Cloud Monitoring 与 Slack 工作区之间的连接,请点击发送测试通知。如果连接成功,您会在指定的 Slack 通知渠道中看到消息 This is a test alert notification...。请检查通知渠道以确认收到。
  5. 如果您要用于通知的 Slack 渠道是专用渠道,则必须手动邀请 Monitoring 应用加入该渠道:

    1. 打开 Slack。
    2. 转到您指定为 Monitoring 通知渠道的渠道。

    3. 通过在该渠道中输入并发送以下消息,邀请 Monitoring 应用加入该渠道:

      /invite @Google Cloud Monitoring

      务必邀请 Monitoring 应用加入您在 Monitoring 中创建通知渠道时指定的专用渠道。邀请 Monitoring 应用加入公共渠道是可选操作。

    创建提醒政策时,请在 Notifications 部分选择 Slack,然后选择您的 Slack 配置。

Webhook

如需配置网络钩子通知,请执行以下操作:

  1. Webhook 处理程序:确定从 Monitoring 接收 Webhook 数据的公共端点网址。
  2. 在 Google Cloud 控制台中,转到 提醒页面:

    进入提醒

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  3. 点击修改通知渠道
  4. 网络钩子部分中,点击新增
  5. 完整填写对话框。
  6. 点击测试连接,将测试载荷发送到网络钩子端点。您可以转到接收端点来验证递送。
  7. 点击保存

创建提醒政策时,选择 Webhook通知部分,然后选择您的网络钩子配置。 Error Reporting 发送的通知遵循 1.0 架构 而 Monitoring 发送的通知则跟随 1.2 架构:

基本身份验证

除了 Cloud Monitoring 发送的网络钩子请求之外,基本身份验证还会使用 HTTP 规范来指定用户名和密码。Cloud Monitoring 要求您的服务器返回具有正确 WWW-Authenticate 标头的 401 响应。如需了解有关基本身份验证的详情,请参阅以下内容:

令牌身份验证

令牌身份验证需要端点网址中的查询字符串参数和服务器希望在其自身和 Monitoring 之间保密的密钥。以下是包含令牌的示例网址:

https://www.myserver.com/stackdriver-hook?auth_token=1234-abcd

如果 Monitoring 将突发事件发布到端点网址,则您的服务器可以验证附加的参数。这种身份验证方法在与 SSL/TLS 结合使用以加密 HTTP 请求时最有效,可以防止窥探者学习令牌。

如需了解 Python 中的示例服务器,请参阅此示例服务器

弃用政策

载荷架构需遵守 Google Cloud Platform 服务条款第 1.4(d) 条所述的 Google Cloud 弃用政策。请注意,该架构不会控制生成的字段值的格式,这些格式可能会发生变化而不另行通知。例如,incident.summaryincident.documentation.contentincident.url 旨在包含与其字段相关的数据,但该架构并不具备可保证准确解析这些字段的限制条件。您可以 将该值作为一个整体使用,并期望它遵循弃用 政策,但不依赖于解析生成的字段。

Pub/Sub

本部分介绍如何配置 Pub/Sub 通知渠道。为实现冗余,我们建议您创建多个通知渠道。建议将 Pub/Sub 与 Google Cloud 控制台移动应用、PagerDuty、Webhooks 或 Slack 配对,因为 Pub/Sub 使用不同的传送机制。

要配置 Pub/Sub 通知渠道,请执行以下操作:

  1. 启用所需的 API 并创建主题
  2. 为主题配置通知渠道
  3. 向服务账号授权
  4. 在提醒政策中设置通知渠道

如需了解数据架构,请参阅 架构示例

如需接收提醒通知,您还必须创建以下某种订阅:拉取推送BigQuery

如果订阅与主题位于不同的项目中,请在订阅方项目中创建一个服务账号,并向其授予 roles/pubsub.subscriber 角色。

准备工作

当您向某个 Google Cloud 项目添加第一个 Pub/Sub 通知渠道时,Cloud Monitoring 会为该项目创建一个服务账号。它还会向服务账号授予 Identity and Access Management 角色 Monitoring Notification Service Agent。借助此服务账号,Monitoring 可向此项目中基于 Pub/Sub 的通知渠道发送通知。

该服务账号具有以下格式:

service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com

通知服务账号的名称包含唯一的 Google Cloud 项目编号。您可以在 Google Cloud 控制台中该项目的信息中心找到项目名称、ID 和编号,也可以使用以下命令进行检索:

gcloud projects describe PROJECT_ID --format="value(project_number)"

您可以使用 Google Cloud 控制台或 Google Cloud CLI 查看和修改服务账号。

启用所需的 API 并创建主题

在您计划创建通知渠道和 Pub/Sub 主题的 Google Cloud 项目中,执行以下操作:

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. Enable the Pub/Sub and Cloud Monitoring APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. 确保您的 Google Cloud 项目已启用结算功能

  7. Enable the Pub/Sub and Cloud Monitoring APIs.

    Enable the APIs

  8. 创建 Pub/Sub 主题。如需了解如何创建主题,请参阅创建主题。 例如,要使用 Google Cloud CLI 创建名为 notificationTopic 的主题,请运行以下命令:

    gcloud pubsub topics create notificationTopic

接下来,配置 Pub/Sub 通知渠道。

为主题配置通知

如需创建 Pub/Sub 通知渠道,您可以使用 Monitoring API、Google Cloud CLI 或 Google Cloud 控制台。创建通知渠道后,请授权通知服务账号发布您用作通知渠道的每个主题。

如需了解如何使用 Monitoring API 或 Google Cloud CLI 创建通知渠道,请参阅创建渠道

如需使用 Google Cloud 控制台创建通知渠道,请执行以下操作: 执行以下操作:

  1. 在 Google Cloud 控制台中,转到 提醒页面:

    进入提醒

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 选择包含 您创建的 Pub/Sub 主题。
  3. 点击修改通知渠道
  4. Pub/Sub 部分中,点击新增

    已创建 Pub/Sub 渠道对话框显示 Monitoring 创建的服务账号的名称。

  5. 向服务账号授权。您的服务账号可以发布所有主题或特定主题:

    • 如要发布所有主题,请选择管理角色,并添加 Pub/Sub Publisher 角色。

      完成配置通知渠道的步骤后,请跳过标题为向服务账号授权,然后转到在提醒政策中设置通知渠道

    • 如要发布特定主题,请继续执行下一步,并授权服务账号在您完成通知渠道配置后发布特定主题。如需了解如何向服务账号授权,请参阅向服务账号授权
  6. 输入渠道的显示名称和 Pub/Sub 主题名称。
  7. (可选)如需验证渠道是否已正确配置,请点击发送测试通知
  8. 选择添加渠道

接下来,向服务账号授权。

向服务账号授权

通过授权,通知服务账号可以发布用作通知渠道的每个 Pub/Sub 主题。本部分介绍如何执行以下操作:

  • 为特定主题授权服务账号。
  • 为所有主题授权服务账号。

为特定主题的服务账号授权

您可以使用 Google Cloud 控制台和 Google Cloud CLI 授权服务账号发布特定主题。本部分介绍了两种方法。

要使用“针对特定主题”为您的服务账号授权,请使用 Google Cloud 控制台,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往主题页面:

    前往主题

    如果您使用搜索栏查找此页面,请选择子标题为 Pub/Sub 的结果。

  2. 选择主题。
  3. 权限标签页中,选择添加主账号
  4. 新建主账号字段中,输入通知服务账号的名称。该服务账号具有以下命名惯例:
    service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
  5. 选择角色 Pub/Sub Publisher,然后选择保存

如需使用 Google Cloud CLI 向您的特定主题的服务账号授权,请将该主题的 pubsub.publisher IAM 角色授予该服务账号。例如,以下命令用于为 notificationTopic 主题配置 IAM 角色:

gcloud pubsub topics add-iam-policy-binding \
projects/PROJECT_NUMBER/topics/notificationTopic --role=roles/pubsub.publisher \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
 

成功执行 add-iam-policy-binding 命令的响应如下所示:

 Updated IAM policy for topic [notificationTopic].
 bindings:
 ‐ members:
    ‐ serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
    role: roles/pubsub.publisher
 etag: BwWcDOIw1Pc=
 version: 1
 

如需了解详情,请参阅pubsub topics add-iam-policy-binding参考页面

为所有主题的服务账号授权。

如需向您所有主题的服务账号授权,请执行以下操作:

  1. 在 Google Cloud 控制台中,进入 IAM 页面:

    前往 IAM

    如果您使用搜索栏查找此页面,请选择子标题为 IAM 和管理的结果。

  2. 选择包括 Google 提供的角色授予,如以下图片所示:
    选择包括 Google 提供的角色授予选项。
  3. 搜索具有以下格式的服务账号:
    service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com

    如果服务账号未列出,请重新加载页面。

  4. 为通知服务账户选择修改,选择添加另一个角色,然后添加角色Pub/Sub 发布者

接下来,在提醒政策中设置通知渠道。

在提醒政策中设置通知渠道

要在提醒政策中使用 Pub/Sub 通知渠道,请选择 Pub/Sub 作为渠道类型,然后选择主题。

架构示例

如需查看示例 JSON 数据包和架构,请展开以下部分。

弃用政策

载荷架构需遵守 Google Cloud Platform 服务条款第 1.4(d) 条所述的 Google Cloud 弃用政策。请注意,该架构不会控制生成的字段值的格式,这些格式可能会发生变化而不另行通知。例如,incident.summaryincident.documentation.contentincident.url 旨在包含与其字段相关的数据,但该架构并不具备可保证准确解析这些字段的限制条件。您可以将该值作为一个整体进行使用,并希望它遵守弃用政策,但请勿凭借它来解析生成的字段。

Google Chat

通过 Google Cloud Monitoring 应用,您的 Google Chat 聊天室可以接收通知。

准备工作

如果您位于某个组织中,那么要安装 Google 云端监控应用,您必须有权访问 Google Cloud Monitoring 应用。如果您没有访问权限, 请求 Google Workspace 管理员执行以下操作:

  1. 将应用添加到 Marketplace 中的应用许可名单,并为顶级组织部门启用访问权限
  2. 配置 Marketplace 应用用户安装设置,以便用户可以安装应用

安装 Google 云端监控应用

您必须使用以下过程来安装 Google Cloud Monitoring 应用。从 Google Workspace Marketplace 产品详情 不受支持。

如需安装该应用并将聊天室配置为通知渠道,请执行以下操作:

  1. 在 Google Chat 中,打开或创建您想接收通知的聊天室。

  2. 安装 Google Cloud Monitoring 应用:

    1. 选择您的聊天室名称,然后选择应用和集成

    2. 如果“应用”列表中未显示 Google 云端监控应用, 然后返回你所在的空间,输入“@Google Cloud Monitoring”,然后 按 Enter 键。

    3. 点击添加到聊天室

  3. 将聊天室 ID 复制到剪贴板。

    如果您安装了 Google Cloud Monitoring 应用,则 Chat 聊天室 ID 包含在安装确认信息中。否则,您可以在聊天室网址末尾的 space/ 后面找到一串数字和字母,即聊天室 ID。

  4. 打开新的浏览器标签页,然后配置通知渠道:

    1. 在 Google Cloud 控制台中,转到 提醒页面:

      进入提醒

      如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

    2. 点击修改通知渠道

    3. 转到 Google Chat 部分,然后点击新增

    4. Chat 聊天室 ID 字段中输入您的聊天室 ID,然后点击 保存

按需创建渠道

将通知渠道添加到提醒政策时,必须从列表中选择一个渠道。如需在创建提醒政策时更新选项列表,请按以下步骤操作:

  1. 在通知对话框中,点击管理通知渠道。系统会将您转到新的浏览器标签页中的通知渠道窗口。
  2. 要添加新的通知渠道,请找到渠道类型,点击新增,然后按照上表中包含的具体渠道说明进行操作:
  3. 返回原始标签页,然后在通知对话框中点击 刷新

    显示“刷新”和“管理渠道”按钮的通知对话框。

  4. 从更新后的列表中选择通知渠道。

在不受支持的频道时收到通知

如果您的首选通知渠道不受支持,请考虑创建 一个依赖于向 Pub/Sub 发送通知的流水线。 如需查看使用 Flask 的 Python 示例,请参阅使用 Cloud Monitoring 和 Cloud Run 创建自定义通知。如需查看其他示例,请参阅 cloud-alerting-notification-forwarding Git 代码库

测试通知渠道

Cloud Monitoring 不支持通知渠道的测试选项。 不过,您可以通过创建提醒政策并配置要满足的条件来验证通知渠道是否已正确配置。

如需手动测试通知渠道,您可以创建一个用于监控某个虚拟机 (VM) 实例 CPU 利用率的提醒政策:

  1. 可选:如果您的 Google Cloud 项目中还没有虚拟机,或者您想使用其他虚拟机进行测试,请创建一个虚拟机:

    1. 在 Google Cloud 控制台中,转到虚拟机实例页面:

      前往虚拟机实例

      如果您使用搜索栏查找此页面,请选择子标题为 Compute Engine 的结果。

    2. 选择创建实例,然后配置虚拟机。有关 有关如何创建虚拟机的信息,请参阅 使用公共映像创建虚拟机实例
  2. 在 Google Cloud 控制台中,转到 提醒页面:

    进入提醒

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  3. 选择创建政策

  4. 使用选择指标菜单选择 CPU 利用率指标 虚拟机实例

  5. 点击添加过滤条件,然后为您的虚拟机添加过滤条件。

  6. 更新 Configure trigger(配置触发器)字段,如下所示:

    1. 阈值位置字段选择低于阈值
    2. 请选择大于 实例。例如,如果图表显示 CPU 利用率约为 5%,请将阈值设置为 10%。

      这些设置用于配置当虚拟机实例的 CPU 利用率低于指定阈值时要满足的条件。由于您选择的阈值大于虚拟机实例的 CPU 利用率,因此满足了提醒政策的条件。

  7. 将通知渠道添加到您的政策中。

  8. 展开突发事件自动关闭时长,然后选择 30 分钟

  9. 输入政策名称,然后点击创建政策

  10. 满足条件后,验证您是否在 每个通知渠道

  11. 删除提醒政策。在自动关闭时长到期后,突发事件会自动关闭。

  12. 如果您为此测试创建了虚拟机实例,请将其删除。

如果您未收到预期的通知,则可以在 Logs Explorer 中搜索包含有关缺失通知的信息的日志条目。如需了解详情,请参阅未收到通知

修改和删除通知渠道

如需使用 Google Cloud 控制台修改或删除通知渠道,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 提醒页面:

    进入提醒

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 点击修改通知渠道

    通知渠道信息中心包含每种类型的通知渠道的一部分。每个部分列出了该类型的所有配置:

    • 如需修改条目,请点击 修改。更改完成后,点击保存
    • 如需删除条目,请点击 删除。点击确认对话框中的删除

查看通知渠道日志

您可以使用日志浏览器查看通知渠道错误:

  1. 在 Google Cloud 控制台中,转到 Logs Explorer 页面。

    前往 Logs Explorer

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 输入并运行查询。对于 通知渠道错误,请参阅 Cloud Monitoring 查询

后续步骤

如需了解突发事件,请参阅以下文档: