设置监控、提醒和日志记录

Last reviewed 2023-08-08 UTC

Google Cloud 架构框架中的本文档介绍了如何设置监控、提醒和日志记录,以便您可以根据系统的行为采取行动。其中包括识别有意义的指标以及构建信息中心,以便更轻松地查看系统的相关信息。

DevOps 资源和评估 (DORA) 研究项目对监控的定义如下:

“收集、分析和使用信息跟踪应用和基础架构以指导业务决策的过程。监控是一项关键功能,因为它可以让您深入了解您的系统和工作。”

通过监控功能,服务所有者可以:

  • 在服务更改影响性能时做出明智的决策
  • 运用科学的方法应对突发事件响应
  • 衡量服务与业务目标的一致性

设置好监控、日志记录和提醒功能后,您可以执行以下操作:

  • 分析长期趋势
  • 比较不同时间段内的实验
  • 定义针对关键指标的提醒
  • 构建相关的实时信息中心
  • 执行回顾性分析
  • 监控业务驱动的指标和系统健康状况指标
    • 业务驱动的指标可帮助您了解您的系统对业务的支持程度。例如,使用指标可监控以下内容:
      • 应用为用户提供服务所产生的费用
      • 重新设计后网站流量的变化
      • 客户在您的网站上购买产品所需的时间
    • 系统健康状况指标可帮助您了解系统是否正常运行以及是否在可接受的性能水平内。

使用以下四个黄金信号来监控您的系统:

  • 延迟时间。处理请求所需的时间。
  • 数据流量。对您的系统的需求量。
  • 错误数。请求失败率。失败可能很明确(例如 HTTP 500)、不明确(例如与错误内容耦合的 HTTP 200 成功响应)或根据政策而定(例如,如果您承诺的响应时间为一秒,则任何超过一秒的请求都是错误)。
  • 饱和度。服务的饱和程度。饱和度用于衡量系统比例,凸显受限程度最高的资源(即在内存受限的系统中显示内存;在 I/O 受限的系统中显示 I/O)。

创建监控计划

创建与组织使命一致并遵循其运营策略的监控计划。在应用开发期间纳入监控和可观测性规划。在应用开发的早期纳入监控计划可以推动组织实现卓越运营。

在监控计划中包含以下详细信息:

  • 包含所有系统,包括本地资源和云资源。
  • 包含云费用监控功能,以帮助确保扩缩事件不会导致使用量超出预算阈值。
  • 构建不同的监控策略来衡量基础架构性能、用户体验和业务关键绩效指标 (KPI)。例如,静态阈值可能非常适合用于测量基础架构性能,但并不能真正反映用户体验。

随监控策略的成熟度更新计划。对计划进行迭代以改进系统的健康状况。

定义用于衡量组织各个方面的指标

定义衡量部署行为所需的指标。为此,请执行以下操作:

  • 定义业务目标。
  • 确定哪些指标和 KPI 可以提供可量化信息来衡量性能。确保将您的指标定义转换为组织的所有方面 — 从业务需求(包括云费用)到技术组件。
  • 使用这些指标为您的应用创建服务等级指标 (SLI)。如需了解详情,请参阅选择适当的 SLI

各种组件的常见指标

系统会在所有服务等级(从基础架构和网络到业务逻辑)上都生成指标。例如:

  • 基础架构指标:
    • 虚拟机统计信息,包括实例、CPU、内存、利用率和计数
    • 基于容器的统计信息,包括集群利用率、集群容量、pod 级别利用率和计数
    • 网络统计信息,包括入站流量/出站流量、组件之间的带宽、延迟时间和吞吐量
    • 每秒请求数,由负载均衡器测量
    • 每个磁盘的读取的总磁盘块数
    • 通过指定网络接口发送的数据包
    • 给定流程的内存堆大小
    • 响应延迟的分布
    • 数据库实例拒绝的无效查询数
  • 应用指标:
    • 应用特有的行为,包括每秒查询次数、每秒写入次数和每秒发送的消息数
  • 代管式服务统计信息指标:
    • 由 Google 管理的服务(API 或 BigQuery、App Engine 和 Bigtable 等产品)的 QPS、吞吐量、延迟时间、利用率
  • 网络连接统计信息指标:
    • 有关连接到本地系统或 Google Cloud 外部系统的 VPN/互连相关统计信息。
  • SLI
    • 与系统整体健康状况相关的指标。

设置监控

设置监控以监控本地资源和云资源。

选择监控解决方案,它:

  • 独立于平台
  • 提供统一的功能来监控本地、混合云和多云环境

通过使用单个平台来整合来自不同来源的监控数据,您可以构建统一的指标和可视化信息中心。

设置监控时,尽可能自动执行监控任务。

使用 Google Cloud 进行监控

使用监控服务(如 Cloud Monitoring)比自行构建监控服务更容易。监控复杂应用本质上就是一项需要付出努力的重大工程。即使有现成的基础架构可用于插桩、收集和显示数据以及发出提醒,但对于构建和维护的员工而言,这是一份全职工作。

请考虑使用 Cloud Monitoring 深入了解本地资源和云端资源的应用和基础架构的性能、可用性和健康状况。

Cloud Monitoring 是一项托管式服务,它是 Google Cloud Observability 的一部分。您可以使用 Cloud Monitoring 来监控 Google Cloud 服务和自定义指标。Cloud Monitoring 提供用于与第三方监控工具集成的 API。

Cloud Monitoring 可将来自系统云端基础架构的指标、日志和事件汇总在一起。这些数据为开发者和运营人员提供一组丰富的可观测信号,可加快根本原因分析并缩短平均解决时间。您可以使用 Cloud Monitoring 来定义符合您业务目标并帮助您汇总、直观呈现和监控系统健康状况的提醒和自定义指标。

Cloud Monitoring 为云端和开源应用服务提供默认信息中心。借助指标模型,您可以使用强大的可视化工具定义自定义信息中心,并在 Metrics Explorer 中配置图表。

设置提醒

良好的提醒系统可以提高功能发布能力。它有助于比较不同时间段的性能,从而确定功能发布的速度或是否需要回滚功能发布。如需了解回滚,请参阅无缝恢复旧版本

设置提醒时,请将提醒与关键指标直接对应。这些关键指标包括:

  • 四个黄金信号:
    • 延迟时间
    • 流量
    • 错误
    • 饱和度
  • 系统健康状况
  • 服务使用情况
  • 安全事件
  • 用户体验

让提醒具有实用价值,最大限度地缩短解决时间。为此,对于每个提醒,请执行以下操作:

  • 添加清晰的说明,包括说明受监控的对象及其对业务的影响。
  • 提供立即采取行动所需的所有信息。如果需要点击几下并进行浏览才能理解提醒,则待命人员将难以采取行动。
  • 定义各种提醒的优先级。
  • 明确指出负责响应提醒的人员或团队。

对于关键应用和服务,请在因常见故障情况(例如服务健康状况故障、配置更改或吞吐量出现峰值)触发的提醒中构建自我修复操作。

设置提醒时,请尝试减少繁复操作。例如,通过消除经常发生的错误或自动修复这些错误以避免触发提醒,从而减少繁复操作。减少繁复操作可让待命人员专注于确保应用的运营组件可靠。如需了解详情,请参阅打造自动化文化

构建监控和提醒信息中心

构建好监控后,您可以构建相关的简单信息中心,其中包括来自监控和提醒系统的信息。

选择适当的方法来直观呈现信息中心可能难以与可靠性目标联系起来。请创建信息中心以直观呈现:

  • 短期和实时分析
  • 长期分析

如需详细了解如何实现目视管理,请参阅功能文章目视管理

为关键应用启用日志记录

日志记录服务对于监控系统至关重要。虽然指标是监控特定项目的基础,但日志包含您进行调试、安全相关分析和遵循合规性要求所需的有价值信息。

记录系统生成的数据有助于确保提高安全性。如需详细了解日志记录和安全性,请参阅架构框架的安全类别中的实现日志记录和检测控制

Cloud Logging 是一项集成式日志记录服务,可用于存储、搜索、分析、监控日志数据和事件,并发出提醒。Cloud Logging 会自动从 Google Cloud 和其他云提供商的服务收集日志。您可以使用这些日志来构建监控指标,以及将日志记录导出到外部服务,例如 Cloud StorageBigQueryPub/Sub

设置审核跟踪

如需回答“哪些用户何时在何处对 Google Cloud 项目执行了什么操作”等疑问,请使用 Cloud Audit Logs

Cloud Audit Logs 可捕获多种类型的活动,例如:

  • 管理活动日志包含 API 调用或其他用于修改资源配置或元数据的操作对应的日志条目。管理员活动日志始终处于启用状态。
  • 数据访问审核日志会记录用于创建、修改或读取用户提供的数据的 API 调用。数据访问审核日志默认处于停用状态,因为它们可能很大。您可以配置哪些 Google Cloud 服务生成数据访问日志。

如需查看可写入审核日志的 Google Cloud 服务的列表,请参阅具有审核日志的 Google 服务。使用 Identity and Access Management (IAM) 控件来限制哪些人员有权查看审核日志。

后续步骤