5.2. 关于为 Red Hat OpenShift 部署日志记录子系统


OpenShift Container Platform 集群管理员可以使用 OpenShift Container Platform Web 控制台或 CLI 部署 logging 子系统,以安装 OpenShift Elasticsearch Operator 和 Red Hat OpenShift Logging Operator。安装 Operator 后,您可以创建一个 ClusterLogging 自定义资源 (CR) 来调度 logging 子系统 pod 和支持 logging 子系统所需的其他资源。Operator 负责部署、升级和维护日志记录子系统。

ClusterLogging CR 定义包括日志记录堆栈的所有组件在内的完整日志记录子系统环境,以收集、存储和视觉化日志。Red Hat OpenShift Logging Operator 会监视 logging 子系统 CR,并相应地调整日志记录部署。

管理员和应用程序开发人员可以查看他们具有查看访问权限的项目的日志。

如需更多信息,请参阅配置日志收集器

5.2.1. 关于 JSON OpenShift Container Platform Logging

您可以使用 JSON 日志记录配置 Log Forwarding API,将 JSON 字符串解析为结构化对象。您可以执行以下任务:

  • 解析 JSON 日志
  • 为 Elasticsearch 配置 JSON 日志数据
  • 将 JSON 日志转发到 Elasticsearch 日志存储

5.2.2. 关于收集并存储 Kubernetes 事件

OpenShift Container Platform 事件路由器是一个 pod,它监视 Kubernetes 事件,并在 OpenShift Container Platform Logging 中记录它们以收集。您必须手动部署 Event Router。

如需更多信息,请参阅关于收集和存储 Kubernetes 事件

5.2.3. 关于更新 OpenShift Container Platform Logging

OpenShift Container Platform 允许您更新 OpenShift Container Platform 日志记录。您必须在更新 OpenShift Container Platform Logging 时更新以下 Operator:

  • Elasticsearch Operator
  • Cluster Logging Operator

如需更多信息,请参阅关于更新 OpenShift Container Platform Logging

5.2.4. 关于查看集群仪表板

OpenShift Container Platform Logging 仪表板包含 chart,在集群级别显示 Elasticsearch 实例的详情。这些图表可帮助您诊断和预测问题。

如需更多信息,请参阅关于查看集群仪表板

5.2.5. 关于 OpenShift Container Platform Logging 故障排除

您可以通过执行以下任务排除日志问题:

  • 查看日志记录状态
  • 查看日志存储的状态
  • 了解日志记录警报
  • 为红帽支持收集日志记录数据
  • 关键警报故障排除

5.2.6. 关于卸载 OpenShift Container Platform Logging

您可以通过删除 ClusterLogging 自定义资源(CR)来停止日志聚合。在删除 CR 后,还有其它保留集群日志记录组件,您可以选择性地删除它们。

如需更多信息,请参阅 卸载 OpenShift Container Platform Logging

5.2.7. 关于导出字段

日志记录系统导出字段。导出的字段出现在日志记录中,可从 Elasticsearch 和 Kibana 搜索。

如需更多信息,请参阅关于导出字段

5.2.8. 关于日志记录子系统组件

logging 子系统组件包括部署到 OpenShift Container Platform 集群中每个节点的收集器,用于收集所有节点和容器日志并将其写入日志存储。您可以使用集中 web UI 使用汇总的数据创建丰富的视觉化和仪表板。

logging 子系统的主要组件为:

  • collection(收集) - 此组件从集群中收集日志,格式化日志并将其转发到日志存储。当前的实现是 Fluentd。
  • log store(日志存储) - 存储日志的位置。默认是 Elasticsearch。您可以使用默认的 Elasticsearch 日志存储,或将日志转发到外部日志存储。默认日志存储经过优化并测试以进行简短存储。
  • visualization(可视化) - 此 UI 组件用于查看日志、图形和图表等。当前的实现是 Kibana。

在本文中我们可能会互换使用日志存储或 Elasticsearch、视觉化或 Kibana、collection 或 Fluentd、收集或 Fluentd。

5.2.9. 关于日志记录收集器

Red Hat OpenShift 的 logging 子系统会收集容器和节点日志。

默认情况下,日志收集器使用以下源:

  • 所有系统的日志记录的 journald
  • /var/log/containers/*.log 用于所有容器日志

如果您配置了日志收集器来收集审计日志,它会从 /var/log/audit/audit.log 中获取日志信息。

日志记录收集器是一个守护进程集,它将 pod 部署到每个 OpenShift Container Platform 节点。系统及基础架构日志由来自操作系统、容器运行时和 OpenShift Container Platform 的日志消息生成。应用程序日志由 CRI-O 容器引擎生成。Fluentd 从这些源收集日志,并在内部或外部转发 OpenShift Container Platform 中配置的日志。

容器运行时提供少许信息来标识日志消息的来源,如项目、容器名称和容器 ID。这些信息不足以区分日志的来源。如果在日志收集器开始处理日志之前删除了具有指定名称和项目的 Pod,则来自 API 服务器的信息(如标签和注解)可能会不可用。可能没有办法区分来自名称相似的 Pod 和项目的日志消息,也无法追溯日志的来源。这种局限性意味着日志收集和规范化仅属于尽力而为

重要

可用的容器运行时提供少许信息来标识日志消息来源,无法确保唯一的个别日志消息,也不能保证可以追溯这些消息的来源。

如需更多信息,请参阅配置日志收集器

5.2.10. 关于日志存储

OpenShift Container Platform 使用 Elasticsearch (ES) 来存储和整理日志数据。(可选)您可以使用 Log Forwarder API 将日志转发到外部存储。支持多种存储类型,包括 fluentd、rsyslog、kafka 和其他类型。

日志记录子系统 Elasticsearch 实例经过优化并测试,用于大约 7 天的简短存储。如果要更长时间保留日志,建议您将数据移至第三方存储系统。

Elasticsearch 将日志数据从 Fluentd 整理到数据存储或 索引 中,然后将每个索引分成多个碎片(称为 shard(分片) ),分散到 Elasticsearch 集群中的一组 Elasticsearch 节点上。您可以配置 Elasticsearch 来为分片制作备份(称为 replica(副本) ),Elasticsearch 也会分散到 Elasticsearch 节点上。ClusterLogging 自定义资源(CR)允许您指定如何复制分片,以提供数据冗余和故障恢复能力。您还可以使用 ClusterLogging CR 中的保留策略来指定不同类型的日志的保留的时长。

注意

索引模板的主分片数量等于 Elasticsearch 数据节点的数目。

Red Hat OpenShift Logging Operator 和相应的 OpenShift Elasticsearch Operator 确保每个 Elasticsearch 节点都使用带有自身存储卷的唯一部署来进行部署。在需要时,可以使用 ClusterLogging 自定义资源(CR)来增加 Elasticsearch 节点的数量。有关配置存储的注意事项,请参阅 Elasticsearch 文档

注意

高可用性 Elasticsearch 环境需要至少三个 Elasticsearch 节点,各自在不同的主机上。

Elasticsearch 索引中应用的基于角色的访问控制 (RBAC) 可让开发人员控制对日志的访问。管理员可以获取所有日志,开发人员只能访问自己项目中的日志。

如需更多信息,请参阅配置日志存储

5.2.11. 关于日志记录视觉化

OpenShift Container Platform 使用 Kibana 显示由 Fluentd 收集并由 Elasticsearch 索引的日志数据。

Kibana 是基于浏览器的控制台界面,可通过直方图、折线图、饼图、其他视觉化方式,来查询、发现和视觉化您的 Elasticsearch 数据。

如需更多信息,请参阅配置日志可视化工具

5.2.12. 关于事件路由

Event Router 是一个 pod,它监视 OpenShift Container Platform 事件,以便可以通过 Red Hat OpenShift 的 logging 子系统来收集这些事件。Event Router 从所有项目收集事件,并将其写入 STDOUT。Fluentd 收集这些事件并将其转发到 OpenShift Container Platform Elasticsearch 实例。Elasticsearch 将事件索引到 infra 索引。

您必须手动部署 Event Router。

如需更多信息,请参阅收集并存储 Kubernetes 事件

5.2.13. 关于日志转发

默认情况下,Red Hat OpenShift 的日志记录子系统将日志发送到 ClusterLogging 自定义资源(CR)中定义的默认内部 Elasticsearch 日志存储。如果要将日志转发到其他日志聚合器,您可以使用日志转发功能将日志发送到集群内部或外部的特定端点。

如需更多信息,请参阅将日志转发到第三方系统

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.