3.3. 了解日志记录架构
logging 子系统由这些逻辑组件组成:
-
collector- 从每个节点读取容器日志数据,并将日志数据转发到配置的输出。 -
store- 存储用于分析的日志数据;转发器的默认输出。 -
visualization- 用于搜索、查询和查看存储日志的图形界面。
这些组件由 Operator 和自定义资源 (CR) YAML 文件管理。
Red Hat OpenShift 的 logging 子系统会收集容器日志和节点日志。它们被归类为:
-
Application- 非基础架构容器生成的容器日志。 -
Infrastructure- 容器日志来自命名空间kube-*和openshift-\*,节点日志来自journald。 -
audit- 日志来自auditd,kube-apiserver,openshift-apiserver, 和ovn(如果启用)。
日志记录收集器是一个 daemonset,它将 pod 部署到每个 OpenShift Container Platform 节点。系统及基础架构日志由来自操作系统、容器运行时和 OpenShift Container Platform 的日志消息生成。
容器日志由集群中运行的 pod 中运行的容器生成。每个容器生成单独的日志流。收集器从这些源收集日志,并在 ClusterLogForwarder 自定义资源中内部或外部转发它们。
3.3.1. 日志的支持注意事项
日志记录作为一个可安装的组件提供,它有一个不同于 OpenShift Container Platform 的发布周期。Red Hat OpenShift Container Platform 生命周期政策概述了发行版本兼容性。
为 Red Hat OpenShift 配置日志记录子系统的支持方法是使用本文档中介绍的选项进行配置。请勿使用其他配置,因为不受支持。各个 OpenShift Container Platform 发行版本的配置范例可能会有所变化,只有掌握了所有可能的配置,才能稳妥应对这样的配置变化。如果使用本文档中描述的配置以外的配置,您的更改可能会丢失,因为 Operator 会协调差异。按照设计,Operator 会默认将一切还原到定义的状态。
如果必须执行 OpenShift Container Platform 文档中未描述的配置,您需要将 Red Hat OpenShift Logging Operator 设置为 Unmanaged。一个不受管理的 OpenShift Logging 环境不被支持,且不会接收更新,直到 OpenShift Logging 返回到 Managed。
明确不支持以下修改:
- 将日志记录部署到文档中未指定的命名空间。
- 在 OpenShift Container Platform 上安装自定义 Elasticsearch、Kibana、Fluentd 或 Loki 实例。
- 对 Kibana 自定义资源 (CR)或 Elasticsearch CR 的更改。
- 对文档中未指定的 secret 或配置映射的更改。
Red Hat OpenShift 的 logging 子系统是一个建议的收集器,以及应用程序、基础架构和审计日志的规范化程序。它旨在将日志转发到各种支持的系统。
Red Hat OpenShift 的 logging 子系统不是:
- 一个大规模日志收集系统
- 兼容安全信息和事件监控 (SIEM)
- 历史或长日志的保留或存储
- 保证的日志接收器
- 安全存储 - 默认不存储审计日志