1.6. 升级日志收集和转发
日志转发和转发配置现在在新的 API 下指定,这是 observability.openshift.io API 组的一部分。
Vector 是唯一支持的收集器实现。
要升级 Red Hat OpenShift Logging Operator,请按照以下步骤执行:
- 通过执行 "Changes to Cluster logging and forwarding in Logging 6" 中列出的更改来更新日志和转发配置。
- 更新 Red Hat OpenShift Logging Operator。
1.6.1. 对集群日志记录的更改并在日志记录 6 中转发 复制链接链接已复制到粘贴板!
日志转发和转发配置现在在新的 API 下指定,这是 observability.openshift.io API 组的一部分。以下小节重点介绍了与旧 API 资源的不同。
Vector 是唯一支持的收集器实现。
1.6.1.1. 管理、资源分配和工作负载调度 复制链接链接已复制到粘贴板!
用于管理状态的配置、资源请求和限值、容限和节点选择现在是新的 ClusterLogForwarder API 的一部分。
Logging 5.x 配置
日志记录 6 配置
1.6.1.2. 输入规格 复制链接链接已复制到粘贴板!
输入规格是 ClusterLogForwarder 规格的可选部分。管理员可以继续使用预定义的值 应用程序、infrastructure 和 audit 来收集这些源。
命名空间和容器包含和排除项已整合到一个字段中。
5.x 应用程序带有命名空间和容器输入包括和排除
6.x 带有命名空间和容器的应用程序输入包括和排除
"应用程序"、"infrastructure"和"audit"是保留词语,在定义输入时不能用作名称。
对输入接收器的更改包括:
- 在接收器级别明确配置类型。
- 端口设置移到接收器级别。
5.x 输入接收器
6.x 输入接收器
1.6.1.3. 输出规格 复制链接链接已复制到粘贴板!
输出规格的高级更改包括:
- URL 设置移到每个输出类型规格中。
- 调整参数移到每个输出类型规格中。
- 将 TLS 配置与身份验证分离.
- TLS 和身份验证的密钥和 secret/config 映射明确配置。
1.6.1.4. secret 和 TLS 配置 复制链接链接已复制到粘贴板!
现在,每个输出都会将 secret 和 TLS 配置划分为身份验证和 TLS 配置。它们必须在规格中明确定义,而不依赖于管理员使用可识别的密钥定义 secret。升级 TLS 和授权配置需要管理员了解之前识别的密钥才能继续使用现有的 secret。本节中的示例演示了如何配置 ClusterLogForwarder secret 以转发到现有的红帽受管日志存储解决方案。
使用服务帐户令牌和配置映射记录 6.x 输出配置
使用 secret 日志记录 6.x 输出身份验证和 TLS 配置
1.6.1.5. 过滤和管道配置 复制链接链接已复制到粘贴板!
之前的版本中的所有管道属性都已转换为过滤器。单个过滤器在 filters spec 中定义,并由管道引用。
5.x 过滤器
6.x 过滤器和管道规格
drop,Prune, 和 KubeAPIAudit 过滤器保持不变。
1.6.1.6. 验证和状态 复制链接链接已复制到粘贴板!
现在,当创建或更新资源时,大多数验证都会强制提供即时反馈。与之前的版本不同,所有验证在创建后都需要检查资源状态位置。在创建或更新时,一些验证仍然会在资源创建后进行。
ClusterLogForwarder.observability.openshift.io 资源的实例必须满足以下条件,然后才能部署日志收集器:
- 资源状态条件:Authorized, Valid, Ready
- Spec 验证:过滤器、输入、输出、管道
所有 必须评估为 True 的状态值。
1.6.2. 更新 Red Hat OpenShift Logging Operator 复制链接链接已复制到粘贴板!
Red Hat OpenShift Logging Operator 不提供从 Logging 5.x 到 Logging 6.x 的自动升级,因为可以配置日志记录的不同组合。您必须安装所有不同的操作器,以单独管理日志记录。
您可以通过在 OpenShift Container Platform Web 控制台中更改订阅频道或卸载它来更新 Red Hat OpenShift Logging Operator。以下流程演示了通过更改 OpenShift Container Platform Web 控制台中的订阅频道来更新 Red Hat OpenShift Logging Operator。
迁移时,所有尚未压缩的日志都将由 Vector 重新处理。重新处理可能会导致以下问题:
- 在迁移过程中重复的日志。
- Log storage 中有太多的请求接收日志,或请求达到速率限制。
- 由于收集器中所有旧日志读取和处理,因此对磁盘和性能的影响。
- 对 Kube API 的影响。
- 在处理所有旧日志前,向量使用内存和 CPU 的峰值。每个节点可以有多个 GB。
先决条件
-
您已将日志收集和转发配置更新至
observability.openshift.ioAPI。 - 有管理员权限。
- 您可以访问 OpenShift Container Platform Web 控制台,并查看 Administrator 视角。
流程
运行以下命令来创建服务帐户:
注意如果以前的日志转发器部署在命名空间
openshift-logging中,名为instance,则 Operator 的早期版本会创建一个logcollector服务帐户。当您删除集群日志记录时,此服务帐户会被删除。因此,您需要创建新服务帐户。所有其他服务帐户都会被保留。并可在 Logging 6.x 中使用。oc create sa logging-collector -n openshift-logging
$ oc create sa logging-collector -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为服务帐户提供所需的 RBAC 权限。
将
ClusterRole角色绑定到服务帐户,以便能够将日志写入 Red Hat LokiStackoc adm policy add-cluster-role-to-user logging-collector-logs-writer -z logging-collector -n openshift-logging
$ oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z logging-collector -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,分配收集和转发应用程序日志的权限:
oc adm policy add-cluster-role-to-user collect-application-logs -z logging-collector -n openshift-logging
$ oc adm policy add-cluster-role-to-user collect-application-logs -z logging-collector -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,分配收集和转发审计日志的权限:
oc adm policy add-cluster-role-to-user collect-audit-logs -z logging-collector -n openshift-logging
$ oc adm policy add-cluster-role-to-user collect-audit-logs -z logging-collector -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,分配收集和转发基础架构日志的权限:
oc adm policy add-cluster-role-to-user collect-infrastructure-log -z logging-collector -n openshift-logging
$ oc adm policy add-cluster-role-to-user collect-infrastructure-log -z logging-collector -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow
将 Vector checkpoints 移到新路径。
Logging v5 中的 Vector checkpoints 位于路径
/var/lib/vector/input*/checkpoints.json中。将这些检查点移到路径/var/lib/vector/<namespace>/<clusterlogforwarder cr name> firmware中。以下示例使用openshift-logging作为命名空间和收集器作为 ClusterForwarder 自定义资源名称。ns="openshift-logging" cr="collector" for node in $(oc get nodes -o name); do oc debug $node -- chroot /host /bin/bash -c "mkdir -p /var/lib/vector/$ns/$cr" ; done for node in $(oc get nodes -o name); do oc debug $node -- chroot /host /bin/bash -c "chmod -R 755 /var/lib/vector/$ns" ; done for node in $(oc get nodes -o name); do echo "### $node ###"; oc debug $node -- chroot /host /bin/bash -c "cp -Ra /var/lib/vector/input* /var/lib/vector/$ns/$cr/"; done
$ ns="openshift-logging" $ cr="collector" $ for node in $(oc get nodes -o name); do oc debug $node -- chroot /host /bin/bash -c "mkdir -p /var/lib/vector/$ns/$cr" ; done $ for node in $(oc get nodes -o name); do oc debug $node -- chroot /host /bin/bash -c "chmod -R 755 /var/lib/vector/$ns" ; done $ for node in $(oc get nodes -o name); do echo "### $node ###"; oc debug $node -- chroot /host /bin/bash -c "cp -Ra /var/lib/vector/input* /var/lib/vector/$ns/$cr/"; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 OpenShift Container Platform Web 控制台更新 Red Hat OpenShift Logging Operator。
-
导航到 Operators
Installed Operators。 - 选择 openshift-logging 项目。
- 点 Red Hat OpenShift Logging Operator。
- 点 Subscription。在 Subscription details 部分,点 Update channel 链接。
在 Change Subscription Update Channel 窗口中,选择更新频道、stable-6.x,然后点 Save。请注意
cluster-logging.v6.y.z版本。重要仅更新至 N+2 版本,其中 N 是您的当前版本。例如,如果您要从 Logging 5.8 升级,请选择
stable-6.0作为更新频道。不支持升级到早于两个版本的版本。-
等待几秒钟,然后进入 Operators
Installed Operators 来验证 Red Hat OpenShift Logging Operator 版本是否与最新的 cluster-logging.v6.y.z版本匹配。 在 Operators
Installed Operators 页面中,等待 Status 字段报告 Succeeded。 现有 Logging v5 资源将继续运行,但不再由 Operator 管理。在创建新资源后,可以移除这些非受管资源。
-
导航到 Operators