2.2. Logging 6.0


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

2.2.1. 输入和输出

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

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

2.2.2. 接收器输入类型

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

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. 快速入门

先决条件

  • 集群管理员权限

流程

  1. 从 OperatorHub 安装 OpenShift LoggingLoki Operator。
  2. 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
  3. 为收集器创建服务帐户:

    $ oc create sa collector -n openshift-logging
  4. 为收集器创建 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
  5. ClusterRole 绑定到服务帐户:

    $ oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z collector
  6. 安装 Cluster Observability Operator。
  7. 创建一个 UIPlugin 以启用 Observe 选项卡中的 Log 部分:

    apiVersion: observability.openshift.io/v1alpha1
    kind: UIPlugin
    metadata:
      name: logging
    spec:
      type: Logging
      logging:
        lokiStack:
          name: logging-loki
  8. 在 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
  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 控制台的 Observe 选项卡的 Log 部分可见。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.