6.3. OpenShift 数据基础的集群日志记录
您可以部署集群日志记录来聚合一系列 OpenShift Container Platform 服务的日志。有关如何部署集群日志记录的详情,请参考部署集群日志记录。
在初始 OpenShift Container Platform 部署时,默认情况下不配置 OpenShift Data Foundation,OpenShift Container Platform 集群将依赖于节点提供的默认存储。您可以编辑 OpenShift 日志记录(ElasticSearch)的默认配置,使其由 OpenShift Data Foundation 支持,使 OpenShift Data Foundation 支持日志(Elasticsearch)。
始终确保您具有适用于这些服务的大量存储容量。如果您对这些关键服务的存储空间不足,日志记录应用将变得不可用,很难恢复。
红帽建议为这些服务配置较短的策展和保留间隔。详情请参阅 OpenShift Container Platform 文档中的 集群日志记录 Curator。
如果您缺少这些服务的存储空间,请联系红帽客户支持。
6.3.1. 配置持久性存储
您可以使用存储类名称和大小参数为 Elasticsearch 集群配置持久性存储类和大小。Cluster Logging Operator 根据这些参数为 Elasticsearch 集群中的每个数据节点创建一个持久性卷声明。例如:
spec: logStore: type: "elasticsearch" elasticsearch: nodeCount: 3 storage: storageClassName: "ocs-storagecluster-ceph-rbd” size: "200G"
本例指定,集群中的每个数据节点将绑定到请求 200GiB
的 ocs-storagecluster-ceph-rbd
存储的持久性卷声明。每个主分片将由单个副本支持。分片的副本会在所有节点之间复制,并且始终可用;如果因为单一冗余策略至少存在两个节点,则可以恢复副本。有关 Elasticsearch 复制策略的详情,请参考关于部署和配置集群日志记录中的 Elasticsearch 复制策略。
缺少存储块将导致默认存储支持部署。例如:
spec: logStore: type: "elasticsearch" elasticsearch: nodeCount: 3 storage: {}
如需更多信息,请参阅配置集群日志记录。
6.3.2. 配置集群日志记录以使用 OpenShift Data Foundation
按照本节中的说明,将 OpenShift Data Foundation 配置为 OpenShift 集群日志记录的存储。
当您首次在 OpenShift 数据基础中配置日志记录时,您可以获取所有日志。但是,在卸载和重新安装日志记录后,会删除旧日志并只处理新日志。
先决条件
- 具有 OpenShift Web 控制台的管理访问权限。
-
OpenShift Data Foundation Operator 在
openshift-storage
命名空间上安装并运行。 -
Cluster logging Operator 已安装并在
openshift-logging
命名空间中运行。
流程
-
从 OpenShift Web 控制台左侧窗格中,点击 Administration
Custom Resource Definitions。 - 在 Custom Resource Definitions 页面中点 ClusterLogging。
- 在 Custom Resource Definition Overview 页面上,从 Actions 菜单中选择 View Instances,或者点击 Instances 选项卡。
在 Cluster Logging 页面上,点击 Create Cluster Logging。
您可能需要刷新页面来加载数据。
在 YAML 中,将 storageClassName 替换为使用 provisioner
openshift-storage.rbd.csi.ceph.com
的storageclass
。在下例中,storageclass 的名称为ocs-storagecluster-ceph-rbd
:apiVersion: "logging.openshift.io/v1" kind: "ClusterLogging" metadata: name: "instance" namespace: "openshift-logging" spec: managementState: "Managed" logStore: type: "elasticsearch" elasticsearch: nodeCount: 3 storage: storageClassName: ocs-storagecluster-ceph-rbd size: 200G # Change as per your requirement redundancyPolicy: "SingleRedundancy" visualization: type: "kibana" kibana: replicas: 1 curation: type: "curator" curator: schedule: "30 3 * * *" collection: logs: type: "fluentd" fluentd: {}
如果 OpenShift Data Foundation 节点带有污点,您必须添加容限,以启用为日志调度 daemonset pod。
spec: [...] collection: logs: fluentd: tolerations: - effect: NoSchedule key: node.ocs.openshift.io/storage value: 'true' type: fluentd
- 点击 Save。
验证步骤
验证持久卷声明是否已绑定到
elasticsearch
Pod。-
进入 Storage
Persistent Volume Claims。 -
将 Project 下拉菜单设置为
openshift-logging
。 验证持久卷声明是否可见,状态为
Bound
,附加到elasticsearch-
* pod。图 6.4. 创建并绑定集群日志记录
-
进入 Storage
验证是否在使用新集群日志记录。
-
点 Workload
Pods。 -
将项目设置为
openshift-logging
。 -
验证新的
elasticsearch-
* Pod 的状态是否为Running
。 -
点新的
elasticsearch-
* Pod 查看 pod 详情。 -
向下滚动到 Volumes,再验证 elasticsearch 卷是否具有与新持久性卷声明匹配的 Type,如
elasticsearch-elasticsearch-cdm-9r624biv-3
。 - 点 Persistent Volume Claim 名称,然后在 PersistentVolumeClaim Overview 页面中验证存储类名称。
-
点 Workload
确保使用较短的 Curator 时间,以避免在附加到 Elasticsearch Pod 的 PV 上 PV 完整场景。
您可以配置 Curator,以根据保留设置删除 Elasticsearch 数据。建议您将以下默认索引数据保留 5 天设为默认值。
config.yaml: | openshift-storage: delete: days: 5
如需了解更多详细信息,请参阅 Elasticsearch 数据。
要卸载由持久性卷声明支持的集群日志记录,请使用相应部署指南的卸载章节中从 OpenShift Data Foundation 中删除集群日志记录 Operator 的步骤。