第 3 章 关于日志记录
作为集群管理员,您可以在 Red Hat OpenShift Service on AWS 集群上部署 logging 子系统,并使用它来收集和聚合节点系统日志、应用程序容器日志和基础架构日志。您可以将日志转发到所选的日志输出,包括在线集群、红帽管理的日志存储。您还可以根据部署的日志存储解决方案,在 Red Hat OpenShift Service on AWS Web 控制台或 Kibana Web 控制台中视觉化您的日志数据。
Kibana Web 控制台现已弃用,计划在以后的日志记录发行版本中删除。
Red Hat OpenShift Service on AWS 集群管理员可以使用 Operator 部署 logging 子系统。如需更多信息,请参阅为 Red Hat OpenShift 安装日志记录子系统。
Operator 负责部署、升级和维护日志记录子系统。安装 Operator 后,您可以创建一个 ClusterLogging
自定义资源(CR)来调度 logging 子系统 pod 和支持 logging 子系统所需的其他资源。您还可以创建一个 ClusterLogForwarder
CR 来指定收集哪些日志、如何转换日志以及它们被转发到的位置。
因为内部 Red Hat OpenShift Service on AWS Elasticsearch 日志存储不为审计日志提供安全存储,所以审计日志默认不会存储在内部 Elasticsearch 实例中。如果要将审计日志发送到默认的内部 Elasticsearch 日志存储,例如要在 Kibana 中查看审计日志,则必须使用 Log Forwarding API,如 将审计日志转发到日志存储 中所述。
3.1. 日志记录架构
logging 子系统的主要组件为:
- Collector
收集器是一个 daemonset,它将 pod 部署到每个 Red Hat OpenShift Service on AWS 节点上。它从每个节点收集日志数据,转换数据并将其转发到配置的输出。您可以使用 Vector 收集器或旧的 Fluentd 收集器。
注意从日志记录版本 5.6 Fluentd 开始,计划在以后的发行版本中删除。红帽将在当前发行生命周期中提供对这个功能的程序漏洞修复和支持,但这个功能将不再获得改进,并将被删除。作为 Fluentd 的替代选择,您可以使用 Vector。
- 日志存储
日志存储存储用于分析的日志数据,是日志转发器的默认输出。您可以使用默认的 LokiStack 日志存储、传统的 Elasticsearch 日志存储,或将日志转发到额外的外部日志存储。
注意自日志记录版本 5.4.3 起,OpenShift Elasticsearch Operator 已被弃用,计划在以后的发行版本中删除。红帽将在当前发行生命周期中提供对这个功能的程序漏洞修复和支持,但这个功能将不再获得改进,并将被删除。您可以使用 Loki Operator 作为 OpenShift Elasticsearch Operator 的替代方案来管理默认日志存储。
- 视觉化
您可以使用 UI 组件查看日志数据的可视化表示。UI 提供了一个图形界面,用于搜索、查询和查看存储的日志。如果您使用 LokiStack 作为默认日志存储,Red Hat OpenShift Service on AWS Web 控制台 UI 通过启用 Red Hat OpenShift Service on AWS 控制台插件来提供。如果使用 Elasticsearch 作为默认日志存储,您可以使用 Kibana。
注意Kibana Web 控制台现已弃用,计划在以后的日志记录发行版本中删除。
Red Hat OpenShift 的 logging 子系统会收集容器日志和节点日志。它们被归类为:
- 应用程序日志
- 由集群中运行的用户应用程序生成的容器日志(基础架构容器应用程序除外)。
- 基础架构日志
-
由基础架构命名空间生成的容器日志:
openshift*
、kube*
或default
,以及来自节点的 journald 信息。 - 审计日志
-
由 auditd 生成的日志,节点审计系统存储在 /var/log/audit/audit.log 文件中,以及
auditd
、kube-apiserver
、openshift-apiserver
服务以及ovn
项目(如果启用)中的日志。