7.9. 使用旧的 Fluentd 方法转发日志

您可以通过创建配置文件和配置映射,使用 Fluentd forward 协议将日志发送到 OpenShift Container Platform 集群外的目的地。您需要配置外部日志聚合器,以接收来自 OpenShift Container Platform 的日志数据。

重要

此转发日志的方法在 OpenShift Container Platform 中已弃用,并将在以后的发行版本中删除。

要使用 Fluentd forward 协议发送日志,请创建一个名为 secure-forward.conf 的配置文件,指向外部日志聚合器。然后,使用该文件在 openshift-logging 项目中创建一个名为 secure-forward 的配置 映射,OpenShift Container Platform 在转发日志时使用它。

先决条件

  • 您必须有配置为使用指定协议或格式接收日志数据的日志服务器。

Fluentd 配置文件示例

<store>
  @type forward
  <security>
    self_hostname ${hostname}
    shared_key "fluent-receiver"
  </security>
  transport tls
  tls_verify_hostname false
  tls_cert_path '/etc/ocp-forward/ca-bundle.crt'
  <buffer>
    @type file
    path '/var/lib/fluentd/secureforwardlegacy'
    queued_chunks_limit_size "1024"
    chunk_limit_size "1m"
    flush_interval "5s"
    flush_at_shutdown "false"
    flush_thread_count "2"
    retry_max_interval "300"
    retry_forever true
    overflow_action "#{ENV['BUFFER_QUEUE_FULL_ACTION'] || 'throw_exception'}"
  </buffer>
  <server>
    host fluent-receiver.example.com
    port 24224
  </server>
</store>

流程

配置 OpenShift Container Platform 使用旧的 Fluentd 方法转发日志:

  1. 创建名为 secure-forward 的 配置文件,并在 <store> 部分中指定类似如下的参数:

    <store>
      @type forward
      <security>
        self_hostname ${hostname}
        shared_key <key> 1
      </security>
      transport tls 2
      tls_verify_hostname <value> 3
      tls_cert_path <path_to_file> 4
      <buffer> 5
        @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
      </buffer>
      <server>
        name 6
        host 7
        hostlabel 8
        port 9
      </server>
      <server> 10
        name
        host
      </server>
    1
    输入节点间共享的密钥。
    2
    指定 tls 启用 TLS 验证。
    3
    设置为 true 以验证服务器认证主机名。设置为 false 以忽略服务器 cert 主机名。
    4
    将私有 CA 证书文件的路径指定为 /etc/ocp-forward/ca_cert.pem
    5
    根据需要指定 Fluentd 缓冲参数
    6
    可选:为这个服务器输入一个名称。
    7
    指定服务器的主机名或 IP。
    8
    指定服务器的主机标识。
    9
    指定服务器的端口。
    10
    (可选)添加额外的服务器。如果您指定了两个或者两个以上的服务器,forward 会以轮循(round-robin)顺序使用这些服务器节点。

    要使用 Mutual TLS(mTLS)身份验证,请参阅 Fluentd 文档来获取有关客户端证书、密钥参数和其他设置的信息。

  2. openshift-logging 项目中创建名为 secure-forward 的配置映射:

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

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

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