7.9. 将日志转发到第三方系统

默认情况下,OpenShift Container Platform 集群日志将日志发送到集群日志记录自定义资源中定义的默认内部 Elasticsearch 日志存储。

  • 使用 Fluentd 转发协议发送日志。您可以创建一个 Configmap,使用 Fluentd 转发 协议 将日志安全发送到可以接受 Fluent 转发 协议的外部日志聚合器。
  • 使用 syslog 发送日志。您可以创建一个 Configmap 来使用 syslog 协议 将日志发送到外部 syslog (RFC 3164) 服务器。

另外,您还可以使用 Log Forwarding API(当前为技术预览)。Log Forwarding API 比 Fluentd 协议和 syslog 更容易配置,可以提供将日志发送到内部 Elasticsearch 日志存储和外部 Fluentd 日志聚合解决方案的配置。

重要

Log Forwarding API 只是一个技术预览功能。技术预览功能不被红帽产品服务等级协议 (SLA) 支持,且可能在功能方面有缺陷。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的详情,请参阅 https://access.redhat.com/support/offerings/techpreview/

使用 ConfigMap 转发日志的方法已弃用,并将在以后的版本中由 Log Forwarding API 替换。

7.9.1. 使用 Fluentd 转发协议转发日志

您可以使用 Fluentd 的转发(forward)协议,将 Fluentd 配置为将其日志的副本发送到外部日志聚合器,而不是发送到默认的 Elasticsearch 存储。在 OpenShift Container Platform 集群中,您可以使用 Fluentd 转发 协议将日志发送到配置为接受该协议的服务器。您需要配置外部日志聚合器,以接收 OpenShift Container Platform 中的日志。

注意

此转发日志的方法在 OpenShift Container Platform 中已弃用,并将在以后的版本中由 Log Forwarding API 替代。

要将 OpenShift Container Platform 配置为使用 Fluentd 转发协议来发送日志,在 openshift-logging 命名空间内创建一个名为 secure-forward 的 ConfigMap 来指向一个外部的日志聚合系统。

重要

从 OpenShift Container Platform 4.3 开始,使用 Fluentd 转发协议的过程发生了变化。现在,需要创建一个 ConfigMap,如下所述。

另外,您还可以将配置所需的证书添加到名为 secure-forward 的 secret 中,该 secret 将被挂载到 Fluentd Pod 中。

secure-forward.conf 示例

<store>
  @type forward
  <security>
    self_hostname ${hostname} # ${hostname} is a placeholder.
    shared_key "fluent-receiver"
  </security>
  transport tls
  tls_verify_hostname false           # Set false to ignore server cert hostname.

  tls_cert_path '/etc/ocp-forward/ca-bundle.crt'
  <buffer>
    @type file
    path '/var/lib/fluentd/secureforwardlegacy'
    queued_chunks_limit_size "#{ENV['BUFFER_QUEUE_LIMIT'] || '1024' }"
    chunk_limit_size "#{ENV['BUFFER_SIZE_LIMIT'] || '1m' }"
    flush_interval "#{ENV['FORWARD_FLUSH_INTERVAL'] || '5s'}"
    flush_at_shutdown "#{ENV['FLUSH_AT_SHUTDOWN'] || 'false'}"
    flush_thread_count "#{ENV['FLUSH_THREAD_COUNT'] || 2}"
    retry_max_interval "#{ENV['FORWARD_RETRY_WAIT'] || '300'}"
    retry_forever true
    # the systemd journald 0.0.8 input plugin will just throw away records if the buffer
    # queue limit is hit - 'block' will halt further reads and keep retrying to flush the
    # buffer to the remote - default is 'exception' because in_tail handles that case
    overflow_action "#{ENV['BUFFER_QUEUE_FULL_ACTION'] || 'exception'}"
  </buffer>
  <server>
    host fluent-receiver.openshift-logging.svc  # or IP
    port 24224
  </server>
</store>

基于配置的 secure-forward ConfigMap 示例

apiVersion: v1
data:
 secure-forward.conf: "<store>
     \ @type forward
     \ <security>
     \   self_hostname ${hostname} # ${hostname} is a placeholder.
     \   shared_key \"fluent-receiver\"
     \ </security>
     \ transport tls
     \ tls_verify_hostname false           # Set false to ignore server cert hostname.
     \ tls_cert_path '/etc/ocp-forward/ca-bundle.crt'
     \ <buffer>
     \   @type file
     \   path '/var/lib/fluentd/secureforwardlegacy'
     \   queued_chunks_limit_size \"#{ENV['BUFFER_QUEUE_LIMIT'] || '1024' }\"
     \   chunk_limit_size \"#{ENV['BUFFER_SIZE_LIMIT'] || '1m' }\"
     \   flush_interval \"#{ENV['FORWARD_FLUSH_INTERVAL'] || '5s'}\"
     \   flush_at_shutdown \"#{ENV['FLUSH_AT_SHUTDOWN'] || 'false'}\"
     \   flush_thread_count \"#{ENV['FLUSH_THREAD_COUNT'] || 2}\"
     \   retry_max_interval \"#{ENV['FORWARD_RETRY_WAIT'] || '300'}\"
     \   retry_forever true
     \   # the systemd journald 0.0.8 input plugin will just throw away records if the buffer
     \   # queue limit is hit - 'block' will halt further reads and keep retrying to flush the
     \   # buffer to the remote - default is 'exception' because in_tail handles that case
     \   overflow_action \"#{ENV['BUFFER_QUEUE_FULL_ACTION'] || 'exception'}\"
     \ </buffer>
     \ <server>
     \   host fluent-receiver.openshift-logging.svc  # or IP
     \   port 24224
     \ </server>
     </store>"
kind: ConfigMap
metadata:
  creationTimestamp: "2020-01-15T18:56:04Z"
  name: secure-forward
  namespace: openshift-logging
  resourceVersion: "19148"
  selfLink: /api/v1/namespaces/openshift-logging/configmaps/secure-forward
  uid: 6fd83202-93ab-d851b1d0f3e8

流程

配置 OpenShift Container Platform,以使用 Fluentd 转发协议转发日志:

  1. forward 参数创建一个名为 secure-forward.conf 的配置文件:

    1. 配置 secret 和 TLS 信息:

       <store>
        @type forward
      
        self_hostname ${hostname} 1
        shared_key <SECRET_STRING> 2
      
        transport tls 3
      
        tls_verify_hostname true 4
        tls_cert_path <path_to_file> 5
      1
      指定自动生成的证书通用名称 (CN) 的默认值。
      2
      输入在节点间共享的密钥
      3
      指定 tls 启用 TLS 验证。
      4
      设置为 true 以验证服务器认证主机名。设置为 false 以忽略服务器 cert 主机名。
      5
      指定到私有 CA 证书文件的路径 /etc/ocp-forward/ca_cert.pem

      要使用 mTLS,请参阅 Fluentd 文档 来获取有关客户端证书和密钥参数及其他设置的信息。

    2. 配置外部 Fluentd 服务器的名称、主机和端口。

        <server>
          name 1
          host 2
          hostlabel 3
          port 4
        </server>
        <server> 5
          name
          host
        </server>
      1
      可选:为这个服务器输入一个名称。
      2
      指定服务器的主机名或 IP。
      3
      指定服务器的主机标识。
      4
      指定服务器的端口。
      5
      (可选)添加额外的服务器。如果您指定了两个或者两个以上的服务器,forward 会以轮循(round-robin)顺序使用这些服务器节点。

      例如:

        <server>
          name externalserver1
          host 192.168.1.1
          hostlabel externalserver1.example.com
          port 24224
        </server>
        <server>
          name externalserver2
          host externalserver2.example.com
          port 24224
        </server>
        </store>
  2. openshift-logging 命名空间中创建一个名为 secure-forward 的 ConfigMap:

    $ oc create configmap secure-forward --from-file=secure-forward.conf -n openshift-logging
  3. 可选:导入服务器所需的任何 secret:

    $ oc create secret generic secure-forward --from-file=<arbitrary-name-of-key1>=cert_file_from_fluentd_receiver --from-literal=shared_key=value_from_fluentd_receiver

    例如:

    $ oc create secret generic secure-forward --from-file=ca-bundle.crt=ca-for-fluentd-receiver/ca.crt --from-literal=shared_key=fluentd-receiver
  4. 刷新 fluentd Pod 以应用 secure-forward secret 和 secure-forward ConfigMap:

    $ oc delete pod --selector logging-infra=fluentd
  5. 配置外部的日志聚会系统以安全地接受来自 OpenShift Container Platform 的信息。

7.9.2. 使用 syslog 协议转发日志

您可以使用 syslog 协议将日志副本发送到外部 syslog 服务器,而不是默认的 Elasticsearch 日志存储。注意以下有关 syslog 协议的信息:

  • 使用 syslog 协议 (RFC 3164) ,而不是 RFC 5424
  • 不支持 TLS,因此不提供安全功能
  • 不提供 Kubernetes 元数据、systemd 数据或其他元数据
注意

此转发日志的方法在 OpenShift Container Platform 中已弃用,并将在以后的版本中由 Log Forwarding API 替代。

syslog 协议有两个版本:

要配置日志转发来使用 syslog 协议,创建名为 syslog.conf 的配置文件,并提供转发日志所需的信息。然后,使用该文件在 openshift-logging 命名空间中创建名为 syslog 的 ConfigMap,OpenShift Container Platform 在转发日志时使用该文件。您需要配置 syslog 服务器以接收 OpenShift Container Platform 的日志。

重要

从 OpenShift Container Platform 4.3 开始,使用 syslog 协议的过程发生了变化。现在,需要创建一个 ConfigMap,如下所述。

您可以通过在配置文件中指定单独的<store> 小节来把日志转发到多个 syslog 服务器。

syslog.conf示例

<store>
@type syslog_buffered 1
remote_syslog rsyslogserver.openshift-logging.svc.cluster.local 2
port 514 3
hostname fluentd-4nzfz 4
remove_tag_prefix tag 5
tag_key ident,systemd.u.SYSLOG_IDENTIFIER 6
facility local0 7
severity info 8
use_record true 9
payload_key message 10
</store>

1
syslog 协议:syslogsyslog_buffered.
2
Syslog 服务器的完全限定域名 (FQDN) 或 IP 地址。
3
要连接的端口号。默认值为 514
4
Syslog 服务器的名称。
5
从标签中删除前缀,默认为 ''(空白)。默认为false。
6
设置 syslog 键的字段。
7
Syslog 日志工具或源。
8
Syslog 日志严重性。
9
决定是否使用记录中的严重性和工具(如果可用)。
10
设置 syslog 消息有效负载的键值。默认为false。

基于示例 syslog.conf 的示例 syslog ConfigMap

kind: ConfigMap
apiVersion: v1
metadata:
  name: syslog
  namespace: openshift-logging
data:
  syslog.conf: |
    <store>
     @type syslog_buffered
     remote_syslog syslogserver.openshift-logging.svc.cluster.local
     port 514
     hostname fluentd-4nzfz
     remove_tag_prefix tag
     tag_key ident,systemd.u.SYSLOG_IDENTIFIER
     facility local0
     severity info
     use_record true
     payload_key message
    </store>

流程

配置 OpenShift Container Platform 使用 syslog 协议转发日志:

  1. 创建名为 syslog.conf 的配置文件,该文件在 <store> 部分中包括以下参数 :

    1. 指定 syslog 协议类型:

      @type syslog_buffered 1
      1
      指定要使用的协议,可以是: syslogsyslog_buffered
    2. 配置外部 Fluentd 服务器的名称、主机和端口。

      remote_syslog <remote> 1
      port <number> 2
      hostname <name> 3
      1
      指定 syslog 服务器的 FQDN 或 IP 地址。
      2
      指定接收方的端口。
      3
      为这个 syslog 服务器指定名称。

      例如:

      remote_syslog syslogserver.openshift-logging.svc.cluster.local
      port 514
      hostname fluentd-server
    3. 根据需要配置其他 syslog 变量:

      remove_tag_prefix 1
      tag_key <key> 2
      facility <value>  3
      severity <value>  4
      use_record <value> 5
      payload_key message 6
      1
      添加此参数从 syslog 前缀中删除 tag 字段。
      2
      指定设置 syslog 键的字段。
      3
      指定 syslog 日志工具或源。如需值,请参阅 RTF 3164。
      4
      指定 syslog 日志的严重性。如需值,请参阅链接:RTF 3164。
      5
      如果可用,请指定 true 来使用记录中的严重性和工具。如果为 true$1则输出内容中包含 container _name、namespace _name 和 pod_name
      6
      指定设置 syslog 消息有效负载的键。默认为false。

      例如:

      facility local0
      severity info

      其响应类似于如下:

      <store>
      @type syslog_buffered
      remote_syslog syslogserver.openshift-logging.svc.cluster.local
      port 514
      hostname fluentd-4nzfz
      tag_key ident,systemd.u.SYSLOG_IDENTIFIER
      facility local0
      severity info
      use_record false
      </store>
  2. openshift-logging 命名空间中创建一个名为 secure-forward 的 ConfigMap:

    $ oc create configmap syslog --from-file=syslog.conf -n openshift-logging

    Cluster Logging Operator 会重新部署 Fluentd Pod。如果 Pod 没有重新部署,您可以删除 Fluentd Pod 来强制重新部署。

    $ oc delete pod --selector logging-infra=fluentd

7.9.3. 使用 Log Forwarding API 转发日志

通过 Log Forwarding API,管理员可以配置自定义管道,将容器和节点日志发送到集群内部或外部的特定端点。您可以根据类型,将日志发送到 OpenShift Container Platform 内部的 Elasticsearch 日志存储,和不受 OpenShift Container Platform 集群日志记录管理的系统,如现有的日志记录服务、外部 Elasticsearch 集群、外部日志聚合解决方案或安全信息和事件管理 (SIEM) 系统。

重要

请注意,Log Fowarding API 目前还只是一个技术预览。技术预览功能不包括在红帽生产服务级别协议(SLA)中,且其功能可能并不完善。因此,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关详细信息,请参阅红帽技术预览功能支持范围

您可以向不同的系统发送不同类型的日志,以便能够控制机构中的不同人可以访问不同日志类别。可选的 TLS 支持确保了您可以使用您的机构所需的安全通讯方式发送日志。

注意

使用 Log Fowarding API 是可选的。如果您只希望将日志转发到内部 OpenShift Container Platform Elasticsearch 实例,请不要配置 Log Forwarding API。

7.9.3.1. 了解 Log Forwarding API

使用 Log Forwarding API 转发集群日志需要结合 outputspipelines,将日志发送到 OpenShift Container Platform 集群内部和外部的特定端点。

注意

如果只使用默认的内部 OpenShift Container Platform Elasticsearch 存储,不要配置 Log Forwarding 功能。

默认情况下,Cluster Logging Operator 将日志发送到默认的内部 Elasticsearch 存储(由 Cluster Logging Custom Resource 定义)。要使用 Log Forwarding 功能,您需要创建一个自定义 logforwarding 配置文件,将日志发送到您指定的目的地。

输出(output)是日志数据的目的地,管道(pipeline)定义了从一个源到一个或多个输出的简单路由。

输出可以是:

  • elasticsearch 将日志转发到外部 Elasticsearch v5.x 集群,和/或内部 OpenShift Container Platform Elasticsearch 实例。
  • forward 转发日志到外部日志聚合解决方案。这个选项使用 Fluentd 转发协议。
注意

如果启用了使用 CIDR 注解的集群范围代理,端点必须是服务器名称或 FQDN,而不是 IP 地址。

管道(pipeline)将数据源与输出相关联。数据源是以下之一:

  • logs.app - 由集群中运行的用户应用程序生成的容器日志(基础架构容器应用程序除外)。
  • logs.infra - 在集群和 OpenShift Container Platform 节点上运行的基础架构组件生成的日志,如 journal 日志。基础架构组件是在 openshift*kube*default 项目中运行的 pod。
  • logs.audit - 由节点审计系统 (auditd) 生成的日志,这些日志保存在 /var/log/audit/audit.log 文件中,以及 Kubernetes apiserver 和 OpenShift apiserver 的审计日志。

请注意:

  • 内部 OpenShift Container Platform Elasticsearch 实例不会为审计日志提供安全存储。您需要自己确保转发审计日志的系统符合您所在机构及政府的相关要求,并具有适当的安全性。OpenShift Container Platform 集群日志记录本身并不会遵循这些规范。
  • 通过使用 secret,输出支持 TLS 通讯。secret 必须具有以下密钥: tls.crttls.keyca-Bundler.crt ,指向它们所代表的相应证书。在使用安全的方式进行转发时,secret 必须具有密钥 shared_key
  • 您需要负责创建和维护外部目的地可能需要的额外配置,如密钥和 secret 、服务帐户、端口打开或全局代理服务器配置。

以下示例创建了三个输出:

  • 内部 OpenShift Container Platform Elasticsearch 实例,
  • 无安全保护的外部管理的 Elasticsearch 实例,
  • 使用转发协议的具有安全保护的外部日志聚合程序。

三个管道发送:

  • 应用程序日志记录发送到内部 OpenShift Container Platform Elasticsearch,
  • 基础架构日志发送到外部 Elasticsearch 实例,
  • 通过 forward 协议将审计日志记录到安全设备。

日志转发输出和管道示例

apiVersion: "logging.openshift.io/v1alpha1"
kind: "LogForwarding"
metadata:
  name: instance 1
  namespace: openshift-logging
spec:
  disableDefaultForwarding: true 2
  outputs: 3
   - name: elasticsearch 4
     type: "elasticsearch"  5
     endpoint: elasticsearch.openshift-logging.svc:9200 6
     secret: 7
        name: fluentd
   - name: elasticsearch-insecure
     type: "elasticsearch"
     endpoint: elasticsearch-insecure.svc.messaging.cluster.local
     insecure: true 8
   - name: secureforward-offcluster
     type: "forward"
     endpoint: https://secureforward.offcluster.com:24224
     secret:
        name: secureforward
  pipelines: 9
   - name: container-logs 10
     inputSource: logs.app 11
     outputRefs: 12
     - elasticsearch
     - secureforward-offcluster
   - name: infra-logs
     inputSource: logs.infra
     outputRefs:
     - elasticsearch-insecure
   - name: audit-logs
     inputSource: logs.audit
     outputRefs:
     - secureforward-offcluster

1
日志转发 CR 的名称必须是 instance
2
禁用默认的日志转发行为的参数。
3
输出配置。
4
描述输出的名称。
5
输出的类型可以是 elasticsearchforward
6
输入端点,可以是服务器名称,也可以是 FQDN 或 IP 地址。如果启用了使用 CIDR 注解的集群范围代理,端点必须是服务器名称或 FQDN,而不是 IP 地址。对于内部 OpenShift Container Platform Elasticsearch 实例,指定 elasticsearch.openshift-logging.svc:9200
7
TLS 通信端点所需的 secret 的名称(可选)。secret 必须存在于 openshift-logging 项目中。
8
如果端点不使用 secret(可选设置),则会造成不安全的通信。
9
管道配置。
10
描述管道的名称。
11
源类型:logs.applogs.infralogs.audit
12
在 CR 中配置的一个或多个输出的名称。

7.9.3.2. 启用 Log Forwarding API

您必须先启用 Log Forwarding API,然后才能使用 API 转发日志。

流程

启用 Log Forwarding API:

  1. openshift-logging 项目中编辑集群日志记录自定义资源 (CR):

    $ oc edit ClusterLogging instance
  2. 添加 clusterlogging.openshift.io/logforwardingtechpreview 注解并设置为 enabled

    apiVersion: "logging.openshift.io/v1"
    kind: "ClusterLogging"
    metadata:
      annotations:
        clusterlogging.openshift.io/logforwardingtechpreview: enabled 1
      name: "instance"
      namespace: "openshift-logging"
    spec:
    
    ...
    
      collection: 2
        logs:
          type: "fluentd"
          fluentd: {}
    1
    启用和禁用 Log Forwarding API。设置为 enabled 来使用日志转发功能。如果只使用 OpenShift Container Platform Elasticsearch 实例,则将其设置为 disabled 或不添加注解。
    2
    在 Cluster Logging CR 的 spec.collection 部分中必须定义使用 Fluentd。

7.9.3.3. 使用 Log Forwarding API 配置日志转发

要配置日志转发,请编辑集群日志记录自定义资源 (CR) 来添加 clusterlogging.openshift.io/logforwardingtechpreview: enabled 注解并创建一个日志转发自定义资源来指定输出、管道并启用日志转发。

如果启用日志转发,您应该为三种源类型都定义一个管道:logs.applogs.infralogs.audit。来自任何未定义源类型的日志将会被丢弃。例如:如果您为 logs.applog-audit 类型指定了管道,但没有为 logs.infra 类型指定管道,则 logs.infra 的日志会被丢弃。

流程

使用 API 进行日志转发:

  1. 创建一个类似以下示例的 Log Forwarding CR YAML 文件:

    apiVersion: "logging.openshift.io/v1alpha1"
    kind: "LogForwarding"
    metadata:
      name: instance 1
      namespace: openshift-logging 2
    spec:
      disableDefaultForwarding: true 3
      outputs: 4
       - name: elasticsearch
         type: "elasticsearch"
         endpoint: elasticsearch.openshift-logging.svc:9200
         secret:
            name: elasticsearch
       - name: elasticsearch-insecure
         type: "elasticsearch"
         endpoint: elasticsearch-insecure.svc.messaging.cluster.local
         insecure: true
       - name: secureforward-offcluster
         type: "forward"
         endpoint: https://secureforward.offcluster.com:24224
         secret:
            name: secureforward
      pipelines: 5
       - name: container-logs
         inputSource: logs.app
         outputRefs:
         - elasticsearch
         - secureforward-offcluster
       - name: infra-logs
         inputSource: logs.infra
         outputRefs:
         - elasticsearch-insecure
       - name: audit-logs
         inputSource: logs.audit
         outputRefs:
         - secureforward-offcluster
    1
    日志转发 CR 的名称必须是 instance
    2
    日志转发 CR 的命名空间必须是 openshift-logging
    3
    设置为 true 可禁用默认的日志转发行为。
    4
    添加一个或多个端点:
    • 指定输出的类型,可以是 elasticseachforward
    • 输入输出的名称。
    • 输入端点,可以是服务器名称,也可以是 FQDN 或 IP 地址。如果启用了使用 CIDR 注解的集群范围代理,端点必须是服务器名称或 FQDN,而不是 IP 地址。对于内部 OpenShift Container Platform Elasticsearch 实例,指定 elasticsearch.openshift-logging.svc:9200
    • 可选:为 TLS 通信输入端点所需的 secret 名称。secret 必须存在于 openshift-logging 项目中。
    • 如果端点不使用 secret,则指定 insecure: true ,这会造成不安全的通信。
    5
    添加一个或多个管道:
    • 为管道输入一个名称
    • 指定源类型: logs.applogs.infralogs.audit
    • 指定在 CR 中配置的一个或多个输出的名称。

      注意

      如果设置了 disableDefaultForwarding: true ,必须为所有三种类型的日志(应用程序、基础架构和审核)配置管道和输出。如果您没有为其中的一个日志类型指定管道和输出,则相关日志将不会被存储并将丢失。

  2. 创建 CR 对象。

    $ oc create -f <file-name>.yaml
7.9.3.3.1. 日志转发自定义资源示例

典型的日志转发配置类似以下示例。

以下日志转发自定义资源会将所有日志发送到安全的外部 Elasticsearch 日志存储:

转发到 Elasticsearch 日志存储的自定义资源示例

apiVersion: logging.openshift.io/v1alpha1
kind: LogForwarding
metadata:
  name: instance
  namespace: openshift-logging
spec:
  disableDefaultForwarding: true
  outputs:
    - name: user-created-es
      type: elasticsearch
      endpoint: 'elasticsearch-server.openshift-logging.svc:9200'
      secret:
        name: piplinesecret
  pipelines:
    - name: app-pipeline
      inputSource: logs.app
      outputRefs:
        - user-created-es
    - name: infra-pipeline
      inputSource: logs.infra
      outputRefs:
        - user-created-es
    - name: audit-pipeline
      inputSource: logs.audit
      outputRefs:
        - user-created-es

以下日志转发自定义资源使用 Fluentd forward 协议将所有日志发送到安全的 Fluentd 实例。

使用 forward 协议的自定义资源样本

apiVersion: logging.openshift.io/v1alpha1
kind: LogForwarding
metadata:
  name: instance
  namespace: openshift-logging
spec:
  disableDefaultForwarding: true
  outputs:
    - name: fluentd-created-by-user
      type: forward
      endpoint: 'fluentdserver.openshift-logging.svc:24224'
      secret:
        name: fluentdserver
  pipelines:
    - name: app-pipeline
      inputType: logs.app
      outputRefs:
        - fluentd-created-by-user
    - name: infra-pipeline
      inputType: logs.infra
      outputRefs:
        - fluentd-created-by-user
    - name: clo-default-audit-pipeline
      inputType: logs.audit
      outputRefs:
        - fluentd-created-by-user

7.9.3.4. 禁用 Log Forwarding API

要禁用 Log Forwarding API,并停止将日志转发到特定端点,从 Cluster Logging CR 中删除 metadata.annotations.clusterlogging.openshift.io/logforwardingtechpreview:enabled 参数,并删除 Log Forwarding CR。容器和节点日志将转发到内部 OpenShift Container Platform Elasticsearch 实例。

注意

设置 disableDefaultForwarding=false 可防止集群日志记录发送到指定的端点以及默认的 OpenShift Container Platform Elasticsearch 实例。

流程

禁用 Log Forwarding API:

  1. openshift-logging 项目中编辑集群日志记录自定义资源 (CR):

    $ oc edit ClusterLogging instance
  2. 删除 clusterlogging.openshift.io/logforwardingtechpreview 注解:

    apiVersion: "logging.openshift.io/v1"
    kind: "ClusterLogging"
    metadata:
      annotations:
        clusterlogging.openshift.io/logforwardingtechpreview: enabled 1
      name: "instance"
      namespace: "openshift-logging"
    ....
    1
    删除此注解。
  3. 创建日志转发自定义资源:

    $ oc delete LogForwarding instance -n openshift-logging

为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。