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