13.4. Elasticsearch ログストアの設定
Elasticsearch 6 を使用して、ログデータを保存および整理できます。
ログストアに加えることのできる変更には、以下が含まれます。
- Elasticsearch クラスターのストレージ
- シャードをクラスター内の複数のデータノードにレプリケートする方法 (完全なレプリケーションからレプリケーションなしまで)
- Elasticsearch データへの外部アクセス
13.4.1. ログストレージの設定
					ClusterLogging カスタムリソース (CR) を変更することで、ロギングで使用するログストレージのタイプを設定できます。
				
前提条件
- 管理者権限がある。
- 
							OpenShift CLI (oc) がインストールされている。
- Red Hat OpenShift Logging Operator と内部ログストア (LokiStack または Elasticsearch) がインストールされている。
- 
							ClusterLoggingCR が作成されている。
Logging 5.9 リリースに、OpenShift Elasticsearch Operator の更新バージョンは含まれていません。ロギング 5.8 でリリースされた OpenShift Elasticsearch Operator を現在使用している場合、Logging 5.8 の EOL まで引き続き Logging で機能します。OpenShift Elasticsearch Operator を使用してデフォルトのログストレージを管理する代わりに、Loki Operator を使用できます。Logging のライフサイクルの日付の詳細は、Platform Agnostic Operator を参照してください。
手順
- ClusterLoggingCR の- logStore仕様を変更します。- ClusterLoggingCR の例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - LokiStack をログストアとして指定する - ClusterLoggingCR の例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次のコマンドを実行して、 - ClusterLoggingCR を適用します。- oc apply -f <filename>.yaml - $ oc apply -f <filename>.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
13.4.2. 監査ログのログストアへの転送
					ロギングデプロイメントでは、デフォルトでコンテナーおよびインフラストラクチャーのログは ClusterLogging カスタムリソース (CR) に定義された内部ログストアに転送されます。
				
セキュアなストレージを提供しないため、監査ログはデフォルトで内部ログストアに転送されません。お客様の責任において、監査ログを転送するシステムが組織および政府の規制に準拠し、適切に保護されていることを確認してください。
					このデフォルト設定が要件を満たす場合、ClusterLogForwarder CR を設定する必要はありません。ClusterLogForwarder CR が存在する場合、default 出力を含むパイプラインが定義されている場合を除き、ログは内部ログストアに転送されません。
				
手順
ログ転送 API を使用して監査ログを内部 Elasticsearch インスタンスに転送するには、以下を実行します。
- ClusterLogForwarderCR オブジェクトを定義する YAML ファイルを作成または編集します。- すべてのログタイプを内部 Elasticsearch インスタンスに送信するために CR を作成します。変更せずに以下の例を使用できます。 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- パイプラインは、指定された出力を使用して転送するログのタイプを定義します。デフォルトの出力は、ログを内部 Elasticsearch インスタンスに転送します。
 注記- パイプラインの 3 つのすべてのタイプのログをパイプラインに指定する必要があります (アプリケーション、インフラストラクチャー、および監査)。ログの種類を指定しない場合、それらのログは保存されず、失われます。 
- 既存の - ClusterLogForwarderCR がある場合は、パイプラインを監査ログのデフォルト出力に追加します。デフォルトの出力を定義する必要はありません。以下に例を示します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- このパイプラインは、外部インスタンスに加えて監査ログを内部 Elasticsearch インスタンスに送信します。
 
 
13.4.3. ログ保持時間の設定
デフォルトの Elasticsearch ログストアがインフラストラクチャーログ、アプリケーションログ、監査ログなどの 3 つのログソースのインデックスを保持する期間を指定する 保持ポリシー を設定できます。
					保持ポリシーを設定するには、ClusterLogging カスタムリソース (CR) に各ログソースの maxAge パラメーターを設定します。CR はこれらの値を Elasticsearch ロールオーバースケジュールに適用し、Elasticsearch がロールオーバーインデックスを削除するタイミングを決定します。
				
Elasticsearch はインデックスをロールオーバーし、インデックスが以下の条件のいずれかに一致する場合に現在のインデックスを移動し、新規インデックスを作成します。
- 
							インデックスは ElasticsearchCR のrollover.maxAgeの値よりも古い値になります。
- インデックスサイズは、40 GB x プライマリーシャードの数よりも大きくなります。
- インデックスの doc 数は、40960 KB × プライマリーシャードの数よりも大きくなります。
Elasticsearch は、設定する保持ポリシーに基づいてロールオーバーインデックスを削除します。ログソースの保持ポリシーを作成しない場合、ログはデフォルトで 7 日後に削除されます。
前提条件
- Red Hat OpenShift Logging Operator と OpenShift Elasticsearch Operator がインストールされている。
手順
ログの保持時間を設定するには、以下を実行します。
- ClusterLoggingCR を編集して、- retentionPolicyパラメーターを追加するか、変更します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- Elasticsearch が各ログソースを保持する時間を指定します。整数および時間の指定 (weeks(w)、hour(h/H)、minutes(m)、および seconds(s)) を入力します。たとえば、1 日の場合は1dになります。maxAgeよりも古いログは削除されます。デフォルトで、ログは 7 日間保持されます。
 
- Elasticsearchカスタムリソース (CR) で設定を確認できます。- たとえば、Red Hat OpenShift Logging Operator は以下の - ElasticsearchCR を更新し、8 時間ごとにインフラストラクチャーログのアクティブなインデックスをロールオーバーし、ロールオーバーされたインデックスはロールオーバーの 7 日後に削除される設定を含む保持ポリシーを設定するとします。OpenShift Container Platform は 15 分ごとにチェックし、インデックスをロールオーバーする必要があるかどうかを判別します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 各ログソースについて、保持ポリシーは、そのソースのログを削除/ロールオーバーするタイミングを示します。
- 2
- OpenShift Container Platform がロールオーバーされたインデックスを削除する場合。この設定は、ClusterLoggingCR に設定するmaxAgeになります。
- 3
- インデックスをロールオーバーする際に考慮する OpenShift Container Platform のインデックス期間。この値は、ClusterLoggingCR に設定するmaxAgeに基づいて決定されます。
- 4
- OpenShift Container Platform がインデックスをロールオーバーする必要があるかどうかをチェックする場合。この設定はデフォルトであるため、変更できません。
 注記- ElasticsearchCR の変更はサポートされていません。保持ポリシーに対するすべての変更は- ClusterLoggingCR で行う必要があります。- OpenShift Elasticsearch Operator は cron ジョブをデプロイし、 - pollIntervalを使用してスケジュールされる定義されたポリシーを使用して各マッピングのインデックスをロールオーバーします。- oc get cronjob - $ oc get cronjob- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE elasticsearch-im-app */15 * * * * False 0 <none> 4s elasticsearch-im-audit */15 * * * * False 0 <none> 4s elasticsearch-im-infra */15 * * * * False 0 <none> 4s - NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE elasticsearch-im-app */15 * * * * False 0 <none> 4s elasticsearch-im-audit */15 * * * * False 0 <none> 4s elasticsearch-im-infra */15 * * * * False 0 <none> 4s- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
13.4.4. ログストアの CPU およびメモリー要求の設定
それぞれのコンポーネント仕様は、CPU とメモリー要求の両方への調整を許可します。OpenShift Elasticsearch Operator は環境に適した値を設定するため、これらの値を手動で調整する必要はありません。
大規模なクラスターでは、Elasticsearch プロキシーコンテナーのデフォルトのメモリー制限が不十分な場合があり、これにより、プロキシーコンテナーが OOM による強制終了 (OOMKilled) が生じます。この問題が発生した場合は、Elasticsearch プロキシーのメモリー要求および制限を引き上げます。
各 Elasticsearch ノードはこれより低い値のメモリー設定でも動作しますが、これは実稼働環境でのデプロイメントには推奨 されていません。実稼働環境で使用する場合は、デフォルトの 16Gi よりも小さい値を各 Pod に割り当てることはできません。Pod ごとに割り当て可能な最大値は 64Gi であり、この範囲の中で、できるだけ多くのメモリーを割り当てることを推奨します。
前提条件
- Red Hat OpenShift Logging および Elasticsearch Operators がインストールされている必要があります。
手順
- openshift-loggingプロジェクトで- ClusterLoggingカスタムリソース (CR) を編集します。- oc edit ClusterLogging instance - $ oc edit ClusterLogging instance- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 必要に応じて CPU およびメモリー要求を指定します。これらの値を空のままにすると、OpenShift Elasticsearch Operator はデフォルト値を設定します。これらのデフォルト値はほとんどのデプロイメントでは問題なく使用できるはずです。デフォルト値は、メモリー要求の場合は16Giであり、CPU 要求の場合は1です。
- 2
- Pod が使用できるリソースの最大量。
- 3
- Pod のスケジュールに必要最小限のリソース。
- 4
- 必要に応じて Elasticsearch プロキシーの CPU およびメモリーの制限および要求を指定します。これらの値を空のままにすると、OpenShift Elasticsearch Operator はデフォルト値を設定します。これらのデフォルト値はほとんどのデプロイメントでは問題なく使用できます。デフォルト値は、メモリー要求の場合は256Mi、CPU 要求の場合は100mです。
 
					Elasticsearch メモリーの量を調整するときは、要求 と 制限 の両方に同じ値を使用する必要があります。
				
以下に例を示します。
					Kubernetes は一般的にはノードの設定に従い、Elasticsearch が指定された制限を使用することを許可しません。requests と limits に同じ値を設定することにより、Elasticsearch が必要なメモリーを確実に使用できるようにします (利用可能なメモリーがノードにあることを前提とします)。
				
13.4.5. ログストアのレプリケーションポリシーの設定
Elasticsearch シャードをクラスター内の複数のデータノードにレプリケートする方法を定義できます。
前提条件
- Red Hat OpenShift Logging および Elasticsearch Operators がインストールされている必要があります。
手順
- openshift-loggingプロジェクトで- ClusterLoggingカスタムリソース (CR) を編集します。- oc -n openshift-logging edit ClusterLogging instance - $ oc -n openshift-logging edit ClusterLogging instance- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- シャードの冗長性ポリシーを指定します。変更の保存時に変更が適用されます。- FullRedundancy:Elasticsearch は、各インデックスのプライマリーシャードをすべてのデータノードに完全にレプリケートします。これは最高レベルの安全性を提供しますが、最大量のディスクが必要となり、パフォーマンスは最低レベルになります。
- MultipleRedundancy:Elasticsearch は、各インデックスのプライマリーシャードをデータノードの半分に完全にレプリケートします。これは、安全性とパフォーマンス間の適切なトレードオフを提供します。
- SingleRedundancy:Elasticsearch は、各インデックスのプライマリーシャードのコピーを 1 つ作成します。2 つ以上のデータノードが存在する限り、ログは常に利用可能かつ回復可能です。5 以上のノードを使用する場合は、MultipleRedundancy よりもパフォーマンスが良くなります。このポリシーは、単一 Elasticsearch ノードのデプロイメントには適用できません。
- ZeroRedundancy:Elasticsearch は、プライマリーシャードのコピーを作成しません。ノードが停止または失敗した場合は、ログは利用不可となるか、失われる可能性があります。安全性よりもパフォーマンスを重視する場合や、独自のディスク/PVC バックアップ/復元ストラテジーを実装している場合は、このモードを使用できます。
 
 
インデックステンプレートのプライマリーシャードの数は Elasticsearch データノードの数と等しくなります。
13.4.6. Elasticsearch Pod のスケールダウン
クラスター内の Elasticsearch Pod 数を減らすと、データ損失や Elasticsearch のパフォーマンスが低下する可能性があります。
					スケールダウンする場合は、一度に 1 つの Pod 分スケールダウンし、クラスターがシャードおよびレプリカのリバランスを実行できるようにする必要があります。Elasticsearch のヘルスステータスが green に戻された後に、別の Pod でスケールダウンできます。
				
						Elasticsearch クラスターが ZeroRedundancy に設定される場合は、Elasticsearch Pod をスケールダウンしないでください。
					
13.4.7. ログストアの永続ストレージの設定
Elasticsearch には永続ストレージが必要です。ストレージが高速になると、Elasticsearch のパフォーマンスも高速になります。
NFS ストレージをボリュームまたは永続ボリュームを使用 (または Gluster などの NAS を使用する) ことは Elasticsearch ストレージではサポートされません。Lucene は NFS が指定しないファイルシステムの動作に依存するためです。データの破損およびその他の問題が発生する可能性があります。
前提条件
- Red Hat OpenShift Logging および Elasticsearch Operators がインストールされている必要があります。
手順
- ClusterLoggingCR を編集してクラスターの各データノードが永続ボリューム要求にバインドされるように指定します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
この例では、クラスターの各データノードが、"200G" の AWS General Purpose SSD (gp2) ストレージを要求する永続ボリューム要求にバインドされるように指定します。
						永続ストレージにローカルボリュームを使用する場合は、LocalVolume オブジェクトの volumeMode: block で記述される raw ブロックボリュームを使用しないでください。Elasticsearch は raw ブロックボリュームを使用できません。
					
13.4.8. emptyDir ストレージのログストアの設定
ログストアで emptyDir を使用できます。これは、Pod のデータすべてが再起動時に失われる一時デプロイメントを作成します。
emptyDir を使用する場合は、ログストアが再起動するか、再デプロイされる場合にデータが失われます。
前提条件
- Red Hat OpenShift Logging および Elasticsearch Operators がインストールされている必要があります。
手順
- ClusterLoggingCR を編集して emptyDir を指定します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
13.4.9. Elasticsearch クラスターのローリング再起動の実行
					elasticsearch config map または elasticsearch-* デプロイメント設定のいずれかを変更する際にローリング再起動を実行します。
				
さらにローリング再起動は、Elasticsearch Pod が実行されるノードで再起動が必要な場合に推奨されます。
前提条件
- Red Hat OpenShift Logging および Elasticsearch Operators がインストールされている必要があります。
手順
クラスターのローリング再起動を実行するには、以下を実行します。
- openshift-loggingプロジェクトに切り替えます。- oc project openshift-logging - $ oc project openshift-logging- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- Elasticsearch Pod の名前を取得します。 - oc get pods -l component=elasticsearch - $ oc get pods -l component=elasticsearch- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- コレクター Pod をスケールダウンして、Elasticsearch への新しいログの送信を停止します。 - oc -n openshift-logging patch daemonset/collector -p '{"spec":{"template":{"spec":{"nodeSelector":{"logging-infra-collector": "false"}}}}}'- $ oc -n openshift-logging patch daemonset/collector -p '{"spec":{"template":{"spec":{"nodeSelector":{"logging-infra-collector": "false"}}}}}'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- OpenShift Container Platform es_util ツールを使用してシャードの同期フラッシュを実行して、シャットダウンの前にディスクへの書き込みを待機している保留中の操作がないようにします。 - oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query="_flush/synced" -XPOST - $ oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query="_flush/synced" -XPOST- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 以下に例を示します。 - oc exec -c elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6 -c elasticsearch -- es_util --query="_flush/synced" -XPOST - $ oc exec -c elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6 -c elasticsearch -- es_util --query="_flush/synced" -XPOST- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - {"_shards":{"total":4,"successful":4,"failed":0},".security":{"total":2,"successful":2,"failed":0},".kibana_1":{"total":2,"successful":2,"failed":0}}- {"_shards":{"total":4,"successful":4,"failed":0},".security":{"total":2,"successful":2,"failed":0},".kibana_1":{"total":2,"successful":2,"failed":0}}- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- OpenShift Container Platform es_util ツールを使用して、ノードを意図的に停止する際のシャードのバランシングを防ぎます。 - oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query="_cluster/settings" -XPUT -d '{ "persistent": { "cluster.routing.allocation.enable" : "primaries" } }'- $ oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query="_cluster/settings" -XPUT -d '{ "persistent": { "cluster.routing.allocation.enable" : "primaries" } }'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 以下に例を示します。 - oc exec elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6 -c elasticsearch -- es_util --query="_cluster/settings" -XPUT -d '{ "persistent": { "cluster.routing.allocation.enable" : "primaries" } }'- $ oc exec elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6 -c elasticsearch -- es_util --query="_cluster/settings" -XPUT -d '{ "persistent": { "cluster.routing.allocation.enable" : "primaries" } }'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - {"acknowledged":true,"persistent":{"cluster":{"routing":{"allocation":{"enable":"primaries"}}}},"transient":- {"acknowledged":true,"persistent":{"cluster":{"routing":{"allocation":{"enable":"primaries"}}}},"transient":- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- コマンドが完了したら、ES クラスターのそれぞれのデプロイメントについて、以下を実行します。 - デフォルトで、OpenShift Container Platform Elasticsearch クラスターはノードのロールアウトをブロックします。以下のコマンドを使用してロールアウトを許可し、Pod が変更を取得できるようにします。 - oc rollout resume deployment/<deployment-name> - $ oc rollout resume deployment/<deployment-name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 以下に例を示します。 - oc rollout resume deployment/elasticsearch-cdm-0-1 - $ oc rollout resume deployment/elasticsearch-cdm-0-1- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - deployment.extensions/elasticsearch-cdm-0-1 resumed - deployment.extensions/elasticsearch-cdm-0-1 resumed- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 新規 Pod がデプロイされます。Pod に準備状態のコンテナーがある場合は、次のデプロイメントに進むことができます。 - oc get pods -l component=elasticsearch- - $ oc get pods -l component=elasticsearch-- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - NAME READY STATUS RESTARTS AGE elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6k 2/2 Running 0 22h elasticsearch-cdm-5ceex6ts-2-f799564cb-l9mj7 2/2 Running 0 22h elasticsearch-cdm-5ceex6ts-3-585968dc68-k7kjr 2/2 Running 0 22h - NAME READY STATUS RESTARTS AGE elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6k 2/2 Running 0 22h elasticsearch-cdm-5ceex6ts-2-f799564cb-l9mj7 2/2 Running 0 22h elasticsearch-cdm-5ceex6ts-3-585968dc68-k7kjr 2/2 Running 0 22h- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- デプロイメントが完了したら、ロールアウトを許可しないように Pod をリセットします。 - oc rollout pause deployment/<deployment-name> - $ oc rollout pause deployment/<deployment-name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 以下に例を示します。 - oc rollout pause deployment/elasticsearch-cdm-0-1 - $ oc rollout pause deployment/elasticsearch-cdm-0-1- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - deployment.extensions/elasticsearch-cdm-0-1 paused - deployment.extensions/elasticsearch-cdm-0-1 paused- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- Elasticsearch クラスターが - greenまたは- yellow状態にあることを確認します。- oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query=_cluster/health?pretty=true - $ oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query=_cluster/health?pretty=true- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注記- 直前のコマンドで使用した Elasticsearch Pod でロールアウトを実行した場合、Pod は存在しなくなっているため、ここで新規 Pod 名が必要になります。 - 以下に例を示します。 - oc exec elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6 -c elasticsearch -- es_util --query=_cluster/health?pretty=true - $ oc exec elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6 -c elasticsearch -- es_util --query=_cluster/health?pretty=true- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 次に進む前に、このパラメーターがgreenまたはyellowであることを確認します。
 
 
- Elasticsearch config map を変更した場合は、それぞれの Elasticsearch Pod に対してこれらの手順を繰り返します。
- クラスターのすべてのデプロイメントがロールアウトされたら、シャードのバランシングを再度有効にします。 - oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query="_cluster/settings" -XPUT -d '{ "persistent": { "cluster.routing.allocation.enable" : "all" } }'- $ oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query="_cluster/settings" -XPUT -d '{ "persistent": { "cluster.routing.allocation.enable" : "all" } }'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 以下に例を示します。 - oc exec elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6 -c elasticsearch -- es_util --query="_cluster/settings" -XPUT -d '{ "persistent": { "cluster.routing.allocation.enable" : "all" } }'- $ oc exec elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6 -c elasticsearch -- es_util --query="_cluster/settings" -XPUT -d '{ "persistent": { "cluster.routing.allocation.enable" : "all" } }'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 新しいログが Elasticsearch に送信されるように、コレクター Pod をスケールアップします。 - oc -n openshift-logging patch daemonset/collector -p '{"spec":{"template":{"spec":{"nodeSelector":{"logging-infra-collector": "true"}}}}}'- $ oc -n openshift-logging patch daemonset/collector -p '{"spec":{"template":{"spec":{"nodeSelector":{"logging-infra-collector": "true"}}}}}'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
13.4.10. ログストアサービスのルートとしての公開
デフォルトでは、ロギングでデプロイされたログストアはロギングクラスターの外部からアクセスできません。データにアクセスするツールについては、ログストアへの外部アクセスのために re-encryption termination でルートを有効にできます。
re-encrypt ルート、OpenShift Container Platform トークンおよびインストールされたログストア CA 証明書を作成して、ログストアに外部からアクセスすることができます。次に、以下を含む cURL 要求でログストアサービスをホストするノードにアクセスします。
- 
							Authorization: Bearer ${token}
- Elasticsearch reencrypt ルートおよび Elasticsearch API 要求
内部からは、ログストアクラスター IP を使用してログストアサービスにアクセスできます。これは、以下のコマンドのいずれかを使用して取得できます。
oc get service elasticsearch -o jsonpath={.spec.clusterIP} -n openshift-logging
$ oc get service elasticsearch -o jsonpath={.spec.clusterIP} -n openshift-logging出力例
172.30.183.229
172.30.183.229oc get service elasticsearch -n openshift-logging
$ oc get service elasticsearch -n openshift-logging出力例
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE elasticsearch ClusterIP 172.30.183.229 <none> 9200/TCP 22h
NAME            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
elasticsearch   ClusterIP   172.30.183.229   <none>        9200/TCP   22h以下のようなコマンドを使用して、クラスター IP アドレスを確認できます。
oc exec elasticsearch-cdm-oplnhinv-1-5746475887-fj2f8 -n openshift-logging -- curl -tlsv1.2 --insecure -H "Authorization: Bearer ${token}" "https://172.30.183.229:9200/_cat/health"
$ oc exec elasticsearch-cdm-oplnhinv-1-5746475887-fj2f8 -n openshift-logging -- curl -tlsv1.2 --insecure -H "Authorization: Bearer ${token}" "https://172.30.183.229:9200/_cat/health"出力例
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    29  100    29    0     0    108      0 --:--:-- --:--:-- --:--:--   108
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    29  100    29    0     0    108      0 --:--:-- --:--:-- --:--:--   108前提条件
- Red Hat OpenShift Logging および Elasticsearch Operators がインストールされている必要があります。
- ログにアクセスできるようになるには、プロジェクトへのアクセスが必要です。
手順
ログストアを外部に公開するには、以下を実行します。
- openshift-loggingプロジェクトに切り替えます。- oc project openshift-logging - $ oc project openshift-logging- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- ログストアから CA 証明書を抽出し、admin-ca ファイルに書き込みます。 - oc extract secret/elasticsearch --to=. --keys=admin-ca - $ oc extract secret/elasticsearch --to=. --keys=admin-ca- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - admin-ca - admin-ca- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- ログストアサービスのルートを YAML ファイルとして作成します。 - 以下のように YAML ファイルを作成します。 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 次の手順でログストア CA 証明書を追加するか、コマンドを使用します。一部の re-encrypt ルートで必要とされるspec.tls.key、spec.tls.certificate、およびspec.tls.caCertificateパラメーターを設定する必要はありません。
 
- 以下のコマンドを実行して、前のステップで作成したルート YAML にログストア CA 証明書を追加します。 - cat ./admin-ca | sed -e "s/^/ /" >> <file-name>.yaml - $ cat ./admin-ca | sed -e "s/^/ /" >> <file-name>.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- ルートを作成します。 - oc create -f <file-name>.yaml - $ oc create -f <file-name>.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - route.route.openshift.io/elasticsearch created - route.route.openshift.io/elasticsearch created- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- Elasticsearch サービスが公開されていることを確認します。 - 要求に使用されるこのサービスアカウントのトークンを取得します。 - token=$(oc whoami -t) - $ token=$(oc whoami -t)- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 作成した elasticsearch ルートを環境変数として設定します。 - routeES=`oc get route elasticsearch -o jsonpath={.spec.host}`- $ routeES=`oc get route elasticsearch -o jsonpath={.spec.host}`- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- ルートが正常に作成されていることを確認するには、公開されたルート経由で Elasticsearch にアクセスする以下のコマンドを実行します。 - curl -tlsv1.2 --insecure -H "Authorization: Bearer ${token}" "https://${routeES}"- curl -tlsv1.2 --insecure -H "Authorization: Bearer ${token}" "https://${routeES}"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 以下のような出力が表示されます。 - 出力例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
13.4.11. デフォルトの Elasticsearch ログストアを使用しない場合の未使用のコンポーネントの削除
管理者がログをサードパーティーのログストアに転送し、デフォルトの Elasticsearch ログストアを使用しない場合は、ロギングクラスターからいくつかの未使用のコンポーネントを削除できます。
					つまり、デフォルトの Elasticsearch ログストアを使用しない場合は、内部 Elasticsearch logStore、Kibana visualization コンポーネントを ClusterLogging カスタムリソース (CR) から削除できます。これらのコンポーネントの削除はオプションですが、これによりリソースを節約できます。
				
前提条件
- ログフォワーダーがログデータをデフォルトの内部 Elasticsearch クラスターに送信しないことを確認します。ログ転送の設定に使用した - ClusterLogForwarderCR YAML ファイルを検査します。これには- defaultを指定する- outputRefs要素が ない ことを確認します。以下に例を示します。- outputRefs: - default - outputRefs: - default- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
						ClusterLogForwarder CR がログデータを内部 Elasticsearch クラスターに転送し、ClusterLogging CR から logStore コンポーネントを削除するとします。この場合、内部 Elasticsearch クラスターはログデータを保存するために表示されません。これがないと、データが失われる可能性があります。
					
手順
- openshift-loggingプロジェクトで- ClusterLoggingカスタムリソース (CR) を編集します。- oc edit ClusterLogging instance - $ oc edit ClusterLogging instance- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
							これらが存在する場合は、logStore、visualizationスタンザをClusterLoggingCR から削除します。
- ClusterLoggingCR の- collectionスタンザを保持します。結果は以下の例のようになります。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- コレクター Pod が再デプロイされたことを確認します。 - oc get pods -l component=collector -n openshift-logging - $ oc get pods -l component=collector -n openshift-logging- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow