2.2. Logging 6.0
ClusterLogForwarder
自定义资源(CR)是日志收集和转发的核心配置点。
2.2.1. 输入和输出
输入指定要转发的日志源。日志记录提供内置输入类型: application
、infrastructure
和 audit
,它们从集群的不同部分选择日志。您还可以根据命名空间或 pod 标签定义自定义输入,以微调日志选择。
输出定义发送日志的目的地。每个输出类型都有自己的一组配置选项,允许您自定义行为和身份验证设置。
2.2.2. 接收器输入类型
接收器输入类型可让日志记录系统接受来自外部源的日志。它支持两种接收日志的格式:http
和 syslog
。
ReceiverSpec
定义接收器输入的配置。
2.2.3. 管道和过滤器
Pipelines 决定从输入到输出的日志流。管道由一个或多个输入 refs、输出 refs 和可选过滤器 refs 组成。过滤器可用于在管道中转换或丢弃日志消息。过滤器顺序很重要,随着顺序应用,较早的过滤器可能会阻止日志消息到达后续阶段。
2.2.4. Operator 行为
Cluster Logging Operator 根据 managementState
字段管理收集器的部署和配置:
-
当设置为
Managed
(默认)时,Operator 会主动管理日志记录资源以匹配 spec 中定义的配置。 -
当设置为
Unmanaged
时,Operator 不执行任何操作,供您手动管理日志记录组件。
2.2.5. 验证
日志记录包括广泛的验证规则和默认值,以确保平稳配置体验。ClusterLogForwarder
资源对必填字段、字段之间的依赖关系和输入值格式强制验证检查。为某些字段提供默认值,从而减少了常见场景中明确配置的需求。
2.2.5.1. 快速入门
先决条件
- 集群管理员权限
流程
-
从 OperatorHub 安装
OpenShift Logging
和Loki
Operator。 在
openshift-logging
命名空间中创建LokiStack
自定义资源(CR):apiVersion: loki.grafana.com/v1 kind: LokiStack metadata: name: logging-loki namespace: openshift-logging spec: managementState: Managed size: 1x.extra-small storage: schemas: - effectiveDate: '2022-06-01' version: v13 secret: name: logging-loki-s3 type: s3 storageClassName: gp3-csi tenants: mode: openshift-logging
为收集器创建服务帐户:
$ oc create sa collector -n openshift-logging
为收集器创建
ClusterRole
:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: logging-collector-logs-writer rules: - apiGroups: - loki.grafana.com resourceNames: - logs resources: - application - audit - infrastructure verbs: - create
将
ClusterRole
绑定到服务帐户:$ oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z collector
- 安装 Cluster Observability Operator。
创建一个
UIPlugin
以启用 Observe 选项卡中的 Log 部分:apiVersion: observability.openshift.io/v1alpha1 kind: UIPlugin metadata: name: logging spec: type: Logging logging: lokiStack: name: logging-loki
在 collector 服务帐户中添加额外的角色:
$ oc project openshift-logging $ oc adm policy add-cluster-role-to-user collect-application-logs -z collector $ oc adm policy add-cluster-role-to-user collect-audit-logs -z collector $ oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z collector
创建一个
ClusterLogForwarder
CR 来配置日志转发:apiVersion: observability.openshift.io/v1 kind: ClusterLogForwarder metadata: name: collector namespace: openshift-logging spec: serviceAccount: name: collector outputs: - name: default-lokistack type: lokiStack lokiStack: target: name: logging-loki namespace: openshift-logging authentication: token: from: serviceAccount tls: ca: key: service-ca.crt configMapName: openshift-service-ca.crt pipelines: - name: default-logstore inputRefs: - application - infrastructure outputRefs: - default-lokistack
- 验证日志是否在 OpenShift Web 控制台的 Observe 选项卡的 Log 部分可见。