配置日志记录和监控

Anthos clusters on Bare Metal 包含多种集群日志记录和监控选项,其中包括云端代管式服务、开放源代码工具,以及经过验证的与第三方商业解决方案的兼容性。本页介绍了这些选项,并为您选择适合您环境的正确解决方案提供了一些基本指导。

Anthos clusters on Bare Metal 选项

您可以为 Anthos clusters on Bare Metal 集群提供多种日志记录和监控选项:

  • Cloud Logging 和 Cloud Monitoring,在 Bare Metal 系统组件上默认启用。
  • Prometheus 和 Grafana,可从 Cloud Marketplace 获取。
  • 经过验证且适用于第三方解决方案的配置。

Cloud Logging 和 Cloud Monitoring

Google Cloud 的运维套件是 Google Cloud 的内置可观测性解决方案。它提供了全代管式日志记录解决方案、指标收集、监控、信息中心和提醒。Cloud Monitoring 监控 Anthos clusters on Bare Metal 集群的方式与基于云的 GKE 集群的监控方式类似。

代理可配置两个不同级别的日志记录和监控:

  • 仅限系统组件(默认)。
  • 系统组件和应用。

如果您需要一个易于配置且功能强大的云端可观测性解决方案,Logging 和 Monitoring 可提供理想的解决方案。如果仅在 Anthos clusters on Bare Metal 上运行工作负载,或者在 GKE 和 Anthos clusters on Bare Metal 上运行工作负载,我们强烈建议使用 Logging 和 Monitoring。对于组件在 Anthos clusters on Bare Metal 和传统本地基础架构上运行的应用,您可以考虑采用其他解决方案来实现这些应用的端到端视图。

Prometheus 和 Grafana

Prometheus 和 Grafana 是 Cloud Marketplace 中提供的两款热门的开源监控产品:

  • Prometheus 会收集应用和系统指标。

  • Alertmanager 使用多种不同的提醒机制来发出提醒。

  • Grafana 是一种信息中心工具。

您可以在每个管理员集群和用户集群上启用 Prometheus 和 Grafana。建议使用 Prometheus 和 Grafana 的对象:之前使用过这些产品的应用团队,或者希望在集群内保留应用指标的运营团队,以及网络连接断开时排查问题的团队。

第三方解决方案

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

以下解决方案指南适用于将第三方解决方案与 Anthos clusters on Bare Metal 搭配使用:

适用于 Anthos clusters on Bare Metal 的 Logging 和 Monitoring 的工作原理

创建新管理员集群或用户集群时,系统会在每个集群中安装并激活 Cloud Logging 和 Cloud Monitoring。

Stackdriver 代理在每个集群上都包含多个组件:

  • Stackdriver Operator (stackdriver-operator-*):管理部署到集群上的所有其他 Stackdriver 代理的生命周期。

  • Stackdriver Custom Resource:在 Anthos clusters on Bare Metal 安装过程中自动创建的资源。

  • Stackdriver Log Forwarder (stackdriver-log-forwarder-*)。一个 Fluent Bit 守护进程集,用于将日志从每台机器转发到 Cloud Logging。日志转发器将日志条目在本地缓冲,并在最长 4 小时内将重新发送这些日志条目。如果缓冲区已满,或者日志转发器达到 Cloud Logging API 时间超过 4 小时时,日志会被丢弃。

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

您可以通过运行以下命令查看 Stackdriver 安装的所有代理:

  kubectl -n kube-system get pods | grep stackdriver

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

stackdriver-log-forwarder-bpf8g               1/1     Running   0   4h31m
stackdriver-log-forwarder-cht4m               1/1     Running   0   4h31m
stackdriver-log-forwarder-fth5s               1/1     Running   0   4h31m
stackdriver-log-forwarder-kw4j2               1/1     Running   0   4h29m
stackdriver-metadata-agent-cluster-level...   1/1     Running   0   4h31m
stackdriver-operator-76ddb64d57-4tcj9         1/1     Running   0   4h37m

Cloud Monitoring 指标

如需查看 Cloud Monitoring 收集的指标列表,请参阅 Anthos 本地和 Anthos 裸机指标

为 Anthos clusters on Bare Metal 配置 Stackdriver 代理

与 Anthos clusters on Bare Metal 一起安装的 Stackdriver 代理会根据您的设置和配置收集有关系统组件的数据,以便通过以下模式之一维护 Anthos clusters on Bare Metal 集群以及排查其问题。

仅限系统组件(默认模式)

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

Stackdriver 已停用

您可以通过删除 Stackdriver 自定义资源来完全停用 Stackdriver 代理。

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

为 Anthos clusters on Bare Metal 停用 Stackdriver:

kubectl -n kube-system delete stackdrivers stackdriver

Stackdriver 代理会根据您的存储和保留配置捕获本地存储的数据。通过使用有权将数据写入安装时指定的 Google Cloud 项目的服务帐号,系统会将数据复制到该项目。如前所述,您可以随时停用 Stackdriver 代理。正如 Cloud Monitoring 文档所述,您可以像处理任何其他指标和日志数据一样,管理和删除 Stackdriver 代理收集的数据。

替换 Stackdriver 组件的默认 CPU 及内存请求和限制

pod 密度较高的集群引入了较高的日志记录和监控开销。在极端情况下,Stackdriver 组件可能会报告接近 CPU 和内存利用率限制,资源限制甚至可能导致持续重启。在这种情况下,您可以设置请求和限制覆盖

Metrics Server

Metrics Server 是各种自动扩缩流水线的容器资源指标的来源。Metrics Server 会从 kubelet 检索指标,并通过 Kubernetes Metrics API 公开这些指标。然后,HPA 和 VPA 将使用这些指标来确定何时触发自动扩缩。Metrics Server 使用插件调整器进行扩缩。

在极大的 pod 密度会创建过多日志记录和监控开销的情况下,资源限制可能导致 Metrics Server 停止并重新启动。在这种情况下,您可以替换请求和限制

Logging 和 Monitoring 的配置要求

为 Anthos clusters on Bare Metal 启用 Cloud Logging 和 Cloud Monitoring 需要满足几项配置要求。这些步骤包含在“启用 Google 服务”页面上的配置服务帐号以与 Logging 和 Monitoring 搭配使用中,具体如下列出:

  1. Cloud Monitoring 工作区必须在 Cloud 项目中创建。如需实现此目的,请点击 Google Cloud 控制台中的 Monitoring 并按照工作流操作。
  2. 您需要启用以下 Stackdriver API:

  3. 您需要将以下 IAM 角色分配给 Stackdriver 代理使用的服务帐号:

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

价格

您无需为 Anthos 系统日志和指标付费。

在 Anthos clusters on Bare Metal 集群中,Anthos 系统日志和指标包括:

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

如需了解详情,请参阅 Google Cloud 的运维套件的价格

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