This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.6.8. OpenShift Container Platform ログの外部デバイスへの送信
Elasticsearch ログを、外部でホストされた Elasticsearch インスタンスまたは外部 syslog サーバーなどの外部デバイスに送信することができます。また、ログを外部ログアグリゲーターに送信するように Fluentd を設定することもできます。
特に指示がない場合は、これらの設定を実行する前にクラスターロギングを管理外の状態に設定する必要があります。詳細は、「クラスターロギングの管理状態の変更」を参照してください。
6.8.1. Fluentd をログを外部 Elasticsearch インスタンスに送信するように設定する リンクのコピーリンクがクリップボードにコピーされました!
Fluentd は、Elasticsearch デプロイメント設定の ES_HOST
、ES_PORT
、OPS_HOST
、および OPS_PORT
環境変数の値にログを送信します。アプリケーションログは ES_HOST
の宛先に、操作ログは OPS_HOST
の宛先に送信されます。
AWS Elasticsearch インスタンスへのログの直接送信はサポートされていません。Fluentd Secure Forward を使用して、fluent-plugin-aws-elasticsearch-service
プラグインで設定した制御対象の Fluentd のインスタンスにログを送信してください。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされていること。
- クラスターロギングを管理外の状態に設定する。
手順
ログを特定の Elasticsearch インスタンスに送信するには、以下を実行します。
openshift-logging プロジェクトで
fluentd
daemonset を編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
外部 Elasticsearch インスタンスにアプリケーションログと操作ログの両方を含めるには、
ES_HOST
とOPS_HOST
を同じ宛先に設定し、ES_PORT
とOPS_PORT
が同一の値を持つことを確認します。 - TLS の外部でホストされる Elasticsearch インスタンスを設定します。相互 TLS を使用する外部でホストされた Elasticsearch インスタンスのみが許可されます。
指定された Kibana と Elasticsearch イメージを使用していない場合、同じマルチテナント機能は利用できず、データは特定プロジェクトへのユーザーアクセスによる制限を受けません。
6.8.2. Fluentd をログを外部 syslog サーバーに送信するように設定する リンクのコピーリンクがクリップボードにコピーされました!
fluent-plugin-remote-syslog
プラグインをホストで使用して、ログを外部 syslog サーバーに送信します。
前提条件
クラスターロギングを管理外の状態に設定する。
手順
openshift-logging
プロジェクトのfluentd
daemonset で環境変数を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 必要なリモート syslog ホスト。各ホストで必須です。
これによって 2 つの宛先が作成されます。
host1
の syslog サーバーはデフォルトポート514
でメッセージを受信し、host2
は同じメッセージをポート5555
で受信します。または、
openshift-logging
プロジェクトに独自のfluentd
daemonset を設定できます。Fluentd 環境変数
Expand パラメーター 説明 USE_REMOTE_SYSLOG
デフォルトは
false
です。fluent-plugin-remote-syslog
gem を使用できるようにするには、true
に設定します。REMOTE_SYSLOG_HOST
(必須) リモート syslog サーバーのホスト名または IP アドレス。
REMOTE_SYSLOG_PORT
接続先のポート番号。デフォルトは
514
です。REMOTE_SYSLOG_SEVERITY
syslog の重大度を設定します。デフォルトは
debug
です。REMOTE_SYSLOG_FACILITY
syslog ファシリティーを設定します。デフォルトは
local0
です。REMOTE_SYSLOG_USE_RECORD
デフォルトは
false
です。レコードの重大度フィールドおよびファシリティーフィールドを使用して syslog メッセージに設定するには、true
に設定します。REMOTE_SYSLOG_REMOVE_TAG_PREFIX
タグからプレフィックスを削除します。デフォルトは
''
(空) です。REMOTE_SYSLOG_TAG_KEY
これが指定されている場合、このフィールドをキーとして使用してレコードを検索し、syslog メッセージにタグを設定します。
REMOTE_SYSLOG_PAYLOAD_KEY
これが指定されている場合、このフィールドをキーとして使用してレコードを検索し、syslog メッセージにペイロードを設定します。
REMOTE_SYSLOG_TYPE
トランスポート層プロトコルタイプを設定します。デフォルトは
syslog_buffered
になり、これにより、TCP プロトコルが設定されます。UDP に切り替えるには、これをsyslog
に設定します。警告この実装は安全ではないため、接続にスヌーピングがないことを保証できる環境でのみ使用してください。
6.8.3. ログを外部ログアグリゲーターに送信するように Fluentd を設定する リンクのコピーリンクがクリップボードにコピーされました!
out_forward プラグインを使用して、デフォルトの Elasticsearch ではなく外部のログアグリゲーターにログのコピーを送信するように Fluentd を設定することができます。ローカルにホストされている Fluentd による処理の後に、ログレコードをさらに処理することができます。
forward
プラグインは Fluentd によってのみサポートされます。out_forward プラグインはクライアント側 (センダー) を実装し、in_forward プラグインはサーバー側 (レシーバー) を実装します。
Out_forward を使用してログを送信するように OpenShift Container Platform を設定するには、受信側を参照する openshift
という ConfigMap を作成します。レシーバーで、in_forward プラグインを OpenShift Container Platform からログを受信するように設定します。in_forward プラグインの使用方法についての詳細は、 Fluentd ドキュメントを参照してください。
-logging namespace に secure-
forward
デフォルトの secure-forward.conf
セクション
手順
Fluentd ログのコピーを外部ログアグリゲーターに送信するには、以下を実行します。
Fluentd 設定マップの
secure-forward.conf
セクションを編集します。oc edit configmap/fluentd -n openshift-logging
$ oc edit configmap/fluentd -n openshift-logging
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 外部 Fluentd サーバーの名前、ホスト、およびポートを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CA 証明書とプライベートキーへのパスを
secure-forward.conf
セクションに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は例になります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mTLS を使用するには、クライアント証明書およびキーパラメーターなどの設定に関する情報として Fluentd のドキュメント を参照してください。
secure-forward.conf
で使用される証明書を Fluentd Pod にマウントされる既存のシークレットに追加します。your_ca_cert
とyour_private_key
の値はconfigmap/logging-fluentd
のsecure-forward.conf
で指定されている値と一致している必要があります。oc patch secrets/fluentd --type=json \ --patch "[{'op':'add','path':'/data/your_ca_cert','value':'$(base64 -w0 /path/to/your_ca_cert.pem)'}]" oc patch secrets/fluentd --type=json \ --patch "[{'op':'add','path':'/data/your_private_key','value':'$(base64 -w0 /path/to/your_private_key.pem)'}]"
$ oc patch secrets/fluentd --type=json \ --patch "[{'op':'add','path':'/data/your_ca_cert','value':'$(base64 -w0 /path/to/your_ca_cert.pem)'}]" $ oc patch secrets/fluentd --type=json \ --patch "[{'op':'add','path':'/data/your_private_key','value':'$(base64 -w0 /path/to/your_private_key.pem)'}]"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記your_private_key
は、汎用的な名前に置き換えます。これは、JSON パスへのリンクであり、使用しているホストシステムのパスではありません。以下は例になります。
oc patch secrets/fluentd --type=json \ --patch "[{'op':'add','path':'/data/ca.crt','value':'$(base64 -w0 /etc/fluent/keys/ca.crt)'}]" oc patch secrets/fluentd --type=json \ --patch "[{'op':'add','path':'/data/ext-agg','value':'$(base64 -w0 /etc/fluent/keys/ext-agg.pem)'}]"
$ oc patch secrets/fluentd --type=json \ --patch "[{'op':'add','path':'/data/ca.crt','value':'$(base64 -w0 /etc/fluent/keys/ca.crt)'}]" $ oc patch secrets/fluentd --type=json \ --patch "[{'op':'add','path':'/data/ext-agg','value':'$(base64 -w0 /etc/fluent/keys/ext-agg.pem)'}]"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 外部アグリゲーターで
secure-forward.conf
ファイルを設定し、Fluentd からのメッセージを安全に受け入れられるようにします。外部アグリゲーターを設定する際は、Fluentd からのメッセージを安全に受信できる必要があります。
詳細情報は、inforward プラグインのセットアップ方法について、および out_forward プラグインを参照してください。