7.9. 레거시 Fluentd 방법을 사용하여 로그 전달

Fluentd 전달 프로토콜을 사용하여 구성 파일 및 구성 맵을 생성하여 OpenShift Container Platform 클러스터 외부의 대상으로 로그를 보낼 수 있습니다. OpenShift Container Platform에서 로그 데이터를 수신하도록 외부 로그 집계기를 구성해야 합니다.

중요

이 로그 전달 방법은 OpenShift Container Platform에서 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다.

Fluentd forward 프로토콜을 사용하여 로그를 보내려면 외부 로그 수집기를 가리키는 secure-forward.conf라는 구성 파일을 생성합니다. 그런 다음 해당 파일을 사용하여 OpenShift Container Platform에서 로그를 전달할 때 사용하는 openshift-logging 프로젝트에서 secure-forward라는 구성 맵을 생성합니다.

사전 요구 사항

  • 지정된 프로토콜 또는 형식을 사용하여 로깅 데이터를 수신하도록 구성된 로깅 서버가 있어야 합니다.

샘플 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>

프로세스

레거시 Fluentd 방법을 사용하여 로그를 전달하도록 OpenShift Container Platform을 구성하려면 다음을 수행하십시오.

  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로 설정합니다.
    4
    사설 CA 인증서 파일의 경로를 /etc/ocp-forward/ca_cert.pem으로 지정합니다.
    5
    필요에 따라 Fluentd 버퍼 매개변수를 지정합니다.
    6
    선택적으로 이 서버의 이름을 입력합니다.
    7
    서버의 호스트 이름 또는 IP를 지정합니다.
    8
    서버의 호스트 레이블을 지정합니다.
    9
    서버의 포트를 지정합니다.
    10
    선택적으로 추가 서버를 추가합니다. 둘 이상의 서버를 지정하면 forward는 이러한 서버 노드를 라운드 로빈 순서로 사용합니다.

    상호 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