第 8 章 安装日志记录
OpenShift Container Platform Operator 使用自定义资源(CR)来管理应用程序及其组件。高级配置和设置由 CR 中的用户提供。Operator 根据 Operator 逻辑中嵌入的最佳实践,将高级别指令转换为低级操作。自定义资源定义(CRD)定义了一个 CR,并列出 Operator 用户可用的所有配置。安装 Operator 会创建 CRD,然后用于生成 CR。
您必须在日志存储 Operator 后 安装 Red Hat OpenShift Logging Operator。
您可以通过安装 Loki Operator 或 OpenShift Elasticsearch Operator 来部署日志记录,以管理您的日志存储,然后是 Red Hat OpenShift Logging Operator 来管理日志记录的组件。您可以使用 OpenShift Container Platform Web 控制台或 OpenShift Container Platform CLI 来安装或配置日志记录。
在 OpenShift Container Platform 4.16 中,Elasticsearch Operator 只支持 ServiceMesh、Tracing 和 Kiali。计划在 2025 年 11 月从 OpenShift Operator 目录中删除此 Operator。删除的原因是 Elasticsearch Operator 不再支持日志存储,OpenShift Container Platform 4.16 及更新的版本不再支持 Kibana。如需有关生命周期日期的更多信息,请参阅 平台分析 Operator。
您还可以应用所有示例对象。
8.1. 使用 Web 控制台安装 Elasticsearch
您可以使用 OpenShift Container Platform Web 控制台安装 OpenShift Elasticsearch 和 Red Hat OpenShift Logging Operator。Elasticsearch 是内存密集型应用程序。默认情况下,OpenShift Container Platform 安装 3 个 Elasticsearch 节点,其内存请求和限制为 16 GB。初始设置的三个 OpenShift Container Platform 节点可能没有足够的内存在集群中运行 Elasticsearch。如果遇到与 Elasticsearch 相关的内存问题,在集群中添加更多 Elasticsearch 节点,而不是增加现有节点上的内存。
					如果您不希望使用默认的 Elasticsearch 日志存储,您可以从 ClusterLogging 自定义资源 (CR) 中删除内部 Elasticsearch logStore 和 Kibana visualization 组件。删除这些组件是可选的,但会保存资源。
				
先决条件
- 确保具有 Elasticsearch 所需的持久性存储。注意每个 Elasticsearch 节点都需要自己的存储卷。 注意- 如果将本地卷用于持久性存储,请不要使用原始块卷,这在 - LocalVolume对象中的- volumeMode: block描述。Elasticsearch 无法使用原始块卷。
流程
使用 OpenShift Container Platform Web 控制台安装 OpenShift Elasticsearch Operator 和 Red Hat OpenShift Logging Operator:
- 安装 OpenShift Elasticsearch Operator: - 
								在 OpenShift Container Platform Web 控制台中,点击 Operators OperatorHub。 
- 从可用的 Operator 列表中选择 OpenShift Elasticsearch Operator,然后点 Install。
- 确定在 Installation Mode 下选择了 All namespaces on the cluster。
- 确定在 Installed Namespace 下选择了 openshift-operators-redhat。 - 您必须指定 - openshift-operators-redhat命名空间。- openshift-operators命名空间可能会包含社区提供的 operator。这些 operator 不被信任,其发布的 metric 可能与 OpenShift Container Platform metric 的名称相同,从而导致冲突。
- 选择 Enable Operator recommended cluster monitoring on this namespace。 - 这个选项在 Namespace 对象中设置 - openshift.io/cluster-monitoring: "true"标识。您必须设置这个选项,以确保集群监控提取- openshift-operators-redhat命名空间。
- 选择 stable-5.y 作为 更新频道。 注意- stable 频道只为日志记录的最新版本提供更新。要继续获得之前版本的更新,您必须将订阅频道改为 stable-x.y,其中 - x.y代表您安装的日志记录的主版本和次版本。例如,stable-5.7。
- 选择一个批准策略。 - Automatic 策略允许 Operator Lifecycle Manager(OLM)在有新版本可用时自动更新 Operator。
- Manual 策略需要拥有适当凭证的用户批准 Operator 更新。
 
- 点 Install。
- 
								通过切换到 Operators Installed Operators 页来验证 OpenShift Elasticsearch Operator 已被安装。 
- 确定 OpenShift Elasticsearch Operator 在所有项目中被列出,请 Status 为 Succeeded。
 
- 
								在 OpenShift Container Platform Web 控制台中,点击 Operators 
- 安装 Red Hat OpenShift Logging Operator: - 
								在 OpenShift Container Platform Web 控制台中,点击 Operators OperatorHub。 
- 从可用的 Operator 列表中选择 Red Hat OpenShift Logging,然后点 Install。
- 确定在 Installation Mode 下选择了 A specific namespace on the cluster。
- 确定在 Installed Namespace 下的 Operator recommended namespace 是 openshift-logging。
- 选择 Enable Operator recommended cluster monitoring on this namespace。 - 这个选项在 Namespace 对象中设置 - openshift.io/cluster-monitoring: "true"标识。您必须选择这个选项,以确保集群监控提取- openshift-logging命名空间。
- 选择 stable-5.y 作为 更新频道。
- 选择一个批准策略。 - Automatic 策略允许 Operator Lifecycle Manager(OLM)在有新版本可用时自动更新 Operator。
- Manual 策略需要拥有适当凭证的用户批准 Operator 更新。
 
- 点 Install。
- 
								通过切换到 Operators Installed Operators 页来验证 Red Hat OpenShift Logging Operator 已被安装。 
- 确保 openshift-logging 项目中列出的 Red Hat OpenShift Logging 的 Status 为 InstallSucceeded。 - 如果 Operator 没有被成功安装,请按照以下步骤进行故障排除: - 
										切换到 Operators Installed Operators 页面,并检查 Status 列中是否有任何错误或故障。 
- 
										切换到 Workloads Pods 页面,并检查 openshift-logging项目中报告问题的 pod 的日志。
 
- 
										切换到 Operators 
 
- 
								在 OpenShift Container Platform Web 控制台中,点击 Operators 
- 创建 OpenShift Logging 实例: - 
								切换到 Administration Custom Resource Definitions 页面。 
- 在 Custom Resource Definitions 页面上,点 ClusterLogging。
- 在 Custom Resource Definition details 页中,从 Actions 菜单中选择 View Instances。
- 在 ClusterLoggings 页中,点 Create ClusterLogging。 - 您可能需要刷新页面来加载数据。 
- 将 YAML 项中的代码替换为以下内容: 注意- 此默认 OpenShift Logging 配置应该可以支持各种环境。参阅有关调优和配置日志记录子系统组件的主题,以了解有关可对 OpenShift Logging 集群进行修改的信息。 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 名称必须是instance。
- 2
- OpenShift Logging 管理状态。在一些数情况下,如果更改了 OpenShift Logging 的默认值,则必须将其设置为Unmanaged。但是,非受管部署不接收更新,直到 OpenShift Logging 重新变为受管状态为止。
- 3
- 用于配置 Elasticsearch 的设置。通过使用 CR,您可以配置分片复制策略和持久性存储。
- 4
- 指定 Elasticsearch 应该保留每个日志源的时间长度。输入一个整数和时间单位: 周(w)、小时(h/H)、分钟(m)和秒。例如,7d代表 7 天。时间超过maxAge的旧日志会被删除。您必须为每个日志源指定一个保留策略,否则不会为该源创建 Elasticsearch 索引。
- 5
- 指定 Elasticsearch 节点的数量。请参阅此列表后面的备注。
- 6
- 为 Elasticsearch 存储输入现有存储类的名称。为获得最佳性能,请指定分配块存储的存储类。如果没有指定存储类,OpenShift Logging 将使用临时存储。
- 7
- 根据需要指定 Elasticsearch 的 CPU 和内存请求。如果这些值留白,则 OpenShift Elasticsearch Operator 会设置默认值,它们应足以满足大多数部署的需要。内存请求的默认值为16Gi,CPU 请求为1。
- 8
- 根据需要指定 Elasticsearch 代理的 CPU 和内存请求。如果这些值留白,则 OpenShift Elasticsearch Operator 会设置默认值,它们应足以满足大多数部署的需要。内存请求的默认值为256Mi,CPU 请求的默认值为100m。
- 9
- 用于配置 Kibana 的设置。通过使用 CR,您可以扩展 Kibana 来实现冗余性,并为 Kibana 节点配置 CPU 和内存。如需更多信息,请参阅配置日志可视化工具。
- 10
- 用于配置 Fluentd 的设置。通过使用 CR,您可以配置 Fluentd CPU 和内存限值。如需更多信息,请参阅"配置 Fluentd"。
 注意- master 节点的最大数量为三个。如果您将 - nodeCount指定为大于- 3,OpenShift Container Platform 只会创建三个符合 Master 节点条件的 Elasticsearch 节点(具有 master、client 和 data 角色)。其余 Elasticsearch 节点创建为“仅数据”节点,使用 client 和 data 角色。Master 节点执行集群范围的操作,如创建或删除索引、分配分片和跟踪节点等。数据节点保管分片,并执行与数据相关的操作,如 CRUD、搜索和聚合等。与数据相关的操作会占用大量 I/O、内存和 CPU。务必要监控这些资源,并在当前节点过载时添加更多数据节点。- 例如,如果 - nodeCount = 4,则创建以下节点:- oc get deployment - $ oc get deployment- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - cluster-logging-operator-66f77ffccb-ppzbg 1/1 Running 0 7m elasticsearch-cd-tuhduuw-1-f5c885dbf-dlqws 1/1 Running 0 2m4s elasticsearch-cdm-ftuhduuw-1-ffc4b9566-q6bhp 2/2 Running 0 2m40s elasticsearch-cdm-ftuhduuw-2-7b4994dbfc-rd2gc 2/2 Running 0 2m36s elasticsearch-cdm-ftuhduuw-3-84b5ff7ff8-gqnm2 2/2 Running 0 2m4s - cluster-logging-operator-66f77ffccb-ppzbg 1/1 Running 0 7m elasticsearch-cd-tuhduuw-1-f5c885dbf-dlqws 1/1 Running 0 2m4s elasticsearch-cdm-ftuhduuw-1-ffc4b9566-q6bhp 2/2 Running 0 2m40s elasticsearch-cdm-ftuhduuw-2-7b4994dbfc-rd2gc 2/2 Running 0 2m36s elasticsearch-cdm-ftuhduuw-3-84b5ff7ff8-gqnm2 2/2 Running 0 2m4s- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
								点 Create。这将创建日志记录组件、Elasticsearch自定义资源和组件以及 Kibana 接口。
 
- 
								切换到 Administration 
- 验证安装: - 
								切换到 Workloads Pods 页面。 
- 选择 openshift-logging 项目。 - 您应该会看到几个用于 OpenShift Logging、Elasticsearch、收集器和 Kibana 的 pod,类似于以下列表: - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 
								切换到 Workloads