通知选项

此页列出了受支持的通知渠道类型,并说明了如何使用 Google Cloud Console 对其进行配置:

  • 如需使用 Cloud Monitoring API 配置通知渠道,请参阅管理通知渠道
  • 如需了解有关启动时出现问题和创建提醒之间的延迟信息,请参阅通知延迟时间

要使用 Google Cloud Console 配置通知渠道,请执行以下操作:

  1. 在 Cloud Console 中,选择 Monitoring

    转到“监控”

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

  3. 点击修改通知渠道通知渠道信息中心包含每种通知渠道类型部分。部分标题下方列出了该类型的所有配置:

    • 要修改条目,请点击修改。更改完成后,点击保存
    • 要删除条目,请点击删除。点击确认对话框中的删除
  4. 要添加条目,请按照下表中的通知类型说明进行操作:

电子邮件

要添加电子邮件,请转到电子邮件部分,点击新增,然后按照说明操作。

如果您要创建提醒政策并在通知部分中选择电子邮件,请输入您的电子邮件地址。如果您使用群组电子邮件地址,请将群组配置为接受来自 alerts@stackdriver.comalerting-noreply@google.com 的邮件。请注意,stackdriver.com 地址将逐步被淘汰。

您可以按需配置电子邮件渠道,若提前创建,则还可以配置一个描述性的显示名,如“电子商务随时待命团队别名”。

Google Cloud Console 移动应用

您可以使用 Google Cloud Console 移动应用随时随地监控 Cloud Console 资源和 Monitoring 信息。

如需配置移动设备以接收 Monitoring 通知,请执行以下操作:

  1. 从移动设备的应用商店安装 Google Cloud Console 移动应用。
  2. 在 Google Cloud Console 移动应用中:选择设置菜单,为您的工作区配置该应用。您将可以查看 Cloud Console 资源。
  3. 移动设备部分,点击新增并按照说明操作。

几分钟后,您的移动设备就会列在该移动设备

当创建提醒政策时,请在通知部分选择 Google Cloud Console(移动设备),然后从列表中选择您的移动设备。

PagerDuty

与 PagerDuty 集成可以实现使用 Monitoring 单向或双向解决事件。

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

  1. 在 PagerDuty 中:在 PagerDuty 网站上创建一个 PagerDuty 帐号。您可以选择配置 PagerDuty Sync 以实现与 Monitoring 之间的双向同步。如需了解详情,请参阅 PagerDuty 的 Stackdriver 集成指南
  2. PagerDuty 部分,点击新增
  3. 输入服务名称服务密钥
  4. 点击保存

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

在本文档中,Stackdriver 的屏幕截图来自旧版本,但信息是准确的。

短信

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

  1. 短信部分,点击新增并按照说明操作。
  2. 点击保存

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

Slack

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

  1. 在 Slack 中:在 Slack 网站上创建一个 Slack 渠道。请记录渠道网址。
  2. 在 Google Cloud Console 中,选择 Monitoring

    转到“监控”

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

  4. Slack部分中,点击新增。系统即会显示 Slack 登录页面:

    1. 输入您的 Slack 工作区网址。
    2. 点击允许以允许 Google Cloud Monitoring 访问您的 Slack 工作区。

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

网络钩子

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

  1. 网络钩子处理程序:确定将从 Monitoring 接收网络钩子数据的端点网址。
  2. 网络钩子 部分,点击新增并按照说明操作。
  3. 点击保存

创建提醒政策时,在通知部分选择网络钩子,然后选择您的网络钩子配置。

JSON 数据包示例

用于创建事件的 JSON 数据包表单如下:

  {
        "incident": {
          "incident_id": "f2e08c333dc64cb09f75eaab355393bz",
          "resource_id": "i-4a266a2d",
          "resource_name": "webserver-85",
          "state": "open",
          "started_at": 1385085727,
          "ended_at": null,
          "policy_name": "Webserver Health",
          "condition_name": "CPU usage",
          "url": "https://console.cloud.google.com/monitoring/alerting/incidents?project=PROJECT_ID",
          "summary": "CPU for webserver-85 is above the threshold of 1% with a value of 28.5%"
        },
        "version": 1.1
      }
    

基本身份验证

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

令牌身份验证

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

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

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

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

发布/订阅

如需向 Pub/Sub 主题发送通知,请执行以下操作:

  1. 如果您还没有 Pub/Sub 主题,请按照创建主题中的说明,创建一个 Pub/Sub 主题。主题必须已存在,您才能将其用作通知渠道。以下命令会创建一个名为 notificationTopic 的主题。

    gcloud pubsub topics create notificationTopic
  2. 创建一个使用该主题的通知渠道。您必须使用 Monitoring API 或 gcloud 命令行工具创建此渠道;如需了解有关信息和示例,请参阅创建渠道

  3. 请授权通知服务帐号,向您用作通知渠道的每个 Pub/Sub 主题发布通知。

    在您创建第一个 Pub/Sub 渠道时,Cloud Monitoring 会为创建该渠道的项目创建 Monitoring 通知服务代理的服务帐号。此服务账号负责管理,向该项目中基于 Pub/Sub 的通知渠道,发送通知。

    此服务帐号的 ID 采用以下结构:

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

    您可以在 Google Cloud Console 的 IAM页面(而非服务帐号)上看到此帐号。

    要授权此帐号向主题发布内容,您必须为服务帐号授予该主题的 pubsub.publisher IAM 角色。以下命令对 notificationTopic 主题执行此操作:

    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
        

    如果命令成功,则返回如下所示的输出:

        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参考页面

    请注意,项目编号与项目 ID 不同。项目 ID 通常是反映项目名称的字符串,例如 my-test-project。项目编号是唯一的数字标识符。您可以在 Google Cloud Console 中查找项目的着陆页上的项目名称、ID 和编号,也可以使用以下命令进行检索:

        gcloud projects describe [PROJECT_ID] --format="value(project_number)"
        
  4. 通过选择 Pub/Sub 作为渠道类型并选择已命名的主题作为通知渠道,将 Pub/Sub 渠道添加到提醒政策。