7.9. レガシー Fluentd メソッドを使用したログの転送

Fluentd 転送 プロトコルを使用して、設定ファイルおよび設定マップを作成して、ログを OpenShift Container Platform クラスター外の宛先に送信することができます。外部ログアグリゲーターを OpenShift Container Platform からログデータを受信するように設定する必要があります。

重要

ログ転送のこの方法は、OpenShift Container Platform では非推奨となり、今後のリリースでは取り除かれます。

Fluentd 転送 プロトコルを使用してログを送信するには、外部のログアグリゲーターを参照する 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>

手順

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 に設定します。
    4
    プライベート CA 証明書ファイルへのパスを /etc/ocp-forward/ca_cert.pem として指定します。
    5
    必要に応じて Fluentd バッファーパラメーター を指定します。
    6
    オプションで、このサーバーの名前を入力します。
    7
    サーバーのホスト名または IP を指定します。
    8
    サーバーのホストラベルを指定します。
    9
    サーバーのポートを指定します。
    10
    オプションで、サーバーを追加します。2 つ以上のサーバーを指定する場合、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