7.10. ログのサードパーティーシステムへの転送
デフォルトで、OpenShift Container Platform クラスターロギングはクラスターロギングカスタムリソースに定義されるデフォルトの内部 Elasticsearch ログストアにログを送信します。
- Fluentd 転送プロトコルを使用したログの送信。Configmap を使用して Fluentd 転送 プロトコルを使用し、Fluent 転送 プロトコルを受け入れる外部ロギングアグリゲーターにログを安全に送信できます。
- syslog を使用したログの送信。Configmap を作成して、syslog プロトコル を使用してログを外部 syslog (RFC 3164) サーバーに送信できます。
または、現在テクノロジープレビューとしてログ転送 API を使用できます。Fluentd プロトコルおよび syslog よりも設定が簡単なログ転送 API は、ログを内部 Elasticsearch ログストアおよび外部の Fluentd ログ集計ソリューションに送信するための設定を公開します。
ログ転送 API はテクノロジープレビュー機能としてのみご利用いただけます。テクノロジープレビュー機能は Red Hat の実稼働環境でのサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。Red Hat は実稼働環境でこれらを使用することを推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。
Red Hat のテクノロジープレビュー機能のサポート範囲についての詳細は、https://access.redhat.com/ja/support/offerings/techpreview/ を参照してください。
ConfigMap を使用してログを転送する方法は非推奨となり、今後のリリースではログ転送 API に置き換えられます。
7.10.1. Fluentd 転送プロトコルを使用したログの転送
Fluentd 転送 プロトコルを使用して、デフォルトの Elasticsearch ログストアではなく外部のログアグリゲーターにログのコピーを送信できます。OpenShift Container Platform クラスターでは、Fluentd 転送 プロトコルを使用して、このプロトコルを受け入れるように設定されたサーバーにログを送信します。外部ログアグリゲーターを OpenShift Container Platform からログを受信するように設定する必要があります。
ログ転送のこの方法は OpenShift Container Platform では非推奨となり、今後のリリースではログ転送 API に置き換えられます。
Fluentd 転送 プロトコルを使用して OpenShift Container Platform をログを送信するように設定するには、外部ログアグリゲーターを参照する openshift-logging
namespace の secure-forward
という ConfigMap を作成します。
OpenShift Container Platform 4.3 以降では、Fluentd 転送 プロトコルを使用するプロセスは変更されています。以下で説明されているように ConfigMap を作成する必要があります。
さらに、設定で必要になる証明書を、Fluentd Pod にマウントされる secure-forward
という名前のシークレットに追加できます。
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 転送 プロトコルを使用してログを転送できるように設定するには、以下を実行します。
転送 パラメーターについて
secure-forward.conf
という名前の設定ファイルを作成します。シークレットおよび 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
mTLS を使用するには、クライアント証明書およびキーパラメーターなどの設定に関する情報として Fluentd のドキュメントを参照してください。
外部 Fluentd サーバーの名前、ホスト、およびポートを設定します。
<server> name 1 host 2 hostlabel 3 port 4 </server> <server> 5 name host </server>
以下は例になります。
<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>
設定ファイルから
openshift-logging
namespace にsecure-forward
という名前の ConfigMap を作成します。$ oc create configmap secure-forward --from-file=secure-forward.conf -n openshift-logging
オプション: レシーバーに必要なシークレットをインポートします。
$ 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
fluentd
Pod を更新し、secure-forward
シークレットおよびsecure-forward
ConfigMap を適用します。$ oc delete pod --selector logging-infra=fluentd
- 外部ログアグリゲーターを OpenShift Container Platform からメッセージを安全に受信できるように設定します。
7.10.2. syslog プロトコルを使用したログの転送
syslog プロトコルを使用して、デフォルトの Elasticsearch ログストアではなく外部の syslog サーバーにログのコピーを送信できます。この syslog プロトコルについては、以下の点に注意してください。
- RFC 5424 ではなく、syslog プロトコル (RFC 3164) を使用する
- TLS に対応していないため、安全ではない
- Kubernetes メタデータ、systemd データその他のメタデータを提供しない
ログ転送のこの方法は OpenShift Container Platform では非推奨となり、今後のリリースではログ転送 API に置き換えられます。
syslog プロトコルには、以下の 2 つのバージョンがあります。
- out_syslog: UDP で通信するバッファーなしの実装は、データをバッファーせずに結果を即時に書き込みます。
- out_syslog_buffered: TCP で通信するバッファーの実装は、データをいくつかのチャンクにバッファリングします。
syslog プロトコルを使用してログ転送を設定するには、ログを転送するために必要な情報を使って syslog.conf
という設定ファイルを作成します。次に、そのファイルを使用して OpenShift Container Platform がログの転送時に使用する openshift-logging
namespace の syslog
という ConfigMap を作成します。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 プロトコル (
syslog
またはsyslog_buffered
のいずれか)。 - 2
- syslog サーバーの完全修飾ドメイン名 (FQDN) または IP アドレス。
- 3
- 接続先のポート番号。デフォルトは
514
です。 - 4
- syslog サーバーの名前。
- 5
- タグからプレフィックスを削除します。デフォルトは
''
(空) です。 - 6
- syslog キーを設定するためのフィールド。
- 7
- syslog ログファシリティーまたはソース。
- 8
- syslog ログの重大度。
- 9
- レコードの重大度とファシリティーを使用するかどうかを決定する(ある場合)。
- 10
- syslog メッセージのペイロードを設定するためのキー。デフォルトは
message
に設定されます。
サンプル 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 プロトコルを使用してログを転送するように設定するには、以下を実行します。
<store>
スタンザ内に以下のパラメーターが含まれるsyslog.conf
という名前の設定ファイルを作成します。syslog プロトコルタイプを指定します。
@type syslog_buffered 1
- 1
- 使用するプロトコル (
syslog
またはsyslog_buffered
のいずれか) を指定します。
外部 syslog サーバーの名前、ホスト、およびポートを設定します。
remote_syslog <remote> 1 port <number> 2 hostname <name> 3
以下は例になります。
remote_syslog syslogserver.openshift-logging.svc.cluster.local port 514 hostname fluentd-server
必要に応じて他の syslog 変数を設定します。
remove_tag_prefix 1 tag_key <key> 2 facility <value> 3 severity <value> 4 use_record <value> 5 payload_key message 6
- 1
- このパラメーターを追加して、
tag
フィールドを syslog プレフィックスから削除します。 - 2
- syslog キーを設定するためのフィールドを指定します。
- 3
- syslog ログファシリティーまたはソースを指定します。値については、RTF 3164 を参照してください。
- 4
- syslog ログの重大度を指定します。値については、RTF 3164 リンクを参照してください。
- 5
true
を指定して、レコードの重大度およびファシリティーを使用します (ある場合)。true
の場合、container_name
、namespace_name
、およびpod_name
は、出力の内容に組み込まれます。- 6
- syslog メッセージのペイロードを設定するためにキーを指定します。デフォルトは
message
に設定されます。
以下は例になります。
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>
設定ファイルから
openshift-logging
namespace にsyslog
という名前の 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.10.3. ログ転送 API を使用したログの転送
ログ転送 API により、コンテナーおよびノードログをクラスター内外の特定のエンドポイントに送信できるようにカスタムパイプラインを設定できます。既存のロギングサービス、外部 Elasticsearch クラスター、外部ログ集計ソリューション、またはセキュリティー情報およびイベント管理 (SIEM) システムなどの OpenShift Container Platform クラスターロギングで管理されていないリモート宛先および内部 OpenShift Container Platform Elasticsearch ログストアにログをタイプ別に送信することができます。
ログ転送 API は現時点ではテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat の実稼働環境でのサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。
詳細は、「テクノロジープレビュー機能のサポート範囲」を参照してください。
異なるタイプのログを異なるシステムに送信して、組織の誰がそれぞれのタイプにアクセスできるかを制御できます。オプションの TLS サポートにより、組織の必要に応じてセキュアな通信を使用してログを送信することができます。
ログ転送 API の使用はオプションです。ログを内部の OpenShift Container Platform Elasticsearch インスタンスのみに転送する必要がある場合は、ログ転送 API を設定しないようにしてください。
7.10.3.1. ログ転送 API について
ログ転送 API を使用してクラスターログを転送するには、outputs および pipelines の組み合わせを使用して、OpenShift Container Platform クラスター内外の特定のエンドポイントにログを送信する必要があります。
デフォルトの内部 OpenShift Container Platform Elasticsearch ログストアのみを使用する必要がある場合は、ログ転送機能は設定しません。
デフォルトで、クラスターロギング Operator はクラスターロギングカスタムリソースに定義されるデフォルトの内部 Elasticsearch ログストアにログを送信します。ログ転送機能を使用するには、カスタム logforwarding
設定ファイルを作成し、指定したエンドポイントにログを送信します。
output はログデータの宛先で、パイプライン は単一のソースまたは 1 つまたは複数の出力の単純なルーティングを定義します。
出力には、以下のいずれかが該当します。
-
elasticsearch
を使用して、外部の Elasticsearch v5.x クラスターおよび/または内部の OpenShift Container Platform Elasticsearch インスタンスにログを転送します。 -
forward
を使用して、ログを外部のログ集計ソリューションに転送します。このオプションは Fluentd forward プロトコルを使用します。
CIDR アノテーションを使用するクラスター全体のプロキシーが有効になっている場合、エンドポイントは IP アドレスではなくサーバー名または FQDN である必要があります。
パイプライン は、データのソースを出力に関連付けます。データのソースは以下のいずれかになります。
-
logs.app
: クラスターで実行される、インフラストラクチャーコンテナーアプリケーションを除くユーザーアプリケーションによって生成されるコンテナーログ。 -
logs.infra
: ジャーナルログなどの、クラスターで実行されるインフラストラクチャーコンポーネントおよび OpenShift Container Platform ノードで生成されるログ。インフラストラクチャーコンポーネントは、openshift*
、kube*
、またはdefault
プロジェクトで実行される Pod です。 -
logs.audit
: ノード監査システム (auditd) で生成されるログ (/var/log/audit/audit.log ファイルに保存される)、および Kubernetes apiserver および OpenShift apiserver の監査ログ。
以下の点に注意してください。
- 内部 OpenShift Container Platform Elasticsearch インスタンスは、監査ログのセキュアなストレージを提供しません。監査ログを転送するシステムが組織および政府の規制に準拠しており、適切にセキュリティーが保護されていることを確認することが推奨されています。OpenShift Container Platform クラスターロギングはこれらの規制に準拠しません。
- 出力は、シークレットを使用する TLS 通信をサポートします。シークレットには、tls.crt、tls.key、および ca-bundler.crt のキーが含まれる必要があります。これらは、それぞれが表す証明書を参照します。転送機能を安全な方法で使用するには、シークレットにキー shared_key が含まれる必要があります。
- キーやシークレット、サービスアカウント、ポートのオープン、またはグローバルプロキシー設定など、外部の宛先で必要となる可能性のある追加設定を作成し、維持する必要があります。
以下の例は、3 つの出力を作成します。
- 内部 OpenShift Container Platform Elasticsearch インスタンス
- 非セキュアな外部で管理される Elasticsearch インスタンス
- セキュアな外部ログアグリゲーター (forward プロトコルを使用)。
3 つのパイプラインは以下を送信します。
- 内部 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
elasticsearch
またはforward
のいずれかの出力タイプ。- 6
- サーバー名、FQDN、または IP アドレスのいずれかのエンドポイントを入力します。CIDR アノテーションを使用するクラスター全体のプロキシーが有効になっている場合、エンドポイントは IP アドレスではなくサーバー名または FQDN である必要があります。内部 OpenShift Container Platform Elasticsearch インスタンスの場合は、
elasticsearch.openshift-logging.svc:9200
を指定します。 - 7
- TLS 通信のエンドポイントで必要なシークレットのオプションの名前。シークレットは
openshift-logging
プロジェクトに存在する必要があります。 - 8
- エンドポイントがシークレットを使用しない場合のオプションの設定 (これにより、非セキュアな通信が発生します)。
- 9
- パイプラインの設定。
- 10
- パイプラインを説明する名前。
- 11
- データソース:
logs.app
、logs.infra
、またはlogs.audit
。 - 12
- CR に設定される単一または複数の出力の名前。
7.10.3.2. ログ転送 API の有効化
API を使用してログを転送する前に、ログ転送 API を有効にする必要があります。
手順
ログ転送 API を有効にするには、以下を実行します。
openshift-logging
プロジェクトでクラスターロギングのカスタムリソース (CR) を編集します。$ oc edit ClusterLogging instance
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: {}
7.10.3.3. ログ転送 API を使用したログ転送の設定
ログ転送を設定するには、クラスターロギングのカスタムリソース (CR) を編集して、clusterlogging.openshift.io/logforwardingtechpreview: enabled
アノテーションを追加し、ログ転送カスタムリソースを作成して出力、パイプラインを指定し、ログ転送を有効にします。
ログ転送を有効にする場合、次の 3 つのソースタイプのすべててのパイプラインを定義する必要があります (logs.app
、logs.infra
、および logs.audit
)。未定義のソースタイプのログはすべてドロップされます。たとえば、logs.app
および log-audit
タイプのパイプラインを指定するものの、logs.infra
タイプのパイプラインを指定していない場合、logs.infra
ログがドロップされます。
手順
API を使用してログ転送を設定するには、以下を実行します。
以下のようなログ転送 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 の namespace は
openshift-logging
である必要があります。 - 3
true
に設定されると、デフォルトのログ転送動作が無効になります。- 4
- 1 つ以上のエンドポイントを追加するには、以下を実行します。
-
elasticseach
またはforward
のいずれかの出力タイプを指定します。 - 出力の名前を入力します。
-
サーバー名、FQDN、または IP アドレスのいずれかのエンドポイントを入力します。CIDR アノテーションを使用するクラスター全体のプロキシーが有効になっている場合、エンドポイントは IP アドレスではなくサーバー名または FQDN である必要があります。内部 OpenShift Container Platform Elasticsearch インスタンスの場合は、
elasticsearch.openshift-logging.svc:9200
を指定します。 -
オプション: TLS 通信のエンドポイントに必要なシークレットの名前を入力します。シークレットは
openshift-logging
プロジェクトに存在する必要があります。 -
エンドポイントがシークレットを使用しない場合に
insecure: true
を指定します (これにより、非セキュアな通信が発生します)。
-
- 5
- 1 つ以上のパイプラインを追加します。
- パイプラインの名前を入力します。
-
ソースタイプ (
logs.app
、logs.infra
、またはlogs.audit
) を指定します。 CR に設定された 1 つ以上の出力の名前を指定します。
注記disableDefaultForwarding: true
を設定する場合、アプリケーション、インフラストラクチャーおよび監査の 3 つの種類のログすべてのパイプラインおよび出力を設定する必要があります。ログの種類に対応するパイプラインおよび出力を指定しない場合、それらのログは保存されず、失われます。
CR オブジェクトを作成します。
$ oc create -f <file-name>.yaml
7.10.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 inputSource: logs.app outputRefs: - fluentd-created-by-user - name: infra-pipeline inputSource: logs.infra outputRefs: - fluentd-created-by-user - name: clo-default-audit-pipeline inputSource: logs.audit outputRefs: - fluentd-created-by-user
7.10.3.4. ログ転送 API の無効化
ログ転送 API を無効にし、指定されたエンドポイントへのログの転送を停止するには、metadata.annotations.clusterlogging.openshift.io/logforwardingtechpreview:enabled
パラメーターをクラスターロギング CR から削除してからログ転送 CR を削除します。コンテナーおよびノードログは内部 OpenShift Container Platform Elasticsearch インスタンスに転送されます。
disableDefaultForwarding=false
を設定すると、クラスターロギングがログを指定されたエンドポイント および デフォルトの内部 OpenShift Container Platform Elasticsearch インスタンスに送信できなくなります。
手順
ログ転送 API を無効にするには、以下を実行します。
openshift-logging
プロジェクトでクラスターロギングのカスタムリソース (CR) を編集します。$ oc edit ClusterLogging instance
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
- このアノテーションを削除します。
ログ転送カスタムリソースを削除します。
$ oc delete LogForwarding instance -n openshift-logging