第 5 章 了解 Red Hat OpenShift 的日志记录子系统
作为集群管理员,您可以部署 logging 子系统来聚合 OpenShift Container Platform 集群中的所有日志,如节点系统日志、应用程序容器日志和基础架构日志等。logging 子系统会汇总整个集群中的这些日志,并将它们存储在默认日志存储中。您可以使用 Kibana web 控制台来视觉化日志数据。
logging 子系统聚合了以下类型的日志:
-
application
- 由集群中运行的用户应用程序生成的容器日志(基础架构容器应用程序除外)。 -
infrastructure
- 在集群和 OpenShift Container Platform 节点上运行的基础架构组件生成的日志,如 journal 日志。基础架构组件是在openshift*
、kube*
或default
项目中运行的 pod。 -
audit
- 由 auditd 生成的日志,节点审计系统存储在 /var/log/audit/audit.log 文件中,以及 Kubernetes apiserver 和 OpenShift apiserver 的审计日志。
注意
由于内部 OpenShift Container Platform Elasticsearch 日志存储无法为审计日志提供安全存储,所以审计日志默认不会存储在内部 Elasticsearch 实例中。如果要将审计日志发送到默认的内部 Elasticsearch 日志存储,例如要在 Kibana 中查看审计日志,则必须使用 Log Forwarding API,如将 审计日志转发到日志存储 中所述。
5.1. OpenShift Container Platform Logging 常用术语表
此术语表定义了 OpenShift Container Platform Logging 内容中使用的常用术语。
- 注解
- 您可以使用注解将元数据附加到对象。
- Cluster Logging Operator (CLO)
- Cluster Logging Operator 提供了一组 API,用于控制应用程序、基础架构和审计日志的集合和转发。
- 自定义资源 (CR)
-
CR 是 Kubernetes API 的扩展。要配置 OpenShift Container Platform Logging 和日志转发,您可以自定义
ClusterLogging
和ClusterLogForwarder
自定义资源。 - 事件路由器
- 事件路由器是一个 pod,它监视 OpenShift Container Platform 事件。它使用 OpenShift Container Platform Logging 收集日志。
- Fluentd
- Fluentd 是一个日志收集器,它驻留在每个 OpenShift Container Platform 节点上。它收集应用程序、基础架构和审计日志并将其转发到不同的输出。
- 垃圾回收
- 垃圾回收是清理集群资源的过程,如终止的容器和没有被任何正在运行的 pod 引用的镜像。
- Elasticsearch
- Elasticsearch 是一个分布式搜索和分析引擎。OpenShift Container Platform 使用 ELasticsearch 作为 OpenShift Container Platform Logging 的默认日志存储。
- Elasticsearch Operator
- Elasticsearch Operator 用于在 OpenShift Container Platform 上运行 Elasticsearch 集群。Elasticsearch Operator 为 Elasticsearch 集群操作提供自助服务,供 OpenShift Container Platform Logging 使用。
- 索引
- 索引是一种数据结构技术,用于快速查找和访问数据。索引通过最大程度减少处理查询时所需的磁盘访问量来优化性能。
- JSON 日志记录
- OpenShift Container Platform Logging Log Forwarding API 可让您将 JSON 日志解析到结构化对象,并将其转发到 OpenShift Container Platform Logging 管理的 Elasticsearch 或 Log Forwarding API 支持的任何其他第三方系统。
- Kibana
- Kibana 是基于浏览器的控制台界面,可通过直方图、行图和 pie chart 查询、发现和视觉化您的 Elasticsearch 数据。
- Kubernetes API 服务器
- Kubernetes API 服务器验证并配置 API 对象的数据。
- 标签
- 标签是可用于组织和选择对象子集(如 pod)的键值对。
- 日志记录
- 通过 OpenShift Container Platform Logging,您可以聚合应用程序、基础架构和审计日志。您还可以将它们存储在默认日志存储中,将它们转发到第三方系统,并查询和视觉化存储在默认日志存储中的存储日志。
- 日志记录收集器
- 日志记录收集器从集群收集日志,对其进行格式化,并将它们转发到日志存储或第三方系统。
- 日志存储
- 日志存储用于存储聚合的日志。您可以使用默认的 Elasticsearch 日志存储,或将日志转发到外部日志存储。默认日志存储经过优化并测试以进行简短存储。
- 日志可视化工具
- 日志可视化工具是用户界面 (UI) 组件,可用于查看日志、图形、图表和其他指标等信息。当前的实现是 Kibana。
- node
- 节点是 OpenShift Container Platform 集群中的 worker 机器。节点是虚拟机 (VM) 或物理计算机。
- Operator
- Operator 是 OpenShift Container Platform 集群中打包、部署和管理 Kubernetes 应用程序的首选方法。Operator 将人类操作知识编码到一个软件程序中,易于打包并与客户共享。
- pod
- pod 是 Kubernetes 中的最小逻辑单元。pod 由一个或多个容器组成,并在 worker 节点上运行。
- 基于角色的访问控制 (RBAC)
- RBAC 是一个关键安全控制,可确保集群用户和工作负载只能访问执行其角色所需的资源。
- 分片
- Elasticsearch 将日志数据从 Fluentd 整理到数据存储或索引中,然后将每个索引划分为多个碎片,称为分片 (shard)。
- taint
- 污点可确保 pod 调度到适当的节点上。您可以在节点上应用一个或多个污点。
- 容限 (tolerations)
- 您可以将容限应用到 pod。容限 (toleration) 允许调度程序调度具有匹配污点的 pod。
- Web 控制台
- 用于管理 OpenShift Container Platform 的用户界面(UI)。