第 1 章 观察(Observability)服务


Observability 可帮助您识别和评估性能问题,而无需额外的测试和支持。Red Hat Advanced Cluster Management for Kubernetes observability 组件是一个服务,可以用来了解集群的健康状态与利用率,以及跨团队的工作负载。通过使用可观察性服务,您可以自动化和管理可观察性中的组件。

Observability 服务使用来自开源社区的现有和广泛采用的可观察工具。默认情况下,在安装 Red Hat Advanced Cluster Management 的过程中会启用多集群可观察性 Operator。Thanos 在 hub 集群中部署,用于长期指标存储。observability-endpoint-operator 会自动部署到每个导入或创建的受管集群。此控制器启动一个指标收集器,从 Red Hat OpenShift Container Platform Prometheus 收集数据,然后将数据发送到 Red Hat Advanced Cluster Management hub 集群。

有关可观察性组件的详情,请参阅以下文档:

1.1. Observability 架构

multiclusterhub-operator 默认启用 multicluster-observability-operator pod。您必须配置 multicluster-observability-operator pod。

1.1.1. Observability 开源组件

Observability 服务使用来自社区的开源观察工具。查看以下与产品可观察性服务相关的工具描述:

  • Thanos: 可用于在多个 Prometheus 实例之间执行全局查询的组件工具包。对于 Prometheus 数据的长期存储,请将其保留在任何 S3 兼容存储中。您还可以编写一个高可用性和可扩展的指标系统。
  • Prometheus: 一个监控和警报工具,可用于从应用程序收集指标,并将这些指标存储为时间序列数据。在本地存储所有提取的示例,运行规则来聚合并记录现有数据的新时间序列,并生成警报。
  • Alertmanager: 一个从 Prometheus 管理并接收警报的工具。去除重复数据、组和将警报路由到您的集成,如电子邮件、Slack 和 PagerDuty。将 Alertmanager 配置为静默并禁止特定的警报。

1.1.2. Observability 架构图

下图显示了可观察性的组件:

Multicluster observability architecture

可观察性架构的组件包括以下项目:

  • multicluster hub operator (也称为 multiclusterhub-operator pod)会部署 multicluster-observability-operator pod。它将 hub 集群数据发送到受管集群。
  • Observability 附加组件控制器 是自动更新受管集群的日志的 API 服务器。
  • Thanos 基础架构包括 Thanos Compactor,它由 multicluster-observability-operator pod 部署。Thanos Compactor 通过使用保留配置确保查询运行良好,并压缩存储中的数据。

    要在 Thanos Compactor 遇到问题时识别,请使用监控其健康状况的四个默认警报。阅读以下默认警报表:

    表 1.1. 默认 Thanos 警报表
    警报重要性描述

    ACMThanosCompactHalted

    critical

    当紧凑器停止时,会发送警报。

    ACMThanosCompactHighCompactionFailures

    warning

    当压缩失败率大于 5% 时发送警报。

    ACMThanosCompactBucketHighOperationFailures

    warning

    当存储桶操作失败率大于 5% 时,会发送警报。

    ACMThanosCompactHasNotRun

    warning

    当紧凑器没有上 24 小时内上传任何内容时,会发送警报。

  • Observability 组件部署一个 Grafana 实例,通过仪表板(静态)或数据探索启用数据视觉化。Red Hat Advanced Cluster Management 支持 Grafana 的版本 8.5.20。您还可以设计自己的 Grafana 仪表板。如需更多信息,请参阅指定 Grafana 仪表板
  • Prometheus Alertmanager 可让警报通过第三方应用程序转发。您可以通过创建自定义记录规则或警报规则来自定义可观察性服务。Red Hat Advanced Cluster Management 支持 Prometheus Alertmanager 的版本 0.25。

1.1.3. Observability 服务中使用的持久性存储

重要:不要使用本地存储 Operator 或将本地卷用于持久性存储的存储类。如果 pod 重启后在不同节点上重启,则可能会丢失数据。发生这种情况时,pod 无法访问节点上的本地存储。确保您可以访问 receiverules pod 的持久性卷,以避免数据丢失。

安装 Red Hat Advanced Cluster Management 时,必须创建以下持久性卷(PV),以便 PVC 可以自动附加到 PVC。请注意,当没有指定默认存储类或想要使用非默认存储类来托管 PV 时,您必须在 MultiClusterObservability 自定义资源中定义存储类。建议您使用 Block Storage,类似于 Prometheus 使用存储。另外,alertmanagerthanos-compactorthanos-rulerthanos-receive-defaultthanos-store-shard 的每个副本必须具有自己的 PV。查看下表:

表 1.2. 持久性卷表列表

组件名称

目的

alertmanager

Alertmanager 将 nflog 数据和静默的警报信息存储在它的存储中。nflog 是一个只能附加的日志,它包括当前有效的和已解决的日志,以及通知的接收者和用来识别内容的哈希摘要数据。

observability-thanos-compactor

紧凑器需要本地磁盘空间来存储用于处理的中间数据,以及 bucket 状态缓存。所需空间取决于基础块的大小。紧凑器必须有足够的空间下载所有源块,然后在磁盘上构建紧凑块。磁盘上的数据可以安全地在重新启动之间删除,并且应该是首次尝试使崩溃循环解压器。不过,建议为紧凑器永久磁盘提供压缩器持久磁盘,以便在重启期间高效地使用存储桶状态缓存。

observability-thanos-rule

thanos 标尺通过以固定间隔发出查询来评估 Prometheus 记录和警报规则。规则结果以 Prometheus 2.0 存储格式写回磁盘。在这个有状态集合中保留的数据量在 API 版本 observability.open-cluster-management.io/v1beta1 中被修复。它在 observability.open-cluster-management.io/v1beta2: RetentionInLocal 中以一个 API 参数的形式公开

observability-thanos-receive-default

Thanos 接收器接受传入数据(Prometheus 远程写入请求),并将这些数据写入 Prometheus TSDB 的一个本地实例。TSDB 块定期(每 2 小时)上传到对象存储,以进行长期存储和压缩。在这个有状态集合中保留的小时数或天数。有状态集合作为一个本地的缓存,它在 API 版本 observability.open-cluster-management.io/v1beta 中被修复。它在 observability.open-cluster-management.io/v1beta2: RetentionInLocal 中以一个 API 参数的形式公开

observability-thanos-store-shard

它主要充当一个 API 网关,因此不需要大量的本地磁盘空间。它在启动时加入 Thanos 集群,并公告它可以访问的数据。它在本地磁盘上保留少量的、与所有远程块相关的信息,并与存储桶保持同步。这些数据通常在重启时会被安全地删除,这会增加启动时间。

注意 :时间序列历史数据存储在对象存储中。Thanos 使用对象存储作为指标和与其相关的元数据的主存储。有关对象存储和降级的详情,请参阅启用可观察性服务

1.1.4. 其他资源

要了解更多有关可观察性和集成组件的信息,请参阅以下主题:

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.