日志记录和监控

Google Distributed Cloud 包含多个集群日志记录和监控选项,包括云端代管式服务、开源工具,以及经过验证的与第三方商业解决方案的兼容性。本文档介绍了这些选项,并为您选择适合自己环境的正确解决方案提供了一些基本指导。

Google Distributed Cloud 的方案

您可以为 Google Distributed Cloud 提供多种日志记录和监控选项:

Cloud Logging 和 Cloud Monitoring

Google Cloud Observability(原 Stackdriver)是 Google Cloud 的内置可观测性解决方案。它提供了全代管式日志记录解决方案、指标收集、监控、信息中心和提醒。Cloud Monitoring 监控 Google Distributed Cloud 集群的方式与云端 GKE 集群类似。

您可以为集群内代理配置监控和日志记录范围,以及收集的指标级别:

  • 日志记录和监控范围可以仅设置为系统组件(默认值)或者针对系统组件和应用进行设置
  • 可以为优化的指标集或者针对所有指标配置所收集的指标级别

如需了解详情,请参阅本文档中的为 Anthos clusters on VMware 配置 Logging 和 Monitoring 代理

Cloud Logging 和 Cloud Monitoring 为需要单一、易于配置且基于云的强大可观测性解决方案的客户提供了理想的解决方案。如果仅在 GKE on VMware 上运行工作负载,或在 GKE 和 GKE on VMware 上运行工作负载,我们强烈建议使用 Logging 和 Monitoring。对于组件在 GKE on VMware 和传统本地基础架构上运行的应用,您可以考虑采用其他解决方案来端到端地查看这些应用。

第三方解决方案

Google 与多个第三方日志记录和监控解决方案提供商合作,帮助他们的产品与 GKE on VMware 完美配合。这些提供方包括 Datadog、Elastic 和 Splunk。将来我们会添加经过验证的其他第三方。

如需详细了解如何将第三方解决方案与 GKE on VMware 配合使用,请参阅以下内容:

GKE on VMware 日志记录和监控的工作原理

当您创建新管理员集群或用户集群时,系统会在每个集群中安装并激活 Logging 和 Monitoring 代理。代理会收集系统组件的相关数据,您可以配置这些组件的范围。

如需在 Google Cloud 控制台上查看收集的数据,您必须配置存储要查看的日志和指标的 Google Cloud 项目。

每个集群上的 Logging 和 Monitoring 代理包括:

  • GKE 指标代理 (gke-metrics-agent)。将指标发送到 Cloud Monitoring API 的 DaemonSet。

  • Log Forwarder (stackdriver-log-forwarder)。一个 Fluent Bit DaemonSet,用于将日志从每台机器转发到 Cloud Logging。Log Forwarder 会将节点上的日志条目在本地进行缓冲,并在 4 小时内将其重新发送出去。如果缓冲区已满,或者 Log Forwarder 无法访问 Cloud Logging API 的时间超过 4 小时,日志会被丢弃。

  • 全局 GKE 指标代理 (gke-metrics-agent-global)。一个 Deployment,用于将指标发送到 Cloud Monitoring API。

  • Metadata 代理 (stackdriver-metadata-agent)。一个 Deployment,用于将 Pod、部署或节点等 Kubernetes 资源的元数据发送到 Stackdriver Resource Metadata API;这些数据用于通过部署名称、节点名称甚至 Kubernetes 服务名称进行查询来丰富指标查询。

  • kube-state-metrics 一个 Deployment,用于监听 API 服务器并生成有关对象状态的指标。

  • node-exporter:用于生成硬件和操作系统指标的 DaemonSet。

您可以运行以下命令来查看所有 Deployment 代理:

  kubectl --kubeconfig CLUSTER_KUBECONFIG get deployments -l "managed-by=stackdriver" --all-namespaces

其中,CLUSTER_KUBECONFIG 是集群的 kubeconfig 文件的路径。

此命令的输出类似如下所示:

gke-metrics-agent-global                      1/1     Running   0   4h31m
stackdriver-metadata-agent-cluster-level      1/1     Running   0   4h31m

您可以运行以下命令来查看所有 DaemonSet 代理:

  kubectl --kubeconfig CLUSTER_KUBECONFIG get daemonsets -l "managed-by=stackdriver" --all-namespaces

此命令的输出类似以下内容:

gke-metrics-agent                             1/1     Running   0   4h31m
stackdriver-log-forwarder                     1/1     Running   0   4h31m

为 GKE on VMware 配置日志记录和监控代理

随 GKE on VMware 安装的代理会根据您的设置和配置收集有关系统组件的数据,用于维护和排查集群问题。

仅限系统组件(默认范围)

安装后,代理会收集 Google 所提供系统组件的日志和指标,包括性能详情(如 CPU 和内存利用率)和类似元数据。这些组件包括管理员集群中的所有工作负载,以及用户集群的 kube-system、gke-system、gke-connect、istio-system、config-management-system 命名空间中的工作负载。您可以按照以下各部分所述配置或停用代理。

您还可以扩展收集的日志和指标的范围,使其也包括应用。有关启用应用日志记录和监控功能的说明,请参阅为用户应用启用 Logging 和 Monitoring

优化指标(默认指标)

默认情况下,集群中运行的指标代理会收集一组经过优化的容器、kubelet 和 kube-state-metrics 指标并报告给 Google Cloud Observability(以前称为 Stackdriver)。

收集这组优化的指标需要较少资源,可以提高整体性能和可伸缩性。这对于容器级和 kube 级指标尤为重要,因为需要监控大量对象。

如需停用优化的 kube-state-metrics 指标(不推荐),请在 Stackdriver 自定义资源中将 optimizedMetrics 字段设置为 false。如需详细了解如何更改 Stackdriver 自定义资源,请参阅配置 Stackdriver 组件资源GKE Enterprise 指标中介绍了所有 GKE on VMware 指标(包括默认排除的指标)。

启用和停用 Stackdriver

您可以通过启用或停用 Stackdriver 自定义资源来完全启用或停用 Logging 和 Monitoring 代理。此功能处于预览阶段。

在停用 Logging 和 Monitoring 代理之前,请参阅支持页面,详细了解停用代理会如何影响 Google Cloud 支持的服务等级协议 (SLA)。

Logging 和 Monitoring 代理会根据您的存储和保留配置捕获本地存储的数据。通过使用有权将数据写入安装时指定的 Google Cloud 项目的服务账号,系统会将数据复制到该项目。 如前所述,您可以随时停用这些代理。

您还可以管理和删除 Logging 和 Monitoring 代理发送到 Cloud Logging 和 Cloud Monitoring 的数据。如需了解详情,请参阅 Cloud Monitoring 文档

Logging 和 Monitoring 的配置要求

如需查看 Cloud Logging 和 Cloud Monitoring 数据,您必须配置用于存储要查看的日志和指标的 Google Cloud 项目。此 Google Cloud 项目被称为日志记录和监控项目

  1. 在日志记录和监控项目中启用以下 API:

  2. 日志记录和监控服务账号授予日志记录和监控项目上的以下 IAM 角色。

    • logging.logWriter
    • monitoring.metricWriter
    • stackdriver.resourceMetadata.writer
    • monitoring.dashboardEditor
    • opsconfigmonitoring.resourceMetadata.writer

价格

GKE Enterprise 系统日志和指标是免费的。 对于 Google Cloud 上的 GKE 集群,在启用 GKE Enterprise 的项目中注册集群时,系统会默认启用控制平面日志、控制平面指标和一部分精选 Kube 状态指标。控制平面日志会产生 Cloud Logging 费用,而默认开启的指标也包含在内,无需额外付费。

如需查看所包含的 GKE 日志和指标的列表,请参阅 可用日志 可用指标

在 GKE on VMware 集群中,GKE Enterprise 系统日志和指标包括以下内容:

  • 管理员集群中所有组件的日志和指标
  • 用户集群的以下命名空间中组件的日志和指标:kube-systemgke-systemgke-connectknative-servingistio-systemmonitoring-systemconfig-management-systemgatekeeper-systemcnrm-system

如需了解详情,请参阅 Google Cloud 可观测性价格

如需了解 Cloud Logging 指标的赠送金额,请与销售人员联系了解价格

后续步骤