This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.第 8 章 更新集群日志记录
在将 OpenShift Container Platform 集群从 4.4 升级到 4.5 后,您可以将 OpenShift Elasticsearch Operator 和 Cluster Logging Operator 从 4.4 更新至 4.5。
Cluster logging 4.5 引入了新的 Elasticsearch 版本 Elasticsearch 6.8.1 以及增强的安全插件 Open Distro for Elasticsearch。新的 Elasticsearch 版本引入了一个新的 Elasticsearch 数据模型,其中 Elasticsearch 数据只能根据类型(基础架构、应用程序和审核)进行索引。之前,数据按类型(设备和应用程序)和项目进行索引。
由于新的数据模型,更新不会将现有的自定义 Kibana 索引模式和视觉化迁移到新版本。您必须重新创建 Kibana 索引模式和视觉化,以便在更新后匹配新索引。
由于这些更改,您不需要将 cluster logging 更新至 4.5。但是,当您升级到 OpenShift Container Platform 4.6 时,您必须及时将集群日志记录更新至 4.6。
8.1. 更新集群日志记录 复制链接链接已复制到粘贴板!
升级 OpenShift Container Platform 集群后,您可以通过更改 OpenShift Elasticsearch Operator 和 Cluster Logging Operator 的订阅将集群日志记录从 4.5 更新至 4.6。
更新时:
- 您必须在更新 Cluster Logging Operator 前更新 OpenShift Elasticsearch Operator。
您必须更新 OpenShift Elasticsearch Operator 和 Cluster Logging Operator。
当 OpenShift Elasticsearch Operator 已更新但 Cluster Logging Operator 尚未更新时,不能使用 Kibana。
如果在 OpenShift Elasticsearch Operator 前更新 Cluster Logging Operator,则 Kibana 不会更新,并且不会创建 Kibana 自定义资源(CR)。这个问题的临时解决方案是删除 Cluster Logging Operator pod。当 Cluster Logging Operator pod 重新部署时,会创建 Kibana CR。
如果您的集群日志记录版本早于 4.5,则必须将集群日志记录升级到 4.5,然后才能升级到 4.6。
先决条件
- 将 OpenShift Container Platform 集群从 4.5 更新至 4.6。
确保集群日志记录具有健康状态:
-
所有 pod 都为
Ready
状态。 - Elasticsearch 集群处于健康状态。
-
所有 pod 都为
- 备份 Elasticsearch 和 Kibana 数据。
流程
更新 OpenShift Elasticsearch Operator:
-
在 Web 控制台中,点 Operators
Installed Operators。 -
选择
openshift-operators-redhat
项目。 - 点 OpenShift Elasticsearch Operator。
-
点 Subscription
Channel。 - 在 Change Subscription Update Channel 窗口,,选择 4.6 并点 Save。
等待几秒钟,然后点 Operators
Installed Operators。 OpenShift Elasticsearch Operator 显示为 4.6。例如:
OpenShift Elasticsearch Operator 4.6.0-202007012112.p0 provided by Red Hat, Inc
OpenShift Elasticsearch Operator 4.6.0-202007012112.p0 provided by Red Hat, Inc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 等待 Status 的值变为 Succeeded。
-
在 Web 控制台中,点 Operators
更新 Cluster Logging Operator:
-
在 Web 控制台中,点 Operators
Installed Operators。 -
选择
openshift-logging
项目。 - 点 Cluster Logging Operator。
-
点 Subscription
Channel。 - 在 Change Subscription Update Channel 窗口,,选择 4.6 并点 Save。
等待几秒钟,然后点 Operators
Installed Operators。 Cluster Logging Operator 显示为 4.6。例如:
Cluster Logging 4.6.0-202007012112.p0 provided by Red Hat, Inc
Cluster Logging 4.6.0-202007012112.p0 provided by Red Hat, Inc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 等待 Status 的值变为 Succeeded。
-
在 Web 控制台中,点 Operators
检查日志记录组件:
确保所有 Elasticsearch pod 都处于 Ready 状态:
oc get pod -n openshift-logging --selector component=elasticsearch
$ oc get pod -n openshift-logging --selector component=elasticsearch
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY STATUS RESTARTS AGE elasticsearch-cdm-1pbrl44l-1-55b7546f4c-mshhk 2/2 Running 0 31m elasticsearch-cdm-1pbrl44l-2-5c6d87589f-gx5hk 2/2 Running 0 30m elasticsearch-cdm-1pbrl44l-3-88df5d47-m45jc 2/2 Running 0 29m
NAME READY STATUS RESTARTS AGE elasticsearch-cdm-1pbrl44l-1-55b7546f4c-mshhk 2/2 Running 0 31m elasticsearch-cdm-1pbrl44l-2-5c6d87589f-gx5hk 2/2 Running 0 30m elasticsearch-cdm-1pbrl44l-3-88df5d47-m45jc 2/2 Running 0 29m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保 Elasticsearch 集群健康:
oc exec -n openshift-logging -c elasticsearch elasticsearch-cdm-1pbrl44l-1-55b7546f4c-mshhk -- es_cluster_health
$ oc exec -n openshift-logging -c elasticsearch elasticsearch-cdm-1pbrl44l-1-55b7546f4c-mshhk -- es_cluster_health
Copy to Clipboard Copied! Toggle word wrap Toggle overflow { "cluster_name" : "elasticsearch", "status" : "green", } ...
{ "cluster_name" : "elasticsearch", "status" : "green", } ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保创建了 Elasticsearch cron 任务:
oc project openshift-logging
$ oc project openshift-logging
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get cronjob
$ oc get cronjob
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE curator 30 3,9,15,21 * * * False 0 <none> 20s elasticsearch-im-app */15 * * * * False 0 <none> 56s elasticsearch-im-audit */15 * * * * False 0 <none> 56s elasticsearch-im-infra */15 * * * * False 0 <none> 56s
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE curator 30 3,9,15,21 * * * False 0 <none> 20s elasticsearch-im-app */15 * * * * False 0 <none> 56s elasticsearch-im-audit */15 * * * * False 0 <none> 56s elasticsearch-im-infra */15 * * * * False 0 <none> 56s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查日志存储是否已更新至 4.6,并且索引是
绿色
的:oc exec -c elasticsearch <any_es_pod_in_the_cluster> -- indices
$ oc exec -c elasticsearch <any_es_pod_in_the_cluster> -- indices
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证输出是否包含
app-00000x
、infra-00000x
、audit-00000x
、.security
索引。例 8.1. 带有绿色状态索引的输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证日志收集器是否已更新至 4.6:
oc get ds fluentd -o json | grep fluentd-init
$ oc get ds fluentd -o json | grep fluentd-init
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证输出是否包含
fluentd-init
容器:"containerName": "fluentd-init"
"containerName": "fluentd-init"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Kibana CRD 验证日志可视化工具是否已更新至 4.6:
oc get kibana kibana -o json
$ oc get kibana kibana -o json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证输出是否包含具有
ready
状态的 Kibana Pod:例 8.2. 带有就绪 Kibana pod 的输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 Curator 更新至 4.6:
oc get cronjob -o name
$ oc get cronjob -o name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cronjob.batch/curator cronjob.batch/elasticsearch-im-app cronjob.batch/elasticsearch-im-audit cronjob.batch/elasticsearch-im-infra
cronjob.batch/curator cronjob.batch/elasticsearch-im-app cronjob.batch/elasticsearch-im-audit cronjob.batch/elasticsearch-im-infra
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证输出是否包含
elasticsearch-im-*
索引。
更新后的任务
如果使用 Log Forwarding API 转发日志,在 OpenShift Elasticsearch Operator 和 Cluster Logging Operator 完全更新至 4.6 后,您必须将 LogForwarding
自定义资源(CR)替换为 ClusterLogForwarder
CR。