配置和管理通知

您可以配置 Error Reporting,以将错误通知发送到选定的 Cloud Monitoring 通知渠道。

Error Reporting 会在以下情况下发送通知:

  • 某个错误在 Google Cloud 项目中首次发生,并且无法将其与先前的错误分为一组。

  • 标记为已解决的错误再次出现。

管理通知渠道

您可以在 Monitoring 中创建、修改和删除通知渠道。创建通知渠道后,您可以配置 Error Reporting 以使用它们。

Error Reporting 提供四种类型的通知渠道:电子邮件、移动设备、Slack 和网络钩子。

准备工作

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

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

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

创建通知渠道

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

电子邮件

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

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

    进入提醒

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

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

如果您使用群组电子邮件地址作为提醒政策的通知渠道,请将该群组配置为接受来自 ErrorReportingNotifications-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 控制台(移动设备),然后从列表中选择您的移动设备。

Slack

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

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

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

    进入提醒

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

  3. 点击修改通知渠道

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

    1. 选择您的 Slack 工作区。
    2. 点击允许以允许 Cloud Monitoring 访问您的 Slack 工作区。此操作会使您返回通知渠道的 Monitoring 配置页面。
    3. Slack 渠道名称字段中,输入您要用于通知的 Slack 渠道的名称。
    4. Cloud Alerting Display Name(Cloud Alerting 显示名称)字段中,输入简短的描述性说明。监控会在通知渠道页面上显示此字段的值。
    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 应用加入公共渠道是可选操作。

Webhook

在配置 Webhook 通知渠道之前,请考虑以下事项:

  • 网络钩子仅支持公共端点。
  • 如果 Cloud Run 函数配置为通知渠道的 webhook 端点,请确保调用该函数的用户具有所需的身份验证权限。如需了解详情,请参阅进行身份验证以便调用启用对函数的访问权限
  • Webhook 通知渠道与 Microsoft Teams 不兼容。 如需将监控通知数据发送到 Microsoft Teams,请创建一个集成层来接收监控网络钩子,然后将其重定向到 Microsoft Teams。

配置 Webhook 通知渠道

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

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

    进入提醒

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

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

网络钩子架构

如需查看 Error Reporting 的 Webhook 架构结构,请点击以下链接:

基本身份验证

除了 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 控制台修改或删除通知渠道,请执行以下操作:

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

    进入提醒

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

  2. 点击修改通知渠道

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

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

通过 Google Cloud 控制台选择通知渠道

要选择现有的通知渠道,您必须具有以下角色之一:

  • Error Reporting User
  • Error Reporting Admin
  • Project Editor
  • Project Owner

如需选择在发生新的错误组时要将通知发送到何处,请完成以下步骤。

  1. 在 Google Cloud 控制台中,转到 Error Reporting 页面:

    前往 Error Reporting

    您也可以使用搜索栏查找此页面。

  2. 点击配置通知以打开错误通知页面。

  3. 通知渠道下拉菜单中,选择您要向其发送通知的渠道。

    如果您没有看到所需的渠道,请点击管理通知渠道创建新渠道。 如需创建通知渠道,您的角色必须是创建渠道中列出的角色。

  4. 选择频道后,点击保存

其他信息

以下是在 Error Reporting 中创建和管理通知时适用的其他信息。

通知内容

错误组的通知包含与该组中的日志条目相关的信息。包含的信息取决于发生错误的受监资源的类型。例如,某些通知可能包含受监控的资源的名称和版本。

只有当错误组由区域为 global 的日志存储桶中的日志条目标识时,通知中才会包含错误消息。

何时发送通知

Error Reporting 会在以下两种情况下发送通知:

  • Error Reporting 从未见过该错误组。
  • 现有错误组发生错误且错误组状态设置为 Resolved 时。

如需日后接收有关该错误组的通知,您必须将错误组状态设置为 Resolved。如果发生其他错误,使用 API 删除错误组或等待数据过时等任何其他操作都不会导致系统发送通知。

通知速率限制

Error Reporting 会使用以下规则来限制您可能会因错误而收到的通知数量:

  • 在 60 分钟内,系统最多会发送 5 条因错误而发送的通知。

  • 如果 60 分钟内发生的错误超过 5 个,则会发生以下情况:

    • 您会收到一条通知,告知您在接下来的 6 小时内不会再收到进一步的通知。

    • 系统会写入严重级别为警告的日志条目。

  • 解决错误组后,系统会暂停发送该错误组的通知五分钟。

解决状态

如果解决状态为已解决的错误再次出现,即使之前已删除,其解决状态也会变回待解决,并且 Error Reporting 将会发送通知。

如果处于已忽略状态的错误再次出现,Error Reporting 将不会再发送通知。

如需管理错误的解决状态,请参阅管理错误

移动通知

Error Reporting 会将移动通知发送到 Android 和 iOS 上的 Google Cloud 应用。如需选择启用移动通知,您必须先在移动设备上安装该应用:

下载 Google Cloud 应用

Google Cloud 控制台移动应用图示。 Google Cloud 控制台移动应用详情。