Fluentd 已弃用,计划在将来的版本中删除。Red Hat 在当前版本生命周期内为此功能提供错误修复和支持,但此功能不再接收增强功能。作为 Fluentd 的替代方案,您可以使用 Vector。 |
在 OpenShift Dedicated 中,您可以隔离监控自己的项目,使其与 Red Hat 站点可靠性工程 (SRE) 平台指标分开。无需额外的监控解决方案,即可监控自己的项目。
OpenShift Dedicated 监控堆栈基于 Prometheus 开源项目及其更广泛的生态系统。监控堆栈包括以下内容:
**默认平台监控组件**。在 OpenShift Dedicated 安装期间,默认情况下会在 `openshift-monitoring` 项目中安装一组平台监控组件。Red Hat 站点可靠性工程师 (SRE) 使用这些组件来监控核心集群组件,包括 Kubernetes 服务。这包括从每个命名空间中所有工作负载收集的关键指标,例如 CPU 和内存。
这些组件在以下图表中的“默认安装”部分进行了说明。
**用于监控用户定义项目的组件**。在 OpenShift Dedicated 安装期间,默认情况下会在 `openshift-user-workload-monitoring` 项目中安装一组用户定义项目监控组件。您可以使用这些组件来监控用户定义项目中的服务和 Pod。这些组件在以下图表中的“用户”部分进行了说明。
以下是 Red Hat 站点可靠性工程师 (SRE) 在您的 OpenShift Dedicated 集群中监控的目标示例:
CoreDNS
etcd
HAProxy
镜像注册表
Kubelet
Kubernetes API 服务器
Kubernetes 控制器管理器
Kubernetes 调度程序
OpenShift API 服务器
OpenShift 控制器管理器
操作符生命周期管理器 (OLM)
确切的目标列表可能因您的集群功能和已安装组件而异。 |
OpenShift Dedicated 包括对监控堆栈的可选增强功能,使您可以监控用户定义项目中的服务和 Pod。此功能包括以下组件:
组件 | 描述 |
---|---|
Prometheus 操作符 |
`openshift-user-workload-monitoring` 项目中的 Prometheus 操作符 (PO) 会在同一项目中创建、配置和管理 Prometheus 和 Thanos Ruler 实例。 |
Prometheus |
Prometheus 是提供用户定义项目监控的监控系统。Prometheus 将警报发送到 Alertmanager 进行处理。 |
Thanos Ruler |
Thanos Ruler 是 Prometheus 的规则评估引擎,它作为单独的进程部署。在 OpenShift Dedicated 中,Thanos Ruler 为用户定义项目的监控提供规则和警报评估。 |
Alertmanager |
Alertmanager 服务处理从 Prometheus 和 Thanos Ruler 收到的警报。Alertmanager 还负责将用户定义的警报发送到外部通知系统。部署此服务是可选的。 |
所有这些组件都由堆栈监控,并在更新 OpenShift Dedicated 时自动更新。
默认情况下,在多节点集群中,以下组件以高可用性 (HA) 模式运行,以防止数据丢失和服务中断
Prometheus
Alertmanager
Thanos Ruler
该组件在两个 Pod 中复制,每个 Pod 运行在不同的节点上。这意味着监控堆栈可以容忍一个 Pod 的丢失。
两个副本独立地抓取相同的目标并评估相同的规则。
副本之间不进行通信。因此,Pod 之间的数据可能有所不同。
两个副本彼此同步通知和静默状态。这确保每个通知至少发送一次。
如果副本无法通信,或者接收端出现问题,通知仍然会发送,但可能会重复。
Prometheus、Alertmanager 和 Thanos Ruler 是有状态组件。为了确保高可用性,必须使用持久性存储对其进行配置。 |
此词汇表定义了 OpenShift Dedicated 架构中使用的常用术语。
Alertmanager 处理从 Prometheus 收到的警报。Alertmanager 还负责将警报发送到外部通知系统。
告警规则包含一组条件,这些条件概述了集群内的特定状态。当这些条件为真时,就会触发警报。可以为告警规则分配一个严重性级别,该级别定义了警报的路由方式。
集群监控操作符 (CMO) 是监控堆栈的核心组件。它部署和管理 Prometheus 实例(例如 Thanos Querier、Telemeter Client 和指标目标),以确保它们是最新的。CMO 由集群版本操作符 (CVO) 部署。
集群版本操作符 (CVO) 管理集群操作符的生命周期,其中许多操作符在 OpenShift Dedicated 中默认安装。
配置映射提供了一种将配置数据注入 Pod 的方法。您可以在类型为 ConfigMap
的卷中引用存储在配置映射中的数据。在 Pod 中运行的应用程序可以使用此数据。
容器是一个轻量级且可执行的镜像,其中包含软件及其所有依赖项。容器虚拟化操作系统。因此,您可以从数据中心到公有或私有云以及开发人员的笔记本电脑在任何地方运行容器。
CR 是 Kubernetes API 的扩展。您可以创建自定义资源。
etcd 是 OpenShift Dedicated 的键值存储,它存储所有资源对象的状。
Fluentd 是一个驻留在每个 OpenShift Dedicated 节点上的日志收集器。它收集应用程序、基础设施和审核日志,并将它们转发到不同的输出。
Fluentd 已弃用,计划在将来的版本中删除。Red Hat 在当前版本生命周期内为此功能提供错误修复和支持,但此功能不再接收增强功能。作为 Fluentd 的替代方案,您可以使用 Vector。 |
在节点上运行并读取容器清单。确保已定义的容器已启动并正在运行。
Kubernetes API 服务器验证和配置 API 对象的数据。
Kubernetes 控制器管理器控制集群的状态。
Kubernetes 调度器将 Pod 分配给节点。
标签是键值对,您可以使用它们来组织和选择对象的子集,例如 Pod。
指标服务器监控组件收集资源指标,并在 metrics.k8s.io
指标 API 服务中公开它们,供其他工具和 API 使用,这使核心平台 Prometheus 堆栈无需处理此功能。
OpenShift Dedicated 集群中的工作机器。节点可以是虚拟机 (VM) 或物理机。
在 OpenShift Dedicated 集群中打包、部署和管理 Kubernetes 应用程序的首选方法。操作符采用人类操作知识,并将其编码到软件中,然后将其打包并与客户共享。
OLM 帮助您安装、更新和管理 Kubernetes 原生应用程序的生命周期。OLM 是一个开源工具包,旨在以有效、自动化和可扩展的方式管理操作符。
即使设备关闭后也能存储数据。Kubernetes 使用持久卷来存储应用程序数据。
您可以使用 PVC 将持久卷挂载到 Pod。您可以访问存储,而无需了解云环境的详细信息。
Pod 是 Kubernetes 中最小的逻辑单元。Pod 包含一个或多个在工作节点中运行的容器。
Prometheus 是 OpenShift Dedicated 监控堆栈所基于的监控系统。Prometheus 是一个时间序列数据库和一个用于指标的规则评估引擎。Prometheus 将警报发送到 Alertmanager 进行处理。
openshift-monitoring
项目中的 Prometheus Operator (PO) 创建、配置和管理平台 Prometheus 和 Alertmanager 实例。它还根据 Kubernetes 标签查询自动生成监控目标配置。
可以将静默应用于警报,以防止在警报条件为真时发送通知。在您处理根本问题时,可以在初始通知后静默警报。
OpenShift Dedicated 支持 AWS 和 GCP 上的多种类型的存储。您可以管理 OpenShift Dedicated 集群中持久性和非持久性数据的容器存储。
Thanos Ruler 是一个用于 Prometheus 的规则评估引擎,它作为单独的进程部署。在 OpenShift Dedicated 中,Thanos Ruler 为用户定义项目的监控提供规则和警报评估。
Vector 是一个部署到每个 OpenShift Dedicated 节点的日志收集器。它从每个节点收集日志数据,转换数据,并将其转发到已配置的输出。
用于管理 OpenShift Dedicated 的用户界面 (UI)。