日志记录和监控

Google Distributed Cloud for VMware(纯软件)具有多种集群日志记录和监控选项,其中包括云端托管式服务、开源工具,以及经过验证的与第三方商业解决方案的兼容性。本文档介绍了这些选项,并提供一些基本指导,帮助您为自己的环境选择合适的解决方案。

用于 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 为需要单一、易于配置且基于云的强大可观测性解决方案的客户提供了理想的解决方案。如果仅在 Google Distributed Cloud 上运行工作负载,或者在 GKE 和 Google Distributed Cloud 上运行工作负载,我们强烈建议使用 Logging 和 Monitoring。对于组件在 Google Distributed Cloud 和传统本地基础设施上运行的应用,您可以考虑采用其他解决方案来实现这些应用的端到端视图。

第三方解决方案

Google 与多个第三方日志记录和监控解决方案提供商合作,帮助他们的产品与 Google Distributed Cloud 很好地搭配使用。这些提供商包括 Datadog、Elastic 和 Splunk。将来我们会添加经过验证的其他第三方。

如需详细了解如何将第三方解决方案与 Google Distributed Cloud 搭配使用,请参阅以下内容:

适用于 Google Distributed Cloud 的 Logging 和 Monitoring 的工作原理

当您创建新管理员集群或用户集群时,系统会在每个集群中安装并激活 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:用于侦听 API 服务器并生成有关对象状态的指标的 Deployment。

  • 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

为 Google Distributed Cloud 配置日志记录和监控代理

与 Google Distributed Cloud 一起安装的代理会根据您的设置和配置收集有关系统组件的数据,以便维护集群并排查其问题。

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

安装后,代理会收集 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 指标中介绍了所有 Google Distributed Cloud 指标(包括默认排除的指标)。

启用和停用 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 系统日志和指标付费。 对于在启用了 GKE Enterprise 的项目中创建集群时注册的 Google Cloud 上的 GKE 集群,系统会默认启用控制平面日志、控制平面指标和精选的 Kube 状态指标子集。控制平面日志会产生 Cloud Logging 费用,而默认启用指标则无需额外付费。

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

在 Google Distributed Cloud 集群中,GKE Enterprise 系统日志和指标包括以下方面:

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

如需了解详情,请参阅 Google Cloud Observability 的价格

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

后续步骤