×

ClusterLogForwarder 自定义资源 (CR) 是日志收集和转发的中心配置点。

输入和输出

输入指定要转发的日志源。日志记录提供内置输入类型:applicationinfrastructureaudit,它们从集群的不同部分选择日志。您还可以根据命名空间或 Pod 标签定义自定义输入,以微调日志选择。

输出定义发送日志的目标位置。每种输出类型都有自己的一套配置选项,允许您自定义行为和身份验证设置。

接收器输入类型

接收器输入类型使日志记录系统能够接受来自外部源的日志。它支持两种接收日志的格式:httpsyslog

ReceiverSpec 定义接收器输入的配置。

管道和过滤器

管道确定日志从输入到输出的流程。管道由一个或多个输入引用、输出引用和可选过滤器引用组成。过滤器可用于转换或丢弃管道中的日志消息。过滤器的顺序很重要,因为它们是按顺序应用的,较早的过滤器可能会阻止日志消息到达后阶段。

操作员行为

集群日志记录操作员根据managementState字段管理收集器的部署和配置。

  • 设置为Managed(默认值)时,操作员会主动管理日志记录资源以匹配规范中定义的配置。

  • 设置为Unmanaged时,操作员不执行任何操作,允许您手动管理日志记录组件。

验证

日志记录包含广泛的验证规则和默认值,以确保流畅且无错误的配置体验。ClusterLogForwarder资源对必需字段、字段之间的依赖关系以及输入值的格式执行验证检查。为某些字段提供默认值,减少了在常见场景中需要显式配置的需求。

快速入门

先决条件
  • 集群管理员权限

步骤
  1. 从 OperatorHub 安装OpenShift LoggingLoki操作员。

  2. 创建一个秘密以访问现有的对象存储桶。

    AWS 的示例命令
    $ oc create secret generic logging-loki-s3 \
      --from-literal=bucketnames="<bucket_name>" \
      --from-literal=endpoint="<aws_bucket_endpoint>" \
      --from-literal=access_key_id="<aws_access_key_id>" \
      --from-literal=access_key_secret="<aws_access_key_secret>" \
      --from-literal=region="<aws_region_of_your_bucket>" \
      -n openshift-logging
  3. 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
  4. 为收集器创建一个服务帐户。

    $ oc create sa collector -n openshift-logging
  5. ClusterRole绑定到服务帐户。

    $ oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z collector -n openshift-logging
  6. 安装集群可观测性操作员。

  7. 创建一个UIPlugin以在“观察”选项卡中启用“日志”部分。

    apiVersion: observability.openshift.io/v1alpha1
    kind: UIPlugin
    metadata:
      name: logging
    spec:
      type: Logging
      logging:
        lokiStack:
          name: logging-loki
  8. 向收集器服务帐户添加其他角色。

    $ oc adm policy add-cluster-role-to-user collect-application-logs -z collector -n openshift-logging
    $ oc adm policy add-cluster-role-to-user collect-audit-logs -z collector -n openshift-logging
    $ oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z collector -n openshift-logging
  9. 创建一个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
  10. 验证日志是否在 OpenShift Web 控制台的“观察”选项卡的“日志”部分可见。