创建和管理通知渠道

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

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

如需使用 Cloud Monitoring API 配置通知渠道,请参阅按 API 创建和管理通知渠道

如需了解提醒政策通知,请参阅以下页面:

  • 如需了解有关启动时出现问题和创建提醒之间的延迟信息,请参阅通知延迟时间
  • 如需了解为提醒政策生成的通知数量,请参阅每个事件的通知

默认情况下,提醒政策仅在创建突发事件时发送通知。如需在事件打开和关闭时都收到通知,请修改提醒政策,然后在“通知”部分选择在事件关闭时通知

准备工作

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

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

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

创建通知渠道

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

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

电子邮件

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

  1. 在 Google Cloud 控制台中,选择 Monitoring

    转至 Monitoring

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

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

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

mobile-app

使用 Google Cloud Console 移动应用随时随地监控 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 进行单向或双向同步。 根据您的配置,以下情况是正确的:

  • 如果在 Monitoring 中创建了突发事件,则会在 PagerDuty 中打开一个突发事件。
  • 您不能使用 PagerDuty 来结束 Monitoring 中的突发事件。

如果您使用单向同步,并且解决 PagerDuty 中的突发事件,PagerDuty 中的突发事件状态会与 Monitoring 中的突发事件状态分离。实际上,如果您解决 PagerDuty 中的突发事件,该事件将在 PagerDuty 中永久关闭,并且无法重新打开。

如果您使用双向同步,则 Monitoring 会控制 PagerDuty 显示的状态。如果您在 PagerDuty 中解决事件,而 Monitoring 有突发事件打开,则系统会在 PagerDuty 中重新打开突发事件。

如需设置 PagerDuty 通知,请执行以下操作:

  1. 在 PagerDuty 中:在 PagerDuty 网站上创建一个 PagerDuty 帐号。
  2. 添加 PagerDuty 通知渠道:
    1. 在 Google Cloud 控制台中,选择 Monitoring
      转到 Monitoring
    2. 点击提醒,然后点击修改通知渠道
    3. PagerDuty 部分,点击新增
    4. 输入显示名。此名称应与您添加集成时提供给 PagerDuty 的名称一致。
    5. 服务密钥字段中输入 PagerDuty 生成的集成服务密钥
    6. 点击保存
  3. (可选)如果您要配置双向同步,请执行以下操作:
    1. 打开 PagerDuty。
    2. 依次选择配置服务,然后选择您在配置集成时输入的服务名称。
    3. 点击修改设置,选择创建突发事件,然后清除创建提醒和突发事件

当创建提醒政策时,请在 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 控制台中,选择 Monitoring

    转至 Monitoring

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

设置提醒政策时,请选择 SMS 通知类型,然后从列表中选择一个经过验证的手机号码。

Slack

借助 Monitoring Slack 集成,您可以在创建新突发事件时向 Slack 频道发布提醒政策。如需设置 Slack 通知,请执行以下操作:

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

  2. 在 Google Cloud 控制台中,选择 Monitoring

    转至 Monitoring

  3. 点击提醒,然后点击修改通知渠道

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

    1. 选择您的 Slack 工作区。
    2. 点击允许以允许 Cloud Monitoring 访问您的 Slack 工作区。此操作会使您返回通知渠道的 Monitoring 配置页面。
    3. Slack 频道名称字段中,输入要用于通知的 Slack 频道的名称。
    4. Cloud Alerting 显示名称字段中,输入简短的描述性语句。Monitoring 会在通知渠道页面上显示此字段的值。
    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 控制台中,选择 Monitoring

    转至 Monitoring

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

创建提醒政策时,请在 Notifications 部分选择 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、Webhook 或 Slack 配对,因为 Pub/Sub 使用不同的传送机制。

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

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

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

如需接收提醒通知,您还必须创建 Pub/Sub 订阅。当订阅处于与主题不同的项目中时,请在订阅者项目中创建一个服务帐号,并向其授予主题中 roles/pubsub.subscriber 的角色。

准备工作

当您为某个 Google Cloud 项目添加第一个通知渠道时,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 查看和修改服务帐号。

启用 Pub/Sub API 并创建主题

  1. 为您的 Google Cloud 项目启用 Pub/Sub API:
    启用 Pub/Sub API

    1. 选择您计划在其中创建 Pub/Sub 主题的 Google Cloud 项目。
    2. 当系统显示时,点击启用。如果显示已启用 API,您无需执行任何操作。
  2. 创建 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 控制台中,选择 Monitoring

    转至 Monitoring

  2. 选择包含您创建的 Pub/Sub 主题的 Google Cloud 项目。
  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. 转到 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. 转到 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 旨在包含与其字段相关的数据,但该架构并不具备可保证准确解析这些字段的限制条件。您可以将该值作为一个整体进行使用,并希望它遵守弃用政策,但请勿凭借它来解析生成的字段。

按需创建频道

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

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

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

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

测试通知渠道

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

例如,您可以使用类似于以下的步骤来验证通知渠道配置:

  1. 如果您的 Google Cloud 项目中没有 Compute Engine 实例,请创建一个。
  2. 创建提醒政策来监控该实例的 CPU 利用率。

    如果您的 Google Cloud 项目包含多个实例,请添加过滤条件以选择一个实例。

  3. 按如下方式配置条件触发器字段:

    1. 对于条件类型字段,选择阈值
    2. 对于阈值位置字段,选择低于阈值
    3. 请选择大于实例的 CPU 利用率的值。例如,如果图表显示 CPU 利用率约为 5%,则将阈值设置为 10%。
    4. 展开高级选项,并为重新测试窗口字段选择不重新测试

    这些设置会将政策配置为当 Compute Engine 实例的 CPU 利用率低于指定阈值时触发。由于您选择了大于实例的 CPU 利用率的阈值,因此会触发条件。

  4. 在您的政策中添加通知渠道。

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

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

  7. 在触发条件后,验证您是否在每个通知渠道上都收到了通知。

  8. 删除提醒政策和您创建的 Compute Engine 实例。自动关闭时长过期后,突发事件会自动关闭。

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

修改和删除通知渠道

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

  1. 在 Google Cloud 控制台中,选择 Monitoring,或点击以下按钮:

    转至 Monitoring

  2. 在 Monitoring 导航窗格中,点击提醒

  3. 点击修改通知渠道

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

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

查看通知渠道日志

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

  1. 如需开始使用 Google Cloud 控制台查看错误,请前往日志浏览器:

    前往日志浏览器

  2. 输入并运行查询。如需了解专门针对通知渠道错误的查询,请参阅 Cloud Monitoring 查询查询