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.ロギング
OpenShift Container Platform でのクラスターロギングの設定
概要
第1章 クラスターロギングおよび OpenShift Container Platform について リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、クラスターロギングをデプロイし、ノードシステムログ、アプリケーションコンテナーログなどの OpenShift Container Platform クラスターからのすべてのログを集計できます。
1.1. クラスターロギング リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスター管理者は、いくつかの CLI コマンドを使用してクラスターロギングをデプロイでき、OpenShift Container Platform Web コンソールを使用して Elasticsearch Operator および Cluster Logging Operator をインストールできます。Operator がインストールされている場合、ClusterLogging カスタムリソース (Custom Resource、CR) を作成してクラスターロギング Pod およびクラスターロギングのサポートに必要な他のリソースをスケジュールします。Operator はクラスターロギングのデプロイ、アップグレード、および維持を行います。
クラスターロギングは、instance という名前の ClusterLogging カスタムリソース (CR) を変更することで設定できます。CR は、ログを収集し、保存し、視覚化するために必要なロギングスタックのすべてのコンポーネントを含む完全なクラスターロギングデプロイメントを定義します。Cluster Logging Operator は ClusterLogging カスタムリソースを監視し、ロギングデプロイメントを適宜調整します。
管理者およびアプリケーション開発者は、表示アクセスを持つプロジェクトのログを表示できます。
1.1.1. クラスターロギングコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
クラスターロギングコンポーネントは Elasticsearch、Fluentd、Kibana (EFK) に基づいています。コレクターの Fluentd は、OpenShift Container Platform クラスターの各ノードにデプロイされます。これはすべてのノードおよびコンテナーのログを収集し、それらを Elasticsearch (ES) に書き込みます。Kibana は、ユーザーおよび管理者が集計されたデータを使って高度な視覚化およびダッシュボードを作成できる中央の Web UI です。
現時点で、5 種類のクラスターロギングコンポーネントがあります。
- logStore: これはログが保存される場所です。現在の実装は Elasticsearch です。
- collection: これは、ノードからログを収集し、それらをフォーマットし、logStore に保存するコンポーネントです。現在の実装は Fluentd です。
- visualization: これは、ログ、グラフ、チャートなどを表示するために使用される UI コンポーネントです。現在の実装は Kibana です。
- curation: これは期間に基づいてログをトリミングするコンポーネントです。現在の実装は Curator です。
本書では、特筆されない限り、logStore と Elasticsearch、visualization と Kibana、curation と Curator、collection と Fluentd を区別せずに使用する場合があります。
1.1.2. ログストアについて リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は Elasticsearch (ES) を使用して Fluentd からのログデータを、データストアまたは インデックス に編成します。
Elasticsearch は、各インデックスを シャード と呼ばれる複数の部分に細分化し、Elasticsearch クラスター内の Elasticsearch ノードセット全体に分散します。Elasticsearch を レプリカ というシャードのコピーを作成するように設定できます。さらに、Elasticsearch はレプリカを Elactisearch ノード全体に分散します。`ClusterLogging` により、カスタムリソース定義 (Custom Resource Definition、CRD) にレプリケーションポリシーを指定して、データの冗長性および耐障害性を提供することができます。
クラスターロギング Elasticsearch インスタンスは、短期 (約 7 日間) の保存について最適化され、テストされています。長期間ログを保持する必要がある場合は、データをサードパーティーのストレージシステムに移動することが推奨されます。
インデックステンプレートのプライマリーシャードの数は Elasticsearch データノードの数と等しくなります。
Cluster Logging Operator および Elasticsearch Operator は、各 Elasticsearch ノードが独自のストレージボリュームを含む一意の環境を使用してデプロイされるようにします。ClusterLogging カスタムリソース (CR) を使用して Elasticsearch ノードの数を増やすことができます。以下に示すように、ストレージおよびネットワークの場所を選択する際の留意事項については、Elastic のドキュメント を参照してください。
可用性の高い Elasticsearch 環境には 3 つ以上の Elasticsearch ノードが必要で、それぞれが別のホストに置かれる必要があります。
Elasticsearch インデックスに適用されているロールベースアクセス制御 (RBAC) は、開発者のログの制御アクセスを可能にします。project.{project_name}.{project_uuid}.* 形式を使用したインデックスへのアクセスは、特定プロジェクトのユーザーのパーミッションに基づいて制限されます。
詳細は Elasticsearch (ES) を参照してください。
1.1.3. ロギングコレクターについて リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は Fluentd を使用してクラスターについてのデータを収集します。
ロギングコレクターは、Pod を各 OpenShift Container Platform ノードにデプロイする OpenShift Container Platform のデーモンセットとしてデプロイされます。journald は、オペレーティングシステム、コンテナーランタイム、および OpenShift Container Platform からのログメッセージを提供するシステムログソースです。
コンテナーランタイムは、プロジェクト、Pod 名、およびコンテナー ID などのログメッセージのソースを特定するための最小限の情報を提供します。この情報だけでは、ログのソースを一意に特定することはできません。ログコレクターがログを処理する前に、指定された名前およびプロジェクトを持つ Pod が削除される場合、ラベルやアノテーションなどの API サーバーからの情報は利用できない可能性があります。そのため、似たような名前の Pod やプロジェクトからログメッセージを区別したり、ログのソースを追跡することができない場合があります。この制限により、ログの収集および正規化は ベストエフォート ベースであると見なされます。
利用可能なコンテナーランタイムは、ログメッセージのソースを特定するための最小限の情報を提供し、個別のログメッセージが一意となる確証はなく、これらのメッセージにより、そのソースを追跡できる訳ではありません。
詳細情報は、 Fluentd を参照してください。
1.1.4. ロギングの視覚化について リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は Kibana を使用して、Fluentd によって収集され、Elasticsearch によってインデックス化されるログデータを表示します。
Kibana は、ヒストグラム、線グラフ、円グラフ、ヒートマップ、ビルトインされた地理空間サポート、その他の視覚化機能を使用して Elasticsearch データをクエリーし、検出し、視覚化するためのブラウザーベースのコンソールインターフェイスです。
詳細は、Kibana を参照してください。
1.1.5. ロギング curation について リンクのコピーリンクがクリップボードにコピーされました!
Elasticsearch Curator ツールは、グローバルに、またはプロジェクトごとにスケジュールされたメンテナーンス操作を実行します。Curator はその設定に基づいて動作を実行します。Elasticsearch クラスターあたり 1 つの Curator Pod のみの使用が推奨されます。
詳細は Curator を参照してください。
1.1.6. イベントのルーティングについて リンクのコピーリンクがクリップボードにコピーされました!
イベントルーターは、クラスターロギングで収集できるように OpenShift Container Platform イベントを監視する Pod です。イベントルーターはすべてのプロジェクトからイベントを収集し、それらを STDOUT に書き込みます。Fluentd はそれらのイベントを収集し、それらを OpenShift Container Platform Elasticsearch インスタンスに転送します。Elasticsearch はイベントを infra インデックスにインデックス化します。
イベントルーターは手動でデプロイする必要があります。
1.1.7. ClusterLogging カスタムリソースについて リンクのコピーリンクがクリップボードにコピーされました!
クラスターロギングデプロイメントを変更するには、ClusterLogging カスタムリソース (CR) を作成し、変更します。CR の作成または変更方法については、このドキュメントで適宜説明されます。
以下は、クラスターロギングの通常のカスタムリソースの例です。
ClusterLogging CR の例
第2章 クラスターロギングのデプロイについて リンクのコピーリンクがクリップボードにコピーされました!
クラスターロギングを OpenShift Container Platform クラスターにインストールする前に、以下のセクションを確認します。
2.1. クラスターロギングのデプロイおよび設定について リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスターロギングは、小規模および中規模の OpenShift Container Platform クラスター用に調整されたデフォルト設定で使用されるように設計されています。
以下のインストール方法には、サンプルの ClusterLogging カスタムリソース (CR) が含まれます。これを使用して、クラスターロギングインスタンスを作成し、クラスターロギングのデプロイメントを設定することができます。
デフォルトのクラスターロギングインストールを使用する必要がある場合は、サンプル CR を直接使用できます。
デプロイメントをカスタマイズする必要がある場合、必要に応じてサンプル CR に変更を加えます。以下では、クラスターロギングのインスタンスをインストール時に実行し、インストール後に変更する設定について説明します。ClusterLogging カスタムリソース外で加える変更を含む、各コンポーネントの使用方法については、設定についてのセクションを参照してください。
2.1.1. クラスターロギングの設定およびチューニング リンクのコピーリンクがクリップボードにコピーされました!
クラスターロギング環境は、openshift-logging プロジェクトにデプロイされる ClusterLogging カスタムリソースを変更することによって設定できます。
インストール時またはインストール後に、以下のコンポーネントのいずれかを変更することができます。
- メモリーおよび CPU
-
resourcesブロックを有効なメモリーおよび CPU 値で変更することにより、各コンポーネントの CPU およびメモリーの両方の制限を調整することができます。
- Elasticsearch ストレージ
-
storageClassnameおよびsizeパラメーターを使用し、Elasticsearch クラスターの永続ストレージのクラスおよびサイズを設定できます。Cluster Logging Operator は、これらのパラメーターに基づいて、Elasticsearch クラスターの各データノードについてPersistentVolumeClaimを作成します。
この例では、クラスターの各データノードが gp2 ストレージの 200G を要求する PersistentVolumeClaim にバインドされるように指定します。それぞれのプライマリーシャードは単一のレプリカによってサポートされます。
storage ブロックを省略すると、一時ストレージのみを含むデプロイメントになります。
- Elasticsearch レプリケーションポリシー
Elasticsearch シャードをクラスター内のデータノードにレプリケートする方法を定義するポリシーを設定できます。
-
FullRedundancy:各インデックスのシャードはすべてのデータノードに完全にレプリケートされます。 -
MultipleRedundancy:各インデックスのシャードはデータノードの半分に分散します。 -
SingleRedundancy:各シャードの単一コピー。2 つ以上のデータノードが存在する限り、ログは常に利用可能かつ回復可能です。 -
ZeroRedundancy:シャードのコピーはありません。ログは、ノードの停止または失敗時に利用不可になる (または失われる) 可能性があります。
-
- Curator スケジュール
- Curator のスケジュールを cron 形式 で指定します。
2.1.2. 変更された ClusterLogging リソースのサンプル リンクのコピーリンクがクリップボードにコピーされました!
以下は、前述のオプションを使用して変更された ClusterLogging カスタムリソースの例です。
変更された ClusterLogging リソースのサンプル
2.2. クラスターロギングおよび OpenShift Container Platform のストレージについての考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
永続ボリュームは、それぞれの Elasticsearch デプロイメントに 1 つのデータノードに対して 1 つのデータボリュームを持たせるために必要です。OpenShift Container Platform では、これは Persistent Volume Claim (永続ボリューム要求、PVC) を使用して実行されます。
Elasticsearch Operator は Elasticsearch リソース名を使って PVC に名前を付けます。詳細は、永続 Elasticsearch ストレージを参照してください。
Fluentd は systemd ジャーナル および /var/log/containers/ から Elasticsearch にログを送信します。
このため、必要なデータ量とアプリケーションログデータの集計方法を事前に検討しておく必要があります。一部の Elasticsearch ユーザーは、絶対的なストレージ使用率をおよそ 50% に維持し、常に 70% 未満にする必要があることを確認 しています。これは、大規模なマージ操作を実行する際に Elasticsearch が応答しなくなる状態を避けるのに役立ちます。
デフォルトでは、85% になると Elasticsearch は新規データのノードへの割り当てを停止し、90% になると Elasticsearch は可能な場合に、該当ノードから別のノードへ既存シャードの移動を試行します。ただし、85% 未満の空き容量を持つノードがない場合、Elasticsearch は新規インデックスの作成を拒否し、ステータスは RED になります。
これらの基準値 (高い値および低い値を含む) は現行リリースにおける Elasticsearch のデフォルト値です。これらの値を変更することはできますが、いずれの変更もアラートにも適用する必要があります。アラートはこれらのデフォルト値に基づくものです。
2.3. 追加リソース リンクのコピーリンクがクリップボードにコピーされました!
Operator のインストールについての詳細は、Installing Operators from the OperatorHub を参照してください。
第3章 クラスターロギングのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
クラスターロギングは、Elasticsearch および Cluster Logging Operator をデプロイしてインストールできます。Elasticsearch Operator は、クラスターロギングによって使用される Elasticsearch クラスターを作成し、管理します。Cluster Logging Operator はロギングスタックのコンポーネントを作成し、管理します。
クラスターロギングを OpenShift Container Platform にデプロイするプロセスには以下が関係します。
- クラスターロギングのデプロイについて でインストールオプションを確認します。
- クラスターロギングストレージについての考慮事項 を確認します。
- OpenShift Container Platform Web コンソール、または CLI を使用した Elasticsearch Operator および Cluster Logging Operator のインストール
3.1. Web コンソールを使用したクラスターロギングのインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使って Elasticsearch および Cluster Logging Operator をインストールすることができます。
前提条件
Elasticsearch の必要な永続ストレージがあることを確認します。各 Elasticsearch ノードには独自のストレージボリュームが必要であることに注意してください。
Elasticsearch はメモリー集約型アプリケーションです。デフォルトで、OpenShift Container Platform はメモリー要求および 16 GB の制限を持つ 3 つの Elasticsearch ノードをインストールします。OpenShift Container Platform ノードの最初の 3 つのセットには、Elasticsearch をクラスター内で実行するのに十分なメモリーがない可能性があります。Elasticsearch に関連するメモリーの問題が発生した場合、既存ノードのメモリーを増やすのではなく、Elasticsearch ノードをクラスターにさらに追加します。
手順
OpenShift Container Platform Web コンソールを使って Elasticsearch Operator および Cluster Logging Operator をインストールするには、以下を実行します。
Elasticsearch Operator をインストールします。
- OpenShift Container Platform Web コンソールで、Operators → OperatorHub をクリックします。
- 利用可能な Operator の一覧から Elasticsearch Operator を選択し、Install をクリックします。
- All namespaces on the cluster が Installation Mode で選択されていることを確認します。
openshift-operators-redhat が Installed Namespace で選択されていることを確認します。
openshift-operators-redhatnamespace を指定する必要があります。メトリクスとの競合が発生する可能性を防ぐには、Prometheus のクラスターモニターリングスタックを、openshift-operatorsnamespace からではなく、openshift-operators-redhatnamespace からメトリクスを収集するように設定する必要があります。openshift-operatorsnamespace には信頼されていないコミュニティー Operator が含まれる可能性があり、OpenShift Container Platform メトリクスと同じ名前でメトリクスを公開する可能性があるため、これによって競合が生じる可能性があります。Enable operator recommended cluster monitoring on this namespace を選択します。
このオプションは、namespace オブジェクトに
openshift.io/cluster-monitoring: "true"ラベルを設定します。クラスターモニターリングがopenshift-operators-redhatnamespace を収集できるように、このオプションを選択する必要があります。- Update Channel および Approval Strategy を選択します。
- Subscribe をクリックします。
- Operators → Installed Operators ページに切り替えて、 Elasticsearch Operator がインストールされていることを確認します。
- Status が Succeeded の状態で、Elasticsearch Operator が すべてのプロジェクトに一覧表示されていることを確認します。
Cluster Logging Operator をインストールします。
- OpenShift Container Platform Web コンソールで、Operators → OperatorHub をクリックします。
- 利用可能な Operator の一覧から Cluster Logging を選択し、Install をクリックします。
- A specific namespace on the cluster が Installation Mode で選択されていることを確認します。
- Operator recommended namespace が Installed Namespace で openshift-logging になっていることを確認します。
Enable operator recommended cluster monitoring on this namespace を選択します。
このオプションは、namespace オブジェクトに
openshift.io/cluster-monitoring: "true"ラベルを設定します。クラスターモニターリングがopenshift-loggingnamespace を収集できるように、このオプションを選択する必要があります。- Update Channel および Approval Strategy を選択します。
- Subscribe をクリックします。
- Operators → Installed Operators ページに切り替えて、Cluster Logging Operator がインストールされていることを確認します。
Cluster Logging が Status が Succeeded の状態で openshift-logging プロジェクトに一覧表示されていることを確認します。
Operator がインストール済みとして表示されない場合に、さらにトラブルシューティングを実行します。
- Operators → Installed Operators ページに切り替え、Status 列でエラーまたは失敗の有無を確認します。
-
Workloads → Pods ページに切り替え、
openshift-loggingプロジェクトの Pod で問題を報告しているログの有無を確認します。
クラスターロギングのインスタンスを作成します。
- Administration → Custom Resource Definitions ページに切り替えます。
- Custom Resource Definitions ページで、ClusterLogging をクリックします。
- Custom Resource Definition Overview ページで、Actions メニューから View Instances を選択します。
ClusterLoggings ページで、 Create ClusterLogging をクリックします。
データを読み込むためにページを更新する必要がある場合があります。
YAML フィールドで、コードを以下に置き換えます。
注記このデフォルトのクラスターロギング設定は各種の環境をサポートすることが予想されます。クラスターロギングのクラスターに加えることのできる変更についての詳細は、クラスターロギングコンポーネントのチューニングおよび設定についてのトピックを確認してください。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 名前は
instanceである必要があります。 - 2
- クラスターロギングの管理状態。クラスターロギングのデフォルト値を変更する場合は、これを
Unmanaged(管理外) に設定する必要がある場合があります。ただし、管理外のデプロイメントはクラスターロギングが管理対象の状態に戻されるまで更新を受信しません。 - 3
- Elasticsearch の設定に必要な設定。CR を使用してシャードのレプリケーションポリシーおよび永続ストレージを設定できます。
- 4
- Elasticsearch ノードの数を指定します。この一覧に続く注記を確認してください。
- 5
- Elasticsearch ストレージの既存の StorageClass の名前を入力します。最適なパフォーマンスを得るには、ブロックストレージを割り当てる StorageClass を指定します。
- 6
- Kibana の設定に必要な設定。CR を使用して、冗長性を確保するために Kibana をスケーリングし、Kibana ノードの CPU およびメモリーを設定できます。詳細はKibana の設定を参照してください。
- 7
- Curator の設定に必要な設定。CR を使用して Curator スケジュールを設定できます。詳細はCurator の設定を参照してください。
- 8
- Fluentd の設定に必要な設定。CR を使用して Fluentd の CPU およびメモリー制限を設定できます。詳細はFluentd の設定を参照してください。
注記Elasticsearch マスターノードの最大数は 3 です。
3を超えるnodeCountを指定する場合、OpenShift Container Platform は、マスター、クライアントおよびデータロールを使用して、3 つのマスターとしての適格性のあるノードである Elasticsearch ノードを作成します。追加の Elasticsearch ノードは、クライアントおよびデータロールを使用してデータのみのノードとして作成されます。マスターノードは、インデックスの作成および削除、シャードの割り当て、およびノードの追跡などのクラスター全体でのアクションを実行します。データノードはシャードを保持し、CRUD、検索、および集計などのデータ関連の操作を実行します。データ関連の操作は、I/O、メモリーおよび CPU 集約型の操作です。これらのリソースを監視し、現行ノードがオーバーロードする場合にデータノード追加することが重要です。たとえば、
nodeCount=4の場合に、以下のノードが作成されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow インデックステンプレートのプライマリーシャードの数は Elasticsearch データノードの数と等しくなります。
-
Create をクリックします。これにより、
ClusterLoggingカスタムリソースおよびElasticsearchカスタムリソースが作成されます。これらを編集すると、クラスターロギングのクラスターに変更を加えることができます。
インストールを確認します。
- Workloads → Pods ページに切り替えます。
openshift-logging プロジェクトを選択します。
以下の一覧のようなクラスターロギング、Elasticsearch、Fluentd、および Kibana のいくつかの Pod が表示されるはずです。
- cluster-logging-operator-cb795f8dc-xkckc
- elasticsearch-cdm-b3nqzchd-1-5c6797-67kfz
- elasticsearch-cdm-b3nqzchd-2-6657f4-wtprv
- elasticsearch-cdm-b3nqzchd-3-588c65-clg7g
- fluentd-2c7dg
- fluentd-9z7kk
- fluentd-br7r2
- fluentd-fn2sb
- fluentd-pb2f8
- fluentd-zqgqx
- kibana-7fb4fd4cc9-bvt4p
3.2. CLI を使用したクラスターロギングのインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform CLI を使って Elasticsearch および Cluster Logging Operator をインストールすることができます。
前提条件
Elasticsearch の必要な永続ストレージがあることを確認します。各 Elasticsearch ノードには独自のストレージボリュームが必要であることに注意してください。
Elasticsearch はメモリー集約型アプリケーションです。デフォルトで、OpenShift Container Platform はメモリー要求および 16 GB の制限を持つ 3 つの Elasticsearch ノードをインストールします。OpenShift Container Platform ノードの最初の 3 つのセットには、Elasticsearch をクラスター内で実行するのに十分なメモリーがない可能性があります。Elasticsearch に関連するメモリーの問題が発生した場合、既存ノードのメモリーを増やすのではなく、Elasticsearch ノードをクラスターにさらに追加します。
手順
CLI を使用して Elasticsearch Operator および Cluster Logging Operator をインストールするには、以下を実行します。
Elasticsearch Operator の namespace を作成します。
Elasticsearch Operator の namespace オブジェクト YAML ファイル (
eo-namespace.yamlなど) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
openshift-operators-redhatnamespace を指定する必要があります。メトリクスとの競合が発生する可能性を防ぐには、Prometheus のクラスターモニターリングスタックを、openshift-operatorsnamespace からではなく、openshift-operators-redhatnamespace からメトリクスを収集するように設定する必要があります。openshift-operatorsnamespace には信頼されていないコミュニティー Operator が含まれる可能性があり、OpenShift Container Platform メトリクスと同じ名前でメトリクスを公開する可能性があるため、これによって競合が生じる可能性があります。- 2
- クラスターモニターリングが
openshift-operators-redhatnamespace を収集できるように、このラベルを上記のように指定する必要があります。
namespace を作成します。
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は例になります。
oc create -f eo-namespace.yaml
$ oc create -f eo-namespace.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Cluster Logging Operator の namespace を作成します。
Cluster Logging Operator の namespace オブジェクト YAML ファイル (
clo-namespace.yamlなど) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow namespace を作成します。
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は例になります。
oc create -f clo-namespace.yaml
$ oc create -f clo-namespace.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
以下のオブジェクトを作成して Elasticsearch Operator をインストールします。
Elasticsearch Operator の Operator グループオブジェクトの YAML ファイル (
eo-og.yamlなど) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
openshift-operators-redhatnamespace を指定する必要があります。
Operator グループオブジェクトを作成します。
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は例になります。
oc create -f eo-og.yaml
$ oc create -f eo-og.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Subscription オブジェクト YAML ファイル (
eo-sub.yamlなど) を作成し、namespace を Elasticsearch Operator にサブスクライブします。Subscription の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Subscription オブジェクトを作成します。
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は例になります。
oc create -f eo-sub.yaml
$ oc create -f eo-sub.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Elasticsearch Operator は
openshift-operators-redhatnamespace にインストールされ、クラスター内の各プロジェクトにコピーされます。Operator のインストールを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow それぞれの namespace には Elasticsearch Operator がなければなりません。バージョン番号が表示されるものと異なる場合があります。
以下のオブジェクトを作成して Cluster Logging Operator をインストールします。
Cluster Logging Operator の OperatorGroup オブジェクトの YAML ファイル (
eo-og.yamlなど) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow OperatorGroup オブジェクトを作成します。
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は例になります。
oc create -f clo-og.yaml
$ oc create -f clo-og.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Subscription オブジェクト YAML ファイル (
clo-sub.yamlなど) を作成し、namespace を Cluster Logging Operator にサブスクライブします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow openshift-loggingnamespace を指定する必要があります。4.4をチャネルとして指定します。redhat-operatorsを指定します。OpenShift Container Platform クラスターが、非接続クラスターとも呼ばれる制限されたネットワークにインストールされている場合、Operator Lifecycle Manager (OLM) の設定時に作成した CatalogSource オブジェクトの名前を指定します。
Subscription オブジェクトを作成します。
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は例になります。
oc create -f clo-sub.yaml
$ oc create -f clo-sub.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Cluster Logging Operator は
openshift-loggingnamespace にインストールされます。Operator のインストールを確認します。
openshift-loggingnamespace には Cluster Logging Operator がなければなりません。バージョン番号が表示されるものと異なる場合があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
クラスターロギングのインスタンスを作成します。
Cluster Logging Operator のインスタンスオブジェクト YAML ファイル (
clo-instance.yamlなど) を作成します。注記このデフォルトのクラスターロギング設定は各種の環境をサポートすることが予想されます。クラスターロギングのクラスターに加えることのできる変更についての詳細は、クラスターロギングコンポーネントのチューニングおよび設定についてのトピックを確認してください。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 名前は
instanceである必要があります。 - 2
- クラスターロギングの管理状態。ほとんどの場合、クラスターロギングのデフォルト値を変更する場合は、これを
Unmanaged(管理外) に設定する必要があります。ただし、管理外のデプロイメントはクラスターロギングがManaged(管理対象) の状態に戻されるまで更新を受信しません。 - 3
- Elasticsearch の設定に必要な設定。カスタムリソース (CR) を使用してシャードのレプリケーションポリシーおよび永続ストレージを設定できます。
- 4
- Elasticsearch ノードの数を指定します。この一覧に続く注記を確認してください。
- 5
- Elasticsearch ストレージの既存の StorageClass の名前を入力します。最適なパフォーマンスを得るには、ブロックストレージを割り当てる StorageClass を指定します。StorageClass を指定しない場合、OpenShift Container Platform は一時ストレージのみのクラスターロギングをデプロイします。
- 6
- Kibana の設定に必要な設定。CR を使用して、冗長性を確保するために Kibana をスケーリングし、Kibana ノードの CPU およびメモリーを設定できます。詳細はKibana の設定を参照してください。
- 7
- Curator の設定に必要な設定。CR を使用して Curator スケジュールを設定できます。詳細はCurator の設定を参照してください。
- 8
- Fluentd の設定に必要な設定。CR を使用して Fluentd の CPU およびメモリー制限を設定できます。詳細はFluentd の設定を参照してください。
注記Elasticsearch マスターノードの最大数は 3 です。
3を超えるnodeCountを指定する場合、OpenShift Container Platform は、マスター、クライアントおよびデータロールを使用して、3 つのマスターとしての適格性のあるノードである Elasticsearch ノードを作成します。追加の Elasticsearch ノードは、クライアントおよびデータロールを使用してデータのみのノードとして作成されます。マスターノードは、インデックスの作成および削除、シャードの割り当て、およびノードの追跡などのクラスター全体でのアクションを実行します。データノードはシャードを保持し、CRUD、検索、および集計などのデータ関連の操作を実行します。データ関連の操作は、I/O、メモリーおよび CPU 集約型の操作です。これらのリソースを監視し、現行ノードがオーバーロードする場合にデータノード追加することが重要です。たとえば、
nodeCount=4の場合に、以下のノードが作成されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow インデックステンプレートのプライマリーシャードの数は Elasticsearch データノードの数と等しくなります。
インスタンスを作成します。
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc create -f clo-instance.yaml
$ oc create -f clo-instance.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
openshift-logging プロジェクトに Pod を一覧表示して、インストールを検証します。
以下の一覧のようなクラスターロギング、Elasticsearch、Fluentd、および Kibana のいくつかの Pod が表示されるはずです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. インストール後のタスク リンクのコピーリンクがクリップボードにコピーされました!
3.3.1. マルチテナントネットワークへのクラスターロギングのインストール リンクのコピーリンクがクリップボードにコピーされました!
クラスターロギングをマルチテナント分離モードを使用するクラスターにデプロイしている場合、プロジェクトは他のプロジェクトから分離されます。結果として、ネットワークトラフィックは、異なるプロジェクトの Pod およびサービス間で許可されません。
Elasticsearch Operator および Cluster Logging Operator は異なるプロジェクトにインストールされているため、openshift-operators-redhat および openshift-logging プロジェクト間のアクセスを明示的に許可する必要があります。このアクセスを許可する方法は、マルチテナント分離モードの設定方法によって異なります。
手順
Elasticsearch Operator と Cluster Logging Operator 間のトラフィックを許可するには、以下のいずれかを実行します。
OpenShift SDN CNI プラグインを Multitenant モードに設定してマルチテナント分離モードを設定している場合、以下のコマンドを使用して 2 つのプロジェクトに参加します。
以下は例になります。
oc adm pod-network join-projects --to=openshift-operators-redhat openshift-logging
$ oc adm pod-network join-projects --to=openshift-operators-redhat openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift SDN CNI プラグインが NetworkPolicy モードに設定されている状態でマルチテナント分離モードを設定している場合、
openshift-loggingでネットワークポリシーオブジェクトを作成します。これにより、openshift-operators-redhatプロジェクトからopenshift-loggingプロジェクトへの Ingress が許可されます。以下は例になります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. 追加リソース リンクのコピーリンクがクリップボードにコピーされました!
Operator のインストールについての詳細は、Installing Operators from the OperatorHub を参照してください。
第4章 クラスターロギングの更新 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスターを 4.3 から 4.4 に更新したら、クラスターロギングを 4.3 から 4.4 にアップグレードする必要があります。
4.1. クラスターロギングの更新 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスターの更新後に、Elasticsearch Operator および Cluster Logging Operator のサブスクリプションを更新して、クラスターロギングを 4.3 から 4.4 に更新できます。
新規のログ転送機能によって導入された変更により、OpenShift Container Platform 4.3 リリース以降の out_forward のサポートが変更されました。out_forward を設定するために ConfigMap を作成します。Fluentd ConfigMap の secure-forward.conf セクションに対するすべての更新は削除されます。
更新する前に out_forward プラグインを使用する場合、Fluentd ConfigMap から現在の secure-forward.conf セクションをコピーし、secure-forward ConfigMap の作成時にコピーされるデータを使用できます。
前提条件
- クラスターを 4.3 から 4.4 に更新します。
クラスターロギングのステータスが正常であることを確認します。
-
すべての Pod が
Ready状態にある。 - Elasticsearch クラスターが正常である。
-
すべての Pod が
-
オプションで、
secure-forwardConfigMap を作成する必要がある場合に Fluentd ConfigMap から現在のsecure-forward.confセクションをコピーします。上記の注記を参照してください。
手順
Elasticsearch Operator を更新します。
- Web コンソールで Operators → Installed Operators をクリックします。
-
openshift-operators-redhatプロジェクトを選択します。 - Elasticsearch Operatorをクリックします。
- Subscription → Channel をクリックします。
- Change Subscription Update Channel ウィンドウで 4.4 を選択し、Save をクリックします。
数秒待ってから Operators → Installed Operators をクリックします。
Elasticsearch Operator が 4.4 と表示されます。以下に例を示します。
Elasticsearch Operator 4.4.0-201909201915 provided by Red Hat, Inc
Elasticsearch Operator 4.4.0-201909201915 provided by Red Hat, IncCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Cluster Logging Operator を更新します。
- Web コンソールで Operators → Installed Operators をクリックします。
-
openshift-loggingプロジェクトを選択します。 - Cluster Logging Operatorをクリックします。
- Subscription → Channel をクリックします。
- Change Subscription Update Channel ウィンドウで 4.4 を選択し、Save をクリックします。
数秒待ってから Operators → Installed Operators をクリックします。
Cluster Logging Operator は 4.4 として表示されます。以下に例を示します。
Cluster Logging 4.4.0-201909201915 provided by Red Hat, Inc
Cluster Logging 4.4.0-201909201915 provided by Red Hat, IncCopy to Clipboard Copied! Toggle word wrap Toggle overflow
ロギングコンポーネントを確認します。
Elasticsearch Pod が 4.4 イメージを使用していることを確認します。
oc get pod -o yaml -n openshift-logging --selector component=elasticsearch |grep 'image:'
$ oc get pod -o yaml -n openshift-logging --selector component=elasticsearch |grep 'image:'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべての Elasticsearch Pod が Ready ステータスであることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Elasticsearch クラスターが正常であることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロギングコレクター Pod が 4.4 イメージを使用していることを確認します。
oc get pod -n openshift-logging --selector logging-infra=fluentd -o yaml |grep 'image:'
$ oc get pod -n openshift-logging --selector logging-infra=fluentd -o yaml |grep 'image:'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kibana Pod が 4.4 イメージを使用していることを確認します。
oc get pod -n openshift-logging --selector logging-infra=kibana -o yaml |grep 'image:'
$ oc get pod -n openshift-logging --selector logging-infra=kibana -o yaml |grep 'image:'Copy to Clipboard Copied! Toggle word wrap Toggle overflow image: registry.redhat.io/openshift4/ose-logging-kibana5@sha256:3d657e3b90fae604a8351b1923250f93c04529b36e6ada0aba7c0a038ffef56e image: registry.redhat.io/openshift4/ose-oauth-proxy@sha256:5fe478210770b21c1eb26c1570bcbda40bc5a79011580ff5ebd4c701a5b04eb2 image: registry.redhat.io/openshift4/ose-logging-kibana5@sha256:3d657e3b90fae604a8351b1923250f93c04529b36e6ada0aba7c0a038ffef56e image: registry.redhat.io/openshift4/ose-oauth-proxy@sha256:5fe478210770b21c1eb26c1570bcbda40bc5a79011580ff5ebd4c701a5b04eb2
image: registry.redhat.io/openshift4/ose-logging-kibana5@sha256:3d657e3b90fae604a8351b1923250f93c04529b36e6ada0aba7c0a038ffef56e image: registry.redhat.io/openshift4/ose-oauth-proxy@sha256:5fe478210770b21c1eb26c1570bcbda40bc5a79011580ff5ebd4c701a5b04eb2 image: registry.redhat.io/openshift4/ose-logging-kibana5@sha256:3d657e3b90fae604a8351b1923250f93c04529b36e6ada0aba7c0a038ffef56e image: registry.redhat.io/openshift4/ose-oauth-proxy@sha256:5fe478210770b21c1eb26c1570bcbda40bc5a79011580ff5ebd4c701a5b04eb2Copy to Clipboard Copied! Toggle word wrap Toggle overflow Curator CronJob が 4.4 イメージを使用していることを確認します。
oc get CronJob curator -n openshift-logging -o yaml |grep 'image:'
$ oc get CronJob curator -n openshift-logging -o yaml |grep 'image:'Copy to Clipboard Copied! Toggle word wrap Toggle overflow image: registry.redhat.io/openshift4/ose-logging-curator5@sha256:330c3499e790d0e184414125a4843cd48849c601eb9f19ff82f30794c858b0bc
image: registry.redhat.io/openshift4/ose-logging-curator5@sha256:330c3499e790d0e184414125a4843cd48849c601eb9f19ff82f30794c858b0bcCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第5章 クラスターログの表示 リンクのコピーリンクがクリップボードにコピーされました!
CLI または OpenShift Container Platform Web コンソールで OpenShift Container Platform クラスターのログを表示できます。
5.1. クラスターログの表示 リンクのコピーリンクがクリップボードにコピーされました!
CLI でクラスターのログを表示できます。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
手順
クラスターログを表示するには、以下を実行します。
oc logs [-f] <pod_name> コマンドを使用します。ここで、-f はオプションになります。
oc logs -f <any-fluentd-pod> -n openshift-logging
$ oc logs -f <any-fluentd-pod> -n openshift-logging
- 1
- ログコレクター Pod の名前を指定します。
-fオプションを使用してログに書き込まれている内容をフォローします。
以下は例になります。
oc logs -f fluentd-ht42r -n openshift-logging
$ oc logs -f fluentd-ht42r -n openshift-logging
ログファイルの内容が出力されます。
デフォルトで、Fluentd はログの末尾または終了部分からログを読み取ります。
5.2. OpenShift Container Platform Web コンソールでのクラスターログの表示 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールでクラスターのログを表示できます。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
手順
クラスターログを表示するには、以下を実行します。
- OpenShift Container Platform コンソールで Workloads → Pods に移動します。
-
ドロップダウンメニューから
openshift-loggingプロジェクトを選択します。 -
fluentd接頭辞を使ってロギングコレクター Pod のいずれかをクリックします。 - Logs をクリックします。
デフォルトで、Fluentd はログの末尾または終了部分からログを読み取ります。
第6章 Kibana を使用したクラスターログの表示 リンクのコピーリンクがクリップボードにコピーされました!
クラスターロギングのインストールは Kibana Web コンソールをデプロイします。
6.1. Kibana の起動 リンクのコピーリンクがクリップボードにコピーされました!
Kibana は、ヒストグラム、線グラフ、円グラフ、ヒートマップ、ビルトインされた地理空間サポート、その他の可視化機能を使用してログをクエリーし、検出し、可視化するためのブラウザーベースのコンソールです。
前提条件
プロキシーを使用して OpenShift Container Platform をインストールしている場合、.apps.<cluster_name>.<base_domain> をクラスター全体のプロキシーオブジェクトの noProxy 一覧に追加する必要があります。
以下に例を示します。
- 1
.apps.<cluster_name>.<base_domain>をnoProxy一覧に追加します。これは、プロキシーを除外するための宛先ドメイン名、ドメイン、IP アドレス、または他のネットワーク CIDR のコンマ区切りの一覧です。
手順
Kibana を起動するには、以下を実行します。
- OpenShift Container Platform コンソールで、Monitoring → Logging をクリックします。
OpenShift Container Platform コンソールにログインするために使用するものと同じ認証情報を使用してログインします。
Kibana インターフェイスが起動します。以下を実行することができます。
- Discover ページを使用してデータを検索し、参照します。
- Visualize ページを使用してデータのグラフを表示し、データをマップします。
Dashboard ページを使用してカスタムダッシュボードを作成し、表示します。
Kibana インターフェイスの使用および設定については、本書では扱いません。詳細については、Kibana のドキュメント を参照してください。
Kibana コンソールで security_exception エラーが出され、Kibana インデックスにアクセスできない場合には、OAuth トークンの期限が切れている可能性があります。このエラーが表示された場合、Kibana コンソールからログアウトしてから再度ログインします。これにより OAuth トークンが更新され、インデックスにアクセスできるはずです。
第7章 クラスターロギングデプロイメントの設定 リンクのコピーリンクがクリップボードにコピーされました!
7.1. クラスターロギングの設定について リンクのコピーリンクがクリップボードにコピーされました!
クラスターロギングを OpenShift Container Platform クラスターにインストールした後に、以下の設定を行うことができます。
特に指示がない場合は、これらの設定を実行する前にクラスターロギングを管理外の状態に設定する必要があります。詳細は、クラスターロギングの管理状態の変更 を参照してください。
管理外の状態の Operator はサポートされず、クラスター管理者は個々のコンポーネント設定およびアップグレードを完全に制御していることを前提としています。詳細は、管理外の Operator のサポートポリシー を参照してください。
7.1.1. クラスターロギングのデプロイおよび設定について リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスターロギングは、小規模および中規模の OpenShift Container Platform クラスター用に調整されたデフォルト設定で使用されるように設計されています。
以下のインストール方法には、サンプルの ClusterLogging カスタムリソース (CR) が含まれます。これを使用して、クラスターロギングインスタンスを作成し、クラスターロギングのデプロイメントを設定することができます。
デフォルトのクラスターロギングインストールを使用する必要がある場合は、サンプル CR を直接使用できます。
デプロイメントをカスタマイズする必要がある場合、必要に応じてサンプル CR に変更を加えます。以下では、クラスターロギングのインスタンスをインストール時に実行し、インストール後に変更する設定について説明します。ClusterLogging カスタムリソース外で加える変更を含む、各コンポーネントの使用方法については、設定についてのセクションを参照してください。
7.1.1.1. クラスターロギングの設定およびチューニング リンクのコピーリンクがクリップボードにコピーされました!
クラスターロギング環境は、openshift-logging プロジェクトにデプロイされる ClusterLogging カスタムリソースを変更することによって設定できます。
インストール時またはインストール後に、以下のコンポーネントのいずれかを変更することができます。
- メモリーおよび CPU
-
resourcesブロックを有効なメモリーおよび CPU 値で変更することにより、各コンポーネントの CPU およびメモリーの両方の制限を調整することができます。
- Elasticsearch ストレージ
-
storageClassnameおよびsizeパラメーターを使用し、Elasticsearch クラスターの永続ストレージのクラスおよびサイズを設定できます。Cluster Logging Operator は、これらのパラメーターに基づいて、Elasticsearch クラスターの各データノードについてPersistentVolumeClaimを作成します。
この例では、クラスターの各データノードが gp2 ストレージの 200G を要求する PersistentVolumeClaim にバインドされるように指定します。それぞれのプライマリーシャードは単一のレプリカによってサポートされます。
storage ブロックを省略すると、一時ストレージのみを含むデプロイメントになります。
- Elasticsearch レプリケーションポリシー
Elasticsearch シャードをクラスター内のデータノードにレプリケートする方法を定義するポリシーを設定できます。
-
FullRedundancy:各インデックスのシャードはすべてのデータノードに完全にレプリケートされます。 -
MultipleRedundancy:各インデックスのシャードはデータノードの半分に分散します。 -
SingleRedundancy:各シャードの単一コピー。2 つ以上のデータノードが存在する限り、ログは常に利用可能かつ回復可能です。 -
ZeroRedundancy:シャードのコピーはありません。ログは、ノードの停止または失敗時に利用不可になる (または失われる) 可能性があります。
-
- Curator スケジュール
- Curator のスケジュールを cron 形式 で指定します。
7.1.1.2. 変更された ClusterLogging リソースのサンプル リンクのコピーリンクがクリップボードにコピーされました!
以下は、前述のオプションを使用して変更された ClusterLogging カスタムリソースの例です。
変更された ClusterLogging リソースのサンプル
7.2. クラスターロギングの管理状態の変更 リンクのコピーリンクがクリップボードにコピーされました!
Cluster Logging Operator または Elasticsearch Operator によって管理される特定のコンポーネントを変更するには、Operator を Unmanaged (管理外) 状態に設定する必要があります。
Unmanaged (管理外) 状態では、Operator は CR の変更に対応しません。Unmanaged (管理外) 状態の場合、管理者が個々のコンポーネントの設定およびアップグレードを完全に制御できることが前提となります。
管理外の状態の Operator はサポートされず、クラスター管理者は個々のコンポーネント設定およびアップグレードを完全に制御していることを前提としています。詳細は、管理外の Operator のサポートポリシー を参照してください。
Managed (管理対象) 状態では、Cluster Logging Operator (CLO) は ClusterLogging カスタムリソース (CR) の変更に対応し、ロギングデプロイメントを適宜調整します。
OpenShift Container Platform ドキュメントでは、前提条件の段階で OpenShift Container Platform クラスターを Unmanaged (管理外) 状態に設定する必要のあることを示しています。
Elasticsearch Operator (EO) を管理外の状態に設定し、Cluster Logging Operator (CLO) を管理対象のままにする場合、CLO は EO に加えた変更を元に戻します。EO は CLO によって管理されているためです。
7.2.1. クラスターロギングの管理状態の変更 リンクのコピーリンクがクリップボードにコピーされました!
Cluster Logging Operator によって管理されるコンポーネントを変更するには、Operator を Unmanaged (管理外) の状態に設定する必要があります。
- Curator CronJob
-
ElasticsearchCR, - Kibana Deployment
- ログコレクター DaemonSet
管理対象の状態でこれらのコンポーネントを変更する場合、Cluster Logging Operator はそれらの変更を元に戻します。
管理外のクラスターロギング環境は、Cluster Logging Operator を管理対象の状態に戻すまで更新を受信しません。
前提条件
- Cluster Logging Operator がインストールされている必要があります。
手順
openshift-loggingプロジェクトでClusterLoggingカスタムリソース (CR) を編集します。oc edit ClusterLogging instance
$ oc edit ClusterLogging instanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 管理状態を
Managed(管理対象) またはUnmanaged(管理外) として指定します。
7.2.2. Elasticsearch 管理状態の変更 リンクのコピーリンクがクリップボードにコピーされました!
Elasticsearch Operator によって管理される Elasticsearch デプロイメントファイルを変更するには、Operator を Unmanaged (管理外) の状態に設定する必要があります。
管理対象の状態でこれらのコンポーネントを変更する場合、Elasticsearch Operator はこれらの変更を元に戻します。
Elasticsearch Operator が管理対象の状態に戻されるまで、管理外の Elasticsearch クラスターは更新を受信しません。
前提条件
- Elasticsearch Operator がインストールされている必要があります。
openshift-loggingプロジェクトにElasticsearchCR の名前があること。oc get -n openshift-logging Elasticsearch
$ oc get -n openshift-logging Elasticsearch NAME AGE elasticsearch 28hCopy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
openshift-logging プロジェクトで Elasticsearch (CR) を編集します。
- 1
- 管理状態を
Managed(管理対象) またはUnmanaged(管理外) として指定します。
Elasticsearch Operator (EO) を管理外の状態に設定し、Cluster Logging Operator (CLO) を管理対象のままにする場合、CLO は EO に加えた変更を元に戻します。EO は CLO によって管理されているためです。
7.3. クラスターロギングの設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスターロギングは、openshift-logging プロジェクトにデプロイされる ClusterLogging カスタムリソース (CR) を使用して設定できます。
Cluster Logging Operator は、クラスターロギング CR への変更の有無を監視し、欠落しているロギングコンポーネントを作成し、ロギングデプロイメントを適宜調整します。
クラスターロギング CR は ClusterLogging カスタムリソース定義 (CRD) に基づいており、これは完全なクラスターロギングデプロイメントを定義し、ログを収集し、保存し、視覚化するために必要なロギングスタックのすべてのコンポーネントが含まれます。
ClusterLogging カスタムリソース (CRD) のサンプル
クラスターロギングについて以下を設定できます。
- クラスターロギングを管理外の状態にします。これにより、管理者は個別のコンポーネントの設定およびアップグレードを完全に制御することが想定されます。
-
cluster-logging-operatorデプロイメントで該当する環境変数を変更し、各クラスターロギングコンポーネントのイメージを上書きすることができます。 - ノードセレクターを使用してロギングコンポーネントの特定のノードを指定できます。
7.3.1. クラスターロギングコンポーネントイメージについて リンクのコピーリンクがクリップボードにコピーされました!
クラスターロギングには、それぞれが 1 つ以上のイメージで実装されている複数のコンポーネントがあります。各イメージは openshift-logging プロジェクトの cluster-logging-operator デプロイメントで定義される環境変数で指定されており、これを変更することはできません。
以下のコマンドを実行してイメージを表示できます。
oc -n openshift-logging set env deployment/cluster-logging-operator --list | grep _IMAGE
$ oc -n openshift-logging set env deployment/cluster-logging-operator --list | grep _IMAGE
ELASTICSEARCH_IMAGE=registry.redhat.io/openshift4/ose-logging-elasticsearch5:v4.3 FLUENTD_IMAGE=registry.redhat.io/openshift4/ose-logging-fluentd:v4.3 KIBANA_IMAGE=registry.redhat.io/openshift4/ose-logging-kibana5:v4.3 CURATOR_IMAGE=registry.redhat.io/openshift4/ose-logging-curator5:v4.3 OAUTH_PROXY_IMAGE=registry.redhat.io/openshift4/ose-oauth-proxy:v4.3
ELASTICSEARCH_IMAGE=registry.redhat.io/openshift4/ose-logging-elasticsearch5:v4.3
FLUENTD_IMAGE=registry.redhat.io/openshift4/ose-logging-fluentd:v4.3
KIBANA_IMAGE=registry.redhat.io/openshift4/ose-logging-kibana5:v4.3
CURATOR_IMAGE=registry.redhat.io/openshift4/ose-logging-curator5:v4.3
OAUTH_PROXY_IMAGE=registry.redhat.io/openshift4/ose-oauth-proxy:v4.3
値は、環境によって異なる可能性があります。
ロギングルートは Cluster Logging Operator によって管理され、ユーザーが変更することはできません。
7.4. ログデータを保存し、整理するための Elasticsearch の設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は Elasticsearch (ES) を使用してログデータを保存し、整理します。
ログストアに加えることのできる変更には、以下が含まれます。
- Elasticsearch クラスターのストレージ。
- シャードをクラスター内の複数のデータノードにレプリケートする方法 (完全なレプリケーションからレプリケーションなしを含む)。
- Elasticsearch データへの外部アクセスを許可する。
Elasticsearch ノードのスケールダウンはサポートされていません。スケールダウン時に Elasticsearch Pod が誤って削除される場合があり、その場合にはシャードが割り当てられず、レプリカシャードが失われる可能性があります。
Elasticsearch はメモリー集約型アプリケーションです。それぞれの Elasticsearch ノードには、ClusterLogging カスタムリソースで指定しない限り、メモリー要求および制限の両方に 16G のメモリーが必要です。初期設定の OpenShift Container Platform ノードのセットは、Elasticsearch クラスターをサポートするのに十分な大きさではない場合があります。その場合、推奨されるサイズ以上のメモリーを使用して実行できるようにノードを OpenShift Container Platform クラスターに追加する必要があります。
各 Elasticsearch ノードはこれより低い値のメモリー設定でも動作しますが、これは実稼働環境には推奨されません。
Elasticsearch Operator (EO) を管理外の状態に設定し、Cluster Logging Operator (CLO) を管理対象のままにする場合、CLO は EO に加えた変更を元に戻します。EO は CLO によって管理されているためです。
7.4.1. Elasticsearch CPU およびメモリー要求の設定 リンクのコピーリンクがクリップボードにコピーされました!
それぞれのコンポーネント仕様は、CPU とメモリー要求の両方への調整を許可します。Elasticsearch Operator は環境に適した値を設定するため、これらの値を手動で調整する必要はありません。
各 Elasticsearch ノードはこれより低い値のメモリー設定でも動作しますが、これは実稼働環境でのデプロイメントには推奨 されていません。実稼働環境での使用の場合には、デフォルトの 16Gi よりも小さい値を各 Pod に割り当てることはできません。Pod ごとに割り当て可能な最大値は 64Gi であり、この範囲の中で、できるだけ多くのメモリーを割り当てることを推奨します。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
手順
openshift-loggingプロジェクトでClusterLoggingカスタムリソース (CR) を編集します。oc edit ClusterLogging instance
$ oc edit ClusterLogging instanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 必要に応じて CPU およびメモリー要求を指定します。これらの値を空のままにすると、Elasticsearch Operator はデフォルト値を設定します。これらのデフォルト値はほとんどのデプロイメントでは問題なく使用できるはずです。
Elasticsearch メモリーの容量を調整する場合、要求値と制限値の両方を変更する必要があります。
以下は例になります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kubernetes は一般的にはノードの設定に従い、Elasticsearch が指定された制限を使用することを許可しません。
requestsとlimitesに同じ値を設定することにより、Elasticsearch は必要なメモリーを確実に使用できるようにします (利用可能な CPU およびメモリーがノードにあることを前提とします)。
7.4.2. Elasticsearch レプリケーションポリシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
Elasticsearch シャードをクラスター内の複数のデータノードにレプリケートする方法を定義できます。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
手順
openshift-loggingプロジェクトでClusterLoggingカスタムリソース (CR) を編集します。oc edit clusterlogging instance
$ oc edit clusterlogging instanceCopy 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 データノードの数と等しくなります。
7.4.3. Elasticsearch ストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
Elasticsearch には永続ストレージが必要です。ストレージが高速になると、Elasticsearch のパフォーマンスも高速になります。
NFS ストレージをボリュームまたは永続ボリュームを使用 (または Gluster などの NAS を使用する) ことは Elasticsearch ストレージではサポートされません。Lucene は NFS が指定しないファイルシステムの動作に依存するためです。データの破損およびその他の問題が発生する可能性があります。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
手順
ClusterLoggingCR を編集してクラスターの各データノードが永続ボリューム要求 (PVC) にバインドされるように指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
この例では、クラスターの各データノードが、200G の AWS General Purpose SSD (gp2) ストレージを要求する永続ボリューム要求 (PVC) にバインドされるように指定します。
7.4.4. Elasticsearch での emptyDir ストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
Elasticsearch で emptyDir を使用することができます。これは、Pod のデータすべてが再起動時に失われる一時デプロイメントを作成します。
emptyDir を使用する場合、Elasticsearch が再起動するか、または再デプロイされる場合にデータが失われます。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
手順
ClusterLoggingCR を編集して emptyDir を指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.4.5. Elasticsearch のルートとしての公開 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、クラスターロギングでデプロイされた Elasticsearch はロギングクラスターの外部からアクセスできません。データにアクセスするツールについては、Elasticsearch へ外部アクセスするために re-encryption termination でルートを有効にすることができます。
re-encrypt ルート、OpenShift Container Platform トークンおよびインストールされた Elasticsearch CA 証明書を作成して Elasticsearch に外部からアクセスすることができます。次に、以下を含む cURL 要求を持つ Elasticsearch ノードにアクセスします。
-
Authorization: Bearer ${token} - Elasticsearch reencrypt ルートおよび Elasticsearch API 要求
内部からは、Elasticsearch クラスター IP を使用して Elastiscearch にアクセスすることができます。
以下のコマンドのいずれかを使用して、Elasticsearch クラスター 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
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
- ログにアクセスできるようになるには、プロジェクトへのアクセスが必要です。
手順
Elasticsearch を外部に公開するには、以下を実行します。
openshift-loggingプロジェクトに切り替えます。oc project openshift-logging
$ oc project openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow Elasticsearch から CA 証明書を抽出し、admin-ca ファイルに書き込みます。
oc extract secret/elasticsearch --to=. --keys=admin-ca
$ oc extract secret/elasticsearch --to=. --keys=admin-ca admin-caCopy to Clipboard Copied! Toggle word wrap Toggle overflow Elasticsearch サービスのルートを YAML ファイルとして作成します。
以下のように YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 次の手順で Elasticsearch CA 証明書を追加するか、またはコマンドを使用します。一部の re-encrypt ルートで必要とされる
spec.tls.key、spec.tls.certificate、およびspec.tls.caCertificateパラメーターを設定する必要はありません。
以下のコマンドを実行して作成したルート YAML に Elasticsearch CA 証明書を追加します。
cat ./admin-ca | sed -e "s/^/ /" >> <file-name>.yaml
$ cat ./admin-ca | sed -e "s/^/ /" >> <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow ルートを作成します。
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yaml route.route.openshift.io/elasticsearch createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Elasticsearch サービスが公開されていることを確認します。
要求に使用されるこの ServiceAccount のトークンを取得します。
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}/.operations.*/_search?size=1" | jq$ curl -tlsv1.2 --insecure -H "Authorization: Bearer ${token}" "https://${routeES}/.operations.*/_search?size=1" | jqCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のような出力が表示されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.4.6. Elasticsearch アラートルール リンクのコピーリンクがクリップボードにコピーされました!
これらのアラートルールを Prometheus に表示できます。
| アラート | 説明 | 重大度 |
|---|---|---|
| ElasticsearchClusterNotHealthy | クラスターのヘルスステータスは少なくとも 2m の間 RED になります。クラスターは書き込みを受け入れず、シャードが見つからない可能性があるか、またはマスターノードがまだ選択されていません。 | critical |
| ElasticsearchClusterNotHealthy | クラスターのヘルスステータスは少なくとも 20m の間 YELLOW になります。一部のシャードレプリカは割り当てられません。 | warning |
| ElasticsearchBulkRequestsRejectionJumps | クラスターのノードにおける高いバルク除去率 (High Bulk Rejection Ratio) を示します。このノードはインデックスの速度に追い付いていない可能性があります。 | warning |
| ElasticsearchNodeDiskWatermarkReached | クラスターのノードでディスクの低い基準値に達しています。シャードをこのノードに割り当てることはできません。ノードにディスク領域を追加することを検討する必要があります。 | alert |
| ElasticsearchNodeDiskWatermarkReached | クラスターのノードでディスクの高い基準値に達しています。一部のシャードは可能な場合に別のノードに再度割り当てられる可能性があります。ノードにディスク領域が追加されるか、またはこのノードに割り当てられる古いインデックスをドロップします。 | high |
| ElasticsearchJVMHeapUseHigh | クラスター内のノード上での JVM ヒープの使用量は <value> です。 | alert |
| AggregatedLoggingSystemCPUHigh | クラスター内のノード上でのシステム CPU の使用量は <value> です。 | alert |
| ElasticsearchProcessCPUHigh | クラスター内のノード上での ES プロセス CPU の使用量は <value> です。 | alert |
7.5. Kibana の設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は Kibana を使用して、Fluentd によって収集され、Elasticsearch によってインデックス化されるログデータを表示します。
冗長性を確保するために Kibana をスケーリングし、Kibana ノードの CPU およびメモリーを設定することができます。
特に指示がない場合は、これらの設定を実行する前にクラスターロギングを管理外の状態に設定する必要があります。詳細は、クラスターロギングの管理状態の変更 を参照してください。
管理外の状態の Operator はサポートされず、クラスター管理者は個々のコンポーネント設定およびアップグレードを完全に制御していることを前提としています。詳細は、管理外の Operator のサポートポリシー を参照してください。
7.5.1. Kibana CPU およびメモリー制限の設定 リンクのコピーリンクがクリップボードにコピーされました!
それぞれのコンポーネント仕様は、CPU とメモリーの両方への調整を許可します。
手順
openshift-loggingプロジェクトでClusterLoggingカスタムリソース (CR) を編集します。oc edit ClusterLogging instance
$ oc edit ClusterLogging instanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.5.2. 冗長性を確保するための Kibana のスケーリング リンクのコピーリンクがクリップボードにコピーされました!
冗長性を確保するために Kibana デプロイメントをスケーリングできます。
.Procedure
openshift-loggingプロジェクトでClusterLoggingカスタムリソース (CR) を編集します。oc edit ClusterLogging instance
$ oc edit ClusterLogging instanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Kibana ノードの数を指定します。
7.5.3. 容認 (Toleration) による Kibana Pod の配置の制御 リンクのコピーリンクがクリップボードにコピーされました!
Kibana Pod が実行するノードを制御し、Pod の容認を使用して他のワークロードがそれらのノードを使用しないようにすることができます。
容認をクラスターロギングの ClusterLogging クラスターリソース (CR) を利用して Kibana Pod に適用し、テイントをノード仕様でノードに適用します。ノードのテイントは、テイントを容認しないすべての Pod を拒否するようノードに指示する key:value pair です。他の Pod にはない特定の key:value ペアを使用することで、Kibana Pod のみをそのノード上で実行できます。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
手順
以下のコマンドを使用して、Kibana Pod をスケジュールするノードにテイントを追加します。
oc adm taint nodes <node-name> <key>=<value>:<effect>
$ oc adm taint nodes <node-name> <key>=<value>:<effect>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc adm taint nodes node1 kibana=node:NoExecute
$ oc adm taint nodes node1 kibana=node:NoExecuteCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、テイントをキー
kibana、値node、およびテイントの効果NoExecuteのあるnode1に配置します。NoExecuteテイント effect を使用する必要があります。NoExecuteは、テイントに一致する Pod のみをスケジュールし、一致しない既存の Pod を削除します。ClusterLoggingカスタムリソース (CR) のvisualizationセクションを編集し、Kibana Pod の容認を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
この容認は、oc adm taint コマンドで作成されたテイントと一致します。この容認のある Pod は、node1 にスケジュールできます。
7.5.4. Kibana Visualize ツールのインストール リンクのコピーリンクがクリップボードにコピーされました!
Kibana の Visualize タブを使用すると、コンテナーログの監視用に視覚化やダッシュボードを作成でき、管理者ユーザー (cluster-admin または cluster-reader) はデプロイメント、namespace、Pod、およびコンテナーごとにログを表示することができます。
手順
ダッシュボードおよび他の Kibana UI オブジェクトを読み込むには、以下を実行します。
必要な場合は、Cluster Logging Operator のインストール時にデフォルトで作成される Kibana ルートを取得します。
oc get routes -n openshift-logging
$ oc get routes -n openshift-logging NAMESPACE NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD openshift-logging kibana kibana-openshift-logging.apps.openshift.com kibana <all> reencrypt/Redirect NoneCopy to Clipboard Copied! Toggle word wrap Toggle overflow Elasticsearch Pod の名前を取得します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この手順で必要とされるユーザーごとに必要な設定を作成します。
ダッシュボードを追加する必要のあるユーザーとして Kibana ダッシュボードにログインします。
https://kibana-openshift-logging.apps.openshift.com
https://kibana-openshift-logging.apps.openshift.com1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- URL は Kibana ルートです。
- Authorize Access ページが表示される場合、すべてのパーミッションを選択してから Allow selected permissions をクリックします。
- Kibana ダッシュボードからログアウトします。
Elastiscearch Pod のいずれかの名前を使用して、Pod が置かれているプロジェクトで以下のコマンドを実行します。
oc exec <es-pod> -- es_load_kibana_ui_objects <user-name>
$ oc exec <es-pod> -- es_load_kibana_ui_objects <user-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc exec elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6k -- es_load_kibana_ui_objects <user-name>
$ oc exec elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6k -- es_load_kibana_ui_objects <user-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
視覚化やダッシュボードなどの Kibana オブジェクトのメタデータは、.kibana.{user_hash} インデックス形式で Elasticsearch に保存されます。userhash=$(echo -n $username | sha1sum | awk '{print $1}') コマンドを使用して、user_hash を取得できます。デフォルトで、Kibana shared_ops インデックスモードでは、クラスター管理者ロールを持つすべてのユーザーがインデックスを共有でき、この Kibana オブジェクトメタデータは .kibana インデックスに保存されます。
インポート/エクスポート機能を使用するか、curl コマンドを使用してメタデータを Elasticsearch インデックスに挿入して、特定のユーザーに対してカスタムダッシュボードをインポートできます。
7.6. Elasticsearch データのキュレーション リンクのコピーリンクがクリップボードにコピーされました!
Elasticsearch Curator ツールは、グローバルに、またはプロジェクトごとにスケジュールされたメンテナーンス操作を実行します。Curator はその設定に基づいて動作を実行します。
Cluster Logging Operator は Curator とその設定をインストールします。Curator cron スケジュール は、ClusterLogging カスタムリソースを使用して設定でき、追加の設定オプションは openshift-logging プロジェクトの Curator ConfigMap、curator にあります。これには、Curator 設定ファイル curator5.yaml および OpenShift Container Platform カスタム設定ファイル config.yaml が組み込まれています。
OpenShift Container Platform は config.yaml を内部で使用し、Curator の Action ファイル を生成します。
オプションで、action ファイルを直接使用できます。このファイルを編集すると、定期的に実行できるように Curator で利用できるアクションを使用できます。ただし、これによりファイルの変更によりクラスターに破壊的な影響が及ぶ可能性があり、必要なインデックス/設定が Elasticsearch から削除される可能性があるため、上級ユーザーのみがこれを実行することが推奨されます。ほとんどのユーザーは Curator 設定マップのみを変更するだけでよく、action ファイルを編集することはできません。
7.6.1. Curator スケジュールの設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスターロギングインストールで作成されたクラスターロギングのカスタムリソースを使用して、Curator のスケジュールを指定できます。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
手順
Curator スケジュールを設定するには、以下を実行します。
openshift-loggingプロジェクトでClusterLoggingカスタムリソースを編集します。oc edit clusterlogging instance
$ oc edit clusterlogging instanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記タイムゾーンは Curator Pod が実行されるホストノードに基づいて設定されます。
7.6.2. Curator インデックス削除の設定 リンクのコピーリンクがクリップボードにコピーされました!
Curator を、保持設定に基づいて Elasticsearch データを削除するように設定できます。プロジェクトごとの設定およびグローバル設定を行うことができます。グローバル設定は、指定されていないプロジェクトに適用されます。プロジェクトごとの設定はグローバル設定を上書きします。
前提条件
- クラスターロギングがインストールされている必要があります。
手順
インデックスを削除するには、以下を実行します。
OpenShift Container Platform カスタム Curator 設定ファイルを編集します。
oc edit configmap/curator
$ oc edit configmap/curatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 必要に応じて以下のパラメーターを設定します。
config.yaml: | project_name: action unit:valueconfig.yaml: | project_name: action unit:valueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 利用可能なパラメーターを以下に示します。
Expand 表7.1 プロジェクトオプション 変数名 説明 project_nameプロジェクトの実際の名前 (myapp-devel など)。OpenShift Container Platform の操作ログについては、名前
.operationsをプロジェクト名として使用します。action実行するアクション。現在許可されているのは
deleteのみです。unit削除に使用する期間 (
days、weeks、またはmonths)。value単位数。
Expand 表7.2 フィルターオプション 変数名 説明 .defaults.defaultsをproject_nameとして使用し、指定されていないプロジェクトのデフォルトを設定します。.regexプロジェクト名に一致する正規表現の一覧。
pattern適切にエスケープされた有効な正規表現パターン。一重引用符で囲まれています。
たとえば、以下のように Curator を設定します。
-
1 dayを経過した myapp-dev プロジェクトのインデックスを削除する -
1 weekを経過した myapp-qe プロジェクトのインデックスを削除する -
8 weeksを経過した operations ログを削除する -
31 daysを経過したその他すべてのプロジェクトのインデックスを削除する -
^project\..+\-dev.*$正規表現と一致する、1 日を経過したインデックスを削除する -
^project\..+\-test.*$正規表現と一致する、2 日を経過したインデックスを削除する
以下を使用します。
months を操作の $UNIT として使用する場合、Curator は今月の当日ではなく、今月の最初の日からカウントを開始します。たとえば、今日が 4 月 15 日であり、現時点で 2 カ月を経過したインデックスを削除する場合 (delete: months: 2)、Curator は 2 月 15 日より古い日付のインデックスを削除するのではなく、2 月 1 日より古いインデックスを削除します。つまり、今月の最初の日付まで遡り、そこから 2 カ月遡ります。Curator で厳密な設定をする必要がある場合、最も適切な方法として日数 (例: delete: days: 30) を使用することができます。
7.6.3. Curator のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
本セクションの情報を使用して Curator のデバッグを実行できます。たとえば、Curator が失敗状態にあり、ログメッセージで理由が示されていない場合、次にスケジュールされている cron ジョブの実行を待機する代わりに、ログレベルを引き上げ、新規ジョブをトリガーできます。
前提条件
クラスターロギングおよび Elasticsearch がインストールされている。
手順
Curator のデバッグログを有効にし、次の Curator の反復を手動でトリガーします。
Curator のデバッグログを有効にします。
oc set env cronjob/curator CURATOR_LOG_LEVEL=DEBUG CURATOR_SCRIPT_LOG_LEVEL=DEBUG
$ oc set env cronjob/curator CURATOR_LOG_LEVEL=DEBUG CURATOR_SCRIPT_LOG_LEVEL=DEBUGCopy to Clipboard Copied! Toggle word wrap Toggle overflow ログレベルを指定します。
- CRITICAL。Curator は重大なメッセージのみを表示します。
- ERROR。Curator はエラーおよび重大なメッセージのみを表示します。
- WARNING。Curator はエラー、警告、および重大なメッセージのみを表示します。
- INFO。Curator は情報、エラー、警告、および重大なメッセージのみを表示します。
DEBUG。Curator は上記のすべてに加えてデバッグメッセージのみを表示します。
デフォルト値は INFO です。
注記クラスターロギングは、OpenShift Container Platform ラッパースクリプト (
run.shおよびconvert.py) で OpenShift Container Platform カスタム環境変数CURATOR_SCRIPT_LOG_LEVELを使用します。この環境変数は、必要に応じてスクリプトのデバッグ用にCURATOR_LOG_LEVELと同じ値を取ります。
次の Curator の反復をトリガーします。
oc create job --from=cronjob/curator <job_name>
$ oc create job --from=cronjob/curator <job_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを使用して CronJob を制御します。
CronJob を一時停止します。
oc patch cronjob curator -p '{"spec":{"suspend":true}}'$ oc patch cronjob curator -p '{"spec":{"suspend":true}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow CronJob を再開します。
oc patch cronjob curator -p '{"spec":{"suspend":false}}'$ oc patch cronjob curator -p '{"spec":{"suspend":false}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow CronJob スケジュールを変更します。
oc patch cronjob curator -p '{"spec":{"schedule":"0 0 * * *"}}'$ oc patch cronjob curator -p '{"spec":{"schedule":"0 0 * * *"}}'1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.6.4. スクリプト化されたデプロイメントでの Curator の設定 リンクのコピーリンクがクリップボードにコピーされました!
Curator をスクリプト化されたデプロイメントで設定する必要がある場合に、本セクションの情報を使用します。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされていること。
- クラスターロギングを管理外の状態に設定する。
手順
以下のスニペットを使用し、スクリプトで Curator を設定します。
スクリプト化されたデプロイメントの場合
設定を作成し、変更します。
Curator 設定ファイルおよび OpenShift Container Platform カスタム設定ファイルを Curator 設定マップからコピーし、それぞれについて別個のファイルをマップし、作成します。
oc extract configmap/curator --keys=curator5.yaml,config.yaml --to=/my/config
$ oc extract configmap/curator --keys=curator5.yaml,config.yaml --to=/my/configCopy to Clipboard Copied! Toggle word wrap Toggle overflow - /my/config/curator5.yaml および /my/config/config.yaml ファイルを編集します。
既存の Curator 設定マップを削除し、編集された YAML ファイルを新規の Curator 設定マップに追加します。
oc delete configmap curator ; sleep 1 oc create configmap curator \ --from-file=curator5.yaml=/my/config/curator5.yaml \ --from-file=config.yaml=/my/config/config.yaml \ ; sleep 1$ oc delete configmap curator ; sleep 1 $ oc create configmap curator \ --from-file=curator5.yaml=/my/config/curator5.yaml \ --from-file=config.yaml=/my/config/config.yaml \ ; sleep 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の反復でこの設定を使用します。
action ファイルを使用している場合
設定を作成し、変更します。
Curator 設定ファイルおよび action ファイルを Curator 設定マップからコピーし、それぞれについて別個のファイルをマップし、作成します。
oc extract configmap/curator --keys=curator5.yaml,actions.yaml --to=/my/config
$ oc extract configmap/curator --keys=curator5.yaml,actions.yaml --to=/my/configCopy to Clipboard Copied! Toggle word wrap Toggle overflow - /my/config/curator5.yaml および /my/config/actions.yaml ファイルを編集します。
既存の Curator 設定マップを削除し、編集された YAML ファイルを新規の Curator 設定マップに追加します。
oc delete configmap curator ; sleep 1 oc create configmap curator \ --from-file=curator5.yaml=/my/config/curator5.yaml \ --from-file=actions.yaml=/my/config/actions.yaml \ ; sleep 1$ oc delete configmap curator ; sleep 1 $ oc create configmap curator \ --from-file=curator5.yaml=/my/config/curator5.yaml \ --from-file=actions.yaml=/my/config/actions.yaml \ ; sleep 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の反復でこの設定を使用します。
7.6.5. Curator Action ファイルの使用 リンクのコピーリンクがクリップボードにコピーされました!
openshift-logging プロジェクトの Curator ConfigMap には、Curator Action ファイル が含まれます。このファイルで、Curator Action が定期的に実行されるように設定します。
ただし、action ファイルを使用する場合、OpenShift Container Platform は、重要な内部インデックスが間違って削除されないように設定されている curator ConfigMap の config.yaml セクションを無視します。action ファイルを使用するには、除外ルールを設定に加えてこれらのインデックスを保持する必要があります。さらに、本トピックの手順に従う他のすべてのパターンも手動で追加する必要があります。
actions および config.yaml は相互に排他的な設定ファイルです。actions ファイルがある場合、OpenShift Container Platform は config.yaml ファイルを無視します。action ファイルの使用は、クラスターに破壊的な影響を与え、必要なインデックス/設定が Elasticsearch から削除される可能性があるために、状況ユーザーのみがこれを実行することが推奨されます。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされていること。
- クラスターロギングを管理外の状態に設定する。管理外の状態の Operator はサポートされず、クラスター管理者は個々のコンポーネント設定およびアップグレードを完全に制御していることを前提としています。
手順
Curator をインデックスを削除するように設定するには、以下を実行します。
Curator ConfigMap を編集します。
oc edit cm/curator -n openshift-logging
oc edit cm/curator -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow actionファイルに以下の変更を加えます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
delete_indicesを指定して指定されたインデックスを削除します。- 2
filersパラメーターを使用して削除されるインデックスを指定します。これらのパラメーターについての詳細は Elastic Search Curator のドキュメント を参照してください。- 3
- インデックスが削除されるように
falseを指定します。
7.7. ロギングコレクターの設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は Fluentd を使用して、クラスターから操作およびアプリケーションログを収集し、Kubernetes Pod およびプロジェクトメタデータでデータを拡充します。
ログの位置を設定し、外部のログアグリゲーターを使用し、ログコレクターの他の設定を行うことができます。
特に指示がない場合は、これらの設定を実行する前にクラスターロギングを管理外の状態に設定する必要があります。詳細は、クラスターロギングの管理状態の変更 を参照してください。管理外の状態の Operator はサポートされず、クラスター管理者は個々のコンポーネント設定およびアップグレードを完全に制御していることを前提としています。詳細は、管理外の Operator のサポートポリシー を参照してください。
7.7.1. ロギングコレクター Pod の表示 リンクのコピーリンクがクリップボードにコピーされました!
oc get pods --all-namespaces -o wide コマンドを使用して、Fluentd がデプロイされるノードを表示できます。
手順
openshift-logging プロジェクトで以下のコマンドを実行します。
7.7.2. ログコレクター CPU およびメモリー制限の設定 リンクのコピーリンクがクリップボードにコピーされました!
ログコレクターは、CPU とメモリー制限の両方への調整を許可します。
手順
openshift-loggingプロジェクトでClusterLoggingカスタムリソース (CR) を編集します。oc edit ClusterLogging instance
$ oc edit ClusterLogging instanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 必要に応じて CPU、メモリー制限および要求を指定します。表示される値はデフォルト値です。
7.7.3. Fluentd のバッファーチャンク制限の設定 リンクのコピーリンクがクリップボードにコピーされました!
Fluentd ログコレクターが多数のログを処理できない場合、Fluentd はメモリーの使用量を減らし、データ損失を防ぐためにファイルバッファーリングを実行します。
Fluentd ファイルバッファーリングは、記録を chunks に保管します。チャンクは buffers に保管されます。
Fluentd デーモンセットで環境変数を編集して、クラスターでファイルバッファーリングを調整できます。
Fluentd デーモンセットで FILE_BUFFER_LIMIT または BUFFER_SIZE_LIMIT パラメーターを変更するには、クラスターロギングを管理外 (unmanaged) の状態に設定する必要があります。管理外の状態の Operator はサポートされず、クラスター管理者は個々のコンポーネント設定およびアップグレードを完全に制御していることを前提としています。
BUFFER_SIZE_LIMITこのパラメーターは、Fluentd が新規チャンクを作成する前に各チャンクファイルの最大サイズを決定します。デフォルトは
8Mです。このパラメーターは、Fluentdchunk_limit_size変数を設定します。高い値の
BUFFER_SIZE_LIMITの場合、チャンクファイルごとにより多くのレコードを収集できます。ただし、レコードのサイズが大きくなると、ログストアに送信されるまでにより長い時間がかかります。FILE_BUFFER_LIMITこのパラメーターは、ログ出力ごとにファイルバッファーサイズを決定します。この値は、Fluentd Pod がスケジュールされるノードの利用可能な領域をベースとする要求のみになります。OpenShift Container Platform では、Fluentd がノードの容量を超えることを許可しません。デフォルトは
256Miです。高い値の
FILE_BUFFER_LIMITは出力数に基づいてより高い値のBUFFER_QUEUE_LIMITに変換される可能性があります。ただし、ノードの領域が不足すると、Fluentd は失敗する可能性があります。デフォルトで、
number_of_outputsは、すべてのログが単一リソースに送信され、追加のリソースごとに1つずつ増分する場合に1になります。ログ転送 API、Fluentd Forward プロトコル、または syslog プロトコルを使用してログを外部の場所に転送する場合、複数の出力がある可能性があります。永続的なボリュームサイズは、
FILE_BUFFER_LIMITに出力数を乗算した結果よりも大きくなければなりません。BUFFER_QUEUE_LIMIT.このパラメーターは、許可されるバッファーチャンクの最大数です。
BUFFER_QUEUE_LIMITパラメーターは直接調整できません。OpenShift Container Platform は、この値を利用可能なロギングの出力数、チャンクサイズ、およびファイルシステム領域に基づいて計算します。デフォルトは32チャンクです。BUFFER_QUEUE_LIMITを変更するには、FILE_BUFFER_LIMITの値を変更する必要があります。BUFFER_QUEUE_LIMITパラメーターは Fluentdqueue_limit_lengthパラメーターを設定します。OpenShift Container Platform は
BUFFER_QUEUE_LIMITを(FILE_BUFFER_LIMIT / (number_of_outputs * BUFFER_SIZE_LIMIT))として計算します。デフォルトの値のセットを使用すると、
BUFFER_QUEUE_LIMITの値は 32 になります。-
FILE_BUFFER_LIMIT = 256Mi -
number_of_outputs = 1 -
BUFFER_SIZE_LIMIT = 8Mi
-
OpenShift Container Platform は Fluentd ファイル バッファープラグイン を使用してチャンクを保存する方法を設定します。以下のコマンドを使用してバッファーファイルの場所を確認できます。
oc get cm fluentd -o json | jq -r '.data."fluent.conf"'
$ oc get cm fluentd -o json | jq -r '.data."fluent.conf"'
<buffer> @type file path '/var/lib/flunetd/retry-elasticsearch'
<buffer>
@type file
path '/var/lib/flunetd/retry-elasticsearch'
前提条件
- クラスターロギングを管理外の状態に設定する。管理外の状態の Operator はサポートされず、クラスター管理者は個々のコンポーネント設定およびアップグレードを完全に制御していることを前提としています。
手順
バッファーチャンク制限を設定するには、以下を実行します。
7.7.4. 環境変数を使用したロギングコレクターの設定 リンクのコピーリンクがクリップボードにコピーされました!
環境変数を使用して Fluentd ログコレクターの設定を変更することができます。
利用可能な環境変数の一覧については、Github の Fluentd README を参照してください。
前提条件
- クラスターロギングを管理外の状態に設定する。管理外の状態の Operator はサポートされず、クラスター管理者は個々のコンポーネント設定およびアップグレードを完全に制御していることを前提としています。
手順
必要に応じて Fluentd 環境変数のいずれかを設定します。
oc set env ds/fluentd <env-var>=<value>
oc set env ds/fluentd <env-var>=<value>
以下に例を示します。
oc set env ds/fluentd LOGGING_FILE_AGE=30
oc set env ds/fluentd LOGGING_FILE_AGE=30
7.7.5. ロギングコレクターのアラートについて リンクのコピーリンクがクリップボードにコピーされました!
以下のアラートはロギングコレクターによって生成され、Prometheus UI の Alerts タブに表示できます。
すべてのロギングコレクターアラートは、OpenShift Container Platform Web コンソールの Monitoring → Alerts ページに一覧表示されます。アラートは以下の状態のいずれかになります。
- Firingアラートの状態はタイムアウトの期間は true になります。Firing アラートの末尾の Option メニューをクリックし、詳細情報を表示するか、アラートを非通知 (silence) にします。
- Pending: このアラート状態は現時点で true ですが、タイムアウトに達していません。
- Not Firingアラートは現時点でトリガーされていません。
| アラート | メッセージ | 説明 | 重大度 |
|---|---|---|---|
|
|
| Fluentd は指定した数 (デフォルトでは 10) よりも多くの問題を報告しています。 | Critical |
|
|
| Fluentd は Prometheus が特定の Fluentd インスタンスを収集できなかったことを報告します。 | Critical |
|
|
| Fluentd は値が大きすぎることを報告しています。 | Warning |
|
|
| Fluentd はキューの使用についての問題を報告しています。 | Critical |
7.8. Kubernetes イベントの収集および保存 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform イベントルーターは、Kubernetes イベントを監視し、それらをクラスターロギングによって収集できるようにログに記録する Pod です。イベントルーターは手動でデプロイする必要があります。
イベントルーターはすべてのプロジェクトからイベントを収集し、それらを STDOUT に書き込みます。Fluentd はそれらのイベントを収集し、それらを OpenShift Container Platform Elasticsearch インスタンスに転送します。Elasticsearch はイベントを infra インデックスにインデックス化します。
イベントルーターは追加の負荷を Fluentd に追加し、処理できる他のログメッセージの数に影響を与える可能性があります。
7.8.1. イベントルーターのデプロイおよび設定 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を使用してイベントルーターをクラスターにデプロイします。イベントルーターを openshift-logging プロジェクトに常にデプロイし、クラスター全体でイベントが収集されるようにする必要があります。
以下のテンプレートオブジェクトは、イベントルーターに必要なサービスアカウント、クラスターロールおよびクラスターロールバインディングを作成します。テンプレートはイベントルーター Pod も設定し、デプロイします。このテンプレートは変更せずに使用するか、Deployment オブジェクトの CPU およびメモリー要求を変更することができます。
前提条件
- サービスアカウントを作成し、クラスターロールバインディングを更新するには、適切なパーミッションが必要です。たとえば、以下のテンプレートを、cluster-admin ロールを持つユーザーで実行できます。
- クラスターロギングがインストールされている必要があります。
手順
イベントルーターのテンプレートを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- イベントルーターの
openshift-loggingプロジェクトでサービスアカウントを作成します。 - 2
- ClusterRole を作成し、クラスター内のイベントを監視します。
- 3
- ClusterRoleBinding を作成し、ClusterRole を ServiceAccount にバインドします。
- 4
openshift-loggingプロジェクトで ConfigMap を作成し、必要なconfig.jsonファイルを生成します。- 5
openshift-loggingプロジェクトでDeploymentオブジェクトを作成し、イベントルーター Pod を生成し、設定します。- 6
- イベントルーター Pod に割り当てるメモリーの最小量を指定します。デフォルトは
128Miに設定されます。 - 7
- イベントルーター Pod に割り当てる CPU の最小量を指定します。デフォルトは
100mに設定されます。 - 8
- オブジェクトをインストールする
openshift-loggingプロジェクトを指定します。
以下のコマンドを使用してテンプレートを処理し、これを適用します。
oc process -f <templatefile> | oc apply -n openshift-logging -f -
$ oc process -f <templatefile> | oc apply -n openshift-logging -f -Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc process -f eventrouter.yaml | oc apply -n openshift-logging -f -
$ oc process -f eventrouter.yaml | oc apply -n openshift-logging -f -Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
serviceaccount/logging-eventrouter created clusterrole.authorization.openshift.io/event-reader created clusterrolebinding.authorization.openshift.io/event-reader-binding created configmap/logging-eventrouter created deployment.apps/logging-eventrouter created
serviceaccount/logging-eventrouter created clusterrole.authorization.openshift.io/event-reader created clusterrolebinding.authorization.openshift.io/event-reader-binding created configmap/logging-eventrouter created deployment.apps/logging-eventrouter createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow イベントルーターが
openshift-loggingプロジェクトにインストールされていることを確認します。新規イベントルーター Pod を表示します。
oc get pods --selector component=eventrouter -o name -n openshift-logging
$ oc get pods --selector component=eventrouter -o name -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
pod/cluster-logging-eventrouter-d649f97c8-qvv8r
pod/cluster-logging-eventrouter-d649f97c8-qvv8rCopy to Clipboard Copied! Toggle word wrap Toggle overflow イベントルーターによって収集されるイベントを表示します。
oc logs <cluster_logging_eventrouter_pod> -n openshift-logging
$ oc logs <cluster_logging_eventrouter_pod> -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc logs cluster-logging-eventrouter-d649f97c8-qvv8r -n openshift-logging
$ oc logs cluster-logging-eventrouter-d649f97c8-qvv8r -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
{"verb":"ADDED","event":{"metadata":{"name":"openshift-service-catalog-controller-manager-remover.1632d931e88fcd8f","namespace":"openshift-service-catalog-removed","selfLink":"/api/v1/namespaces/openshift-service-catalog-removed/events/openshift-service-catalog-controller-manager-remover.1632d931e88fcd8f","uid":"787d7b26-3d2f-4017-b0b0-420db4ae62c0","resourceVersion":"21399","creationTimestamp":"2020-09-08T15:40:26Z"},"involvedObject":{"kind":"Job","namespace":"openshift-service-catalog-removed","name":"openshift-service-catalog-controller-manager-remover","uid":"fac9f479-4ad5-4a57-8adc-cb25d3d9cf8f","apiVersion":"batch/v1","resourceVersion":"21280"},"reason":"Completed","message":"Job completed","source":{"component":"job-controller"},"firstTimestamp":"2020-09-08T15:40:26Z","lastTimestamp":"2020-09-08T15:40:26Z","count":1,"type":"Normal"}}{"verb":"ADDED","event":{"metadata":{"name":"openshift-service-catalog-controller-manager-remover.1632d931e88fcd8f","namespace":"openshift-service-catalog-removed","selfLink":"/api/v1/namespaces/openshift-service-catalog-removed/events/openshift-service-catalog-controller-manager-remover.1632d931e88fcd8f","uid":"787d7b26-3d2f-4017-b0b0-420db4ae62c0","resourceVersion":"21399","creationTimestamp":"2020-09-08T15:40:26Z"},"involvedObject":{"kind":"Job","namespace":"openshift-service-catalog-removed","name":"openshift-service-catalog-controller-manager-remover","uid":"fac9f479-4ad5-4a57-8adc-cb25d3d9cf8f","apiVersion":"batch/v1","resourceVersion":"21280"},"reason":"Completed","message":"Job completed","source":{"component":"job-controller"},"firstTimestamp":"2020-09-08T15:40:26Z","lastTimestamp":"2020-09-08T15:40:26Z","count":1,"type":"Normal"}}Copy to Clipboard Copied! Toggle word wrap Toggle overflow また、Elasticsearch
infraインデックスを使用してインデックスパターンを作成し、Kibana を使用してイベントを表示することもできます。
7.9. 容認を使用した クラスターロギング Pod 配置の制御 リンクのコピーリンクがクリップボードにコピーされました!
テイントおよび容認を使用することで、クラスターロギング Pod が特定のノードで実行され、その他のワークロードがそれらのノードで実行されないようにします。
テイントおよび容認は、単純な key:value のペアです。ノードのテイントはノードに対し、テイントを容認しないすべての Pod を拒否するよう指示します。
key は最大 253 文字までの文字列で、value は最大 63 文字までの文字列になります。文字列は文字または数字で開始する必要があり、文字、数字、ハイフン、ドットおよびアンダースコアを含めることができます。
容認を使用したクラスターロギング CR のサンプル
7.9.1. 容認を使用した Elasticsearch Pod 配置の制御 リンクのコピーリンクがクリップボードにコピーされました!
Elasticsearch Pod が実行するノードを制御し、Pod の容認を使用して他のワークロードがそれらのノードを使用しないようにすることができます。
容認を ClusterLogging カスタムリソース (CR) で Elasticsearch Pod に適用し、テイントをノード仕様でノードに適用します。ノードのテイントは、テイントを容認しないすべての Pod を拒否するようノードに指示する key:value pair です。他の Pod にはない特定の key:value ペアを使用することで、Elasticseach Pod のみがそのノード上で実行されるようにできます。
デフォルトで、Elasticsearch Pod には以下の容認があります。
tolerations: - effect: "NoExecute" key: "node.kubernetes.io/disk-pressure" operator: "Exists"
tolerations:
- effect: "NoExecute"
key: "node.kubernetes.io/disk-pressure"
operator: "Exists"
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
手順
以下のコマンドを使用して、クラスターロギング Pod をスケジュールするノードにテイントを追加します。
oc adm taint nodes <node-name> <key>=<value>:<effect>
$ oc adm taint nodes <node-name> <key>=<value>:<effect>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は例になります。
oc adm taint nodes node1 elasticsearch=node:NoExecute
$ oc adm taint nodes node1 elasticsearch=node:NoExecuteCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、テイントをキー
elasticsearch、値node、およびテイントの効果NoExecuteのあるnode1に配置します。NoExecuteeffect のノードは、テイントに一致する Pod のみをスケジュールし、一致しない既存の Pod を削除します。ClusterLoggingカスタムリソース (CR) のlogstoreセクションを編集し、Elasticsearch Pod の容認を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
この容認は、oc adm taint コマンドで作成されたテイントと一致します。この容認のある Pod は node1 にスケジュールできます。
7.9.2. 容認 (Toleration) による Kibana Pod の配置の制御 リンクのコピーリンクがクリップボードにコピーされました!
Kibana Pod が実行するノードを制御し、Pod の容認を使用して他のワークロードがそれらのノードを使用しないようにすることができます。
容認をクラスターロギングの ClusterLogging クラスターリソース (CR) を利用して Kibana Pod に適用し、テイントをノード仕様でノードに適用します。ノードのテイントは、テイントを容認しないすべての Pod を拒否するようノードに指示する key:value pair です。他の Pod にはない特定の key:value ペアを使用することで、Kibana Pod のみをそのノード上で実行できます。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
手順
以下のコマンドを使用して、Kibana Pod をスケジュールするノードにテイントを追加します。
oc adm taint nodes <node-name> <key>=<value>:<effect>
$ oc adm taint nodes <node-name> <key>=<value>:<effect>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc adm taint nodes node1 kibana=node:NoExecute
$ oc adm taint nodes node1 kibana=node:NoExecuteCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、テイントをキー
kibana、値node、およびテイントの効果NoExecuteのあるnode1に配置します。NoExecuteテイント effect を使用する必要があります。NoExecuteは、テイントに一致する Pod のみをスケジュールし、一致しない既存の Pod を削除します。ClusterLoggingカスタムリソース (CR) のvisualizationセクションを編集し、Kibana Pod の容認を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
この容認は、oc adm taint コマンドで作成されたテイントと一致します。この容認のある Pod は、node1 にスケジュールできます。
7.9.3. 容認を使用した Curator Pod 配置の制御 リンクのコピーリンクがクリップボードにコピーされました!
Curator Pod が実行するノードを制御し、Pod の容認を使用して他のワークロードがそれらのノードを使用しないようにすることができます。
容認を ClusterLogging カスタムリソース (CR) で Curator Pod に適用し、テイントをノード仕様でノードに適用します。ノードのテイントは、テイントを容認しないすべての Pod を拒否するようノードに指示する key:value ペア です。他の Pod にはない特定の key:value ペアを使用することで、Curator Pod のみがそのノード上で実行されるようにできます。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
手順
以下のコマンドを使用して、Curator Pod をスケジュールする必要のあるノードにテイントを追加します。
oc adm taint nodes <node-name> <key>=<value>:<effect>
$ oc adm taint nodes <node-name> <key>=<value>:<effect>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc adm taint nodes node1 curator=node:NoExecute
$ oc adm taint nodes node1 curator=node:NoExecuteCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、テイントをキー
curator、値node、およびテイント effectNoExecuteのあるnode1に配置します。NoExecuteテイント effect を使用する必要があります。NoExecuteは、テイントに一致する Pod のみをスケジュールし、一致しない既存の Pod を削除します。ClusterLoggingカスタムリソース (CR) のcurationセクションを編集し、Curator Pod の容認を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
この容認は、oc adm taint コマンドで作成されるテイントと一致します。この容認のある Pod は、node1 にスケジュールできます。
7.9.4. 容認を使用したログコレクター Pod 配置の制御 リンクのコピーリンクがクリップボードにコピーされました!
ロギングコレクター Pod が実行するノードを確認し、Pod の容認を使用して他のワークロードがそれらのノードを使用しないようにすることができます。
容認を ClusterLogging カスタムリソース (CR) でロギングコレクター Pod に適用し、テイントをノード仕様でノードに適用します。テイントおよび容認を使用すると、Pod がメモリーや CPU などの問題によってエビクトされないようにすることができます。
デフォルトで、ロギングコレクター Pod には以下の容認があります。
tolerations: - key: "node-role.kubernetes.io/master" operator: "Exists" effect: "NoExecute"
tolerations:
- key: "node-role.kubernetes.io/master"
operator: "Exists"
effect: "NoExecute"
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
手順
以下のコマンドを使用して、ロギングコレクター Pod がロギングコレクター Pod をスケジュールする必要のあるノードにテイントを追加します。
oc adm taint nodes <node-name> <key>=<value>:<effect>
$ oc adm taint nodes <node-name> <key>=<value>:<effect>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc adm taint nodes node1 collector=node:NoExecute
$ oc adm taint nodes node1 collector=node:NoExecuteCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、テイントをキー
collector、値node、およびテイント effectNoExecuteのあるnode1に配置します。NoExecuteテイント effect を使用する必要があります。NoExecuteは、テイントに一致する Pod のみをスケジュールし、一致しない既存の Pod を削除します。ClusterLoggingカスタムリソース (CR) のcollectionセクションを編集して、ロギングコレクター Pod の容認を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
この容認は、oc adm taint コマンドで作成されたテイントと一致します。この容認のある Pod は、node1 にスケジュールできます。
7.9.5. 追加リソース リンクのコピーリンクがクリップボードにコピーされました!
テイントおよび容認についての詳細は、ノードテイントを使用した Pod 配置の制御 を参照してください。
7.10. ログのサードパーティーシステムへの転送 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトで、OpenShift Container Platform クラスターロギングは ClusterLogging カスタムリソースに定義されるデフォルトの内部 Elasticsearch ログストアにログを送信します。
以下の方法を使用して、クラスターロギングを、ログをデフォルトの Elasticsearch ログストアの代わりに OpenShift Container Platform クラスター外の宛先に送信するように設定できます。
- 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 のサンプル
設定に基づく secure-forward ConfigMap のサンプル
手順
OpenShift Container Platform を Fluentd 転送 プロトコルを使用してログを転送できるように設定するには、以下を実行します。
転送 パラメーターについて
secure-forward.confという名前の設定ファイルを作成します。シークレットおよび TLS 情報を設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mTLS を使用するには、クライアント証明書およびキーパラメーターなどの設定に関する情報として Fluentd のドキュメント を参照してください。
外部 Fluentd サーバーの名前、ホスト、およびポートを設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は例になります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
設定ファイルから
openshift-loggingnamespace にsecure-forwardという名前の ConfigMap を作成します。oc create configmap secure-forward --from-file=secure-forward.conf -n openshift-logging
$ oc create configmap secure-forward --from-file=secure-forward.conf -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: レシーバーに必要なシークレットをインポートします。
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=<arbitrary-name-of-key1>=cert_file_from_fluentd_receiver --from-literal=shared_key=value_from_fluentd_receiverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は例になります。
oc create secret generic secure-forward --from-file=ca-bundle.crt=ca-for-fluentd-receiver/ca.crt --from-literal=shared_key=fluentd-receiver
$ oc create secret generic secure-forward --from-file=ca-bundle.crt=ca-for-fluentd-receiver/ca.crt --from-literal=shared_key=fluentd-receiverCopy to Clipboard Copied! Toggle word wrap Toggle overflow fluentdPod を更新し、secure-forwardシークレットおよびsecure-forwardConfigMap を適用します。oc delete pod --selector logging-infra=fluentd
$ oc delete pod --selector logging-infra=fluentdCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 外部ログアグリゲーターを 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
- 1
- syslog プロトコル (
syslogまたはsyslog_bufferedのいずれか)。 - 2
- syslog サーバーの完全修飾ドメイン名 (FQDN) または IP アドレス。
- 3
- 接続先のポート番号。デフォルトは
514です。 - 4
- syslog サーバーの名前。
- 5
- タグから接頭辞を削除します。デフォルトは
''(空) です。 - 6
- syslog キーを設定するためのフィールド。
- 7
- syslog ログファシリティーまたはソース。
- 8
- syslog ログの重大度。
- 9
- レコードの重大度とファシリティーを使用するかどうかを決定する (ある場合)。
- 10
- オプション。syslog メッセージのペイロードを設定するためのキー。デフォルトは
messageに設定されます。注記payload_keyパラメーターを設定すると、他のパラメーターが syslog に転送されなくなります。
サンプル syslog.conf をベースとするサンプル syslog ConfigMap
手順
OpenShift Container Platform が syslog プロトコルを使用してログを転送するように設定するには、以下を実行します。
<store>スタンザ内に以下のパラメーターが含まれるsyslog.confという名前の設定ファイルを作成します。syslog プロトコルタイプを指定します。
@type syslog_buffered
@type syslog_buffered1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 使用するプロトコル (
syslogまたはsyslog_bufferedのいずれか) を指定します。
外部 syslog サーバーの名前、ホスト、およびポートを設定します。
remote_syslog <remote> port <number> hostname <name>
remote_syslog <remote>1 port <number>2 hostname <name>3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
remote_syslog syslogserver.openshift-logging.svc.cluster.local port 514 hostname fluentd-server
remote_syslog syslogserver.openshift-logging.svc.cluster.local port 514 hostname fluentd-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 必要に応じて他の syslog 変数を設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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
facility local0 severity infoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 設定ファイルは以下のように表示されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
設定ファイルから
openshift-loggingnamespace にsyslogという名前の ConfigMap を作成します。oc create configmap syslog --from-file=syslog.conf -n openshift-logging
$ oc create configmap syslog --from-file=syslog.conf -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow Cluster Logging Operator は Fluentd Pod を再デプロイします。Pod が再デプロイされない場合、強制的に再デプロイするために Fluentd Pod を削除できます。
oc delete pod --selector logging-infra=fluentd
$ oc delete pod --selector logging-infra=fluentdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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 は ClusterLogging カスタムリソースに定義されるデフォルトの内部 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 プロトコルを使用)
ログ転送の出力とパイプラインのサンプル
- 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 に設定される単一または複数の出力の名前。
外部ログアグリゲーターが利用できない場合の Fluentd のログの処理
外部ロギングアグリゲーターが利用できず、ログを受信できない場合、Fluentd は継続してログを収集し、それらをバッファーに保存します。ログアグリゲーターが利用可能になると、バッファーされたログを含む、ログの転送が再開されます。バッファーが完全に一杯になると、Fluentd はログの収集を停止します。OpenShift Container Platform はログをローテーションし、それらを削除します。バッファーサイズを調整したり、永続ボリューム要求 (PVC) を Fluentd デーモンセットまたは Pod に追加したりすることはできません。
7.10.3.2. ログ転送 API の有効化 リンクのコピーリンクがクリップボードにコピーされました!
API を使用してログを転送する前に、ログ転送 API を有効にする必要があります。
手順
ログ転送 API を有効にするには、以下を実行します。
openshift-loggingプロジェクトでClusterLoggingカスタムリソース (CR) を編集します。oc edit ClusterLogging instance
$ oc edit ClusterLogging instanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow clusterlogging.openshift.io/logforwardingtechpreviewアノテーションを追加し、enabledに設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.10.3.3. ログ転送 API を使用したログ転送の設定 リンクのコピーリンクがクリップボードにコピーされました!
ログ転送を設定するには、クラスターロギングの ClusterLogging カスタムリソース (CR) を編集して、clusterlogging.openshift.io/logforwardingtechpreview: enabled アノテーションを追加し、`LogForwarding` を作成して出力、パイプラインを指定し、ログ転送を有効にします。
ログ転送を有効にする場合、次の 3 つのソースタイプのすべててのパイプラインを定義する必要があります (logs.app、logs.infra、および logs.audit)。未定義のソースタイプのログはすべてドロップされます。たとえば、logs.app および log-audit タイプのパイプラインを指定するものの、logs.infra タイプのパイプラインを指定していない場合、logs.infra ログがドロップされます。
手順
API を使用してログ転送を設定するには、以下を実行します。
以下のようなログ転送 CR YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ログ転送 CR の名前は
instanceである必要があります。 - 2
- ログ転送 CR の namespace は
openshift-loggingである必要があります。 - 3
trueに設定されると、デフォルトのログ転送動作が無効になります。- 4
- 1 つ以上のエンドポイントを追加するには、以下を実行します。
-
elasticsearchまたは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
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.10.3.3.1. ログ転送カスタムリソースのサンプル リンクのコピーリンクがクリップボードにコピーされました!
通常のログ転送設定は以下の例のようになります。
以下のログ転送カスタムリソースは、すべてのログをセキュアな Elasticsearch ログストアに送信します。
Elasticsearch ログストアに転送するカスタムリソースのサンプル
以下のログ転送カスタムリソースは、Fluentd forward プロトコルを使用してすべてのログをセキュアな Fluentd インスタンスに送信します。
forward プロトコルを使用するためのサンプルカスタムリソース
7.10.3.4. ログ転送 API の無効化 リンクのコピーリンクがクリップボードにコピーされました!
ログ転送 API を無効にし、指定されたエンドポイントへのログの転送を停止するには、metadata.annotations.clusterlogging.openshift.io/logforwardingtechpreview:enabled パラメーターを ClusterLogging CR から削除してからログ転送 CR を削除します。コンテナーおよびノードログは内部 OpenShift Container Platform Elasticsearch インスタンスに転送されます。
disableDefaultForwarding=false を設定すると、クラスターロギングがログを指定されたエンドポイント および デフォルトの内部 OpenShift Container Platform Elasticsearch インスタンスに送信できなくなります。
手順
ログ転送 API を無効にするには、以下を実行します。
openshift-loggingプロジェクトでClusterLoggingカスタムリソース (CR) を編集します。oc edit ClusterLogging instance
$ oc edit ClusterLogging instanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow clusterlogging.openshift.io/logforwardingtechpreviewアノテーションを削除します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- このアノテーションを削除します。
ログ転送カスタムリソースを削除します。
oc delete LogForwarding instance -n openshift-logging
$ oc delete LogForwarding instance -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.11. systemd-journald および Fluentd の設定 リンクのコピーリンクがクリップボードにコピーされました!
Fluentd のジャーナルからの読み取りや、ジャーナルのデフォルト設定値は非常に低く、ジャーナルがシステムサービスからのロギング速度に付いていくことができないためにジャーナルエントリーが失われる可能性があります。
ジャーナルでエントリーが失われるのを防ぐことができるように RateLimitInterval=1s および RateLimitBurst=10000 (必要な場合はさらに高い値) を設定することが推奨されます。
7.11.1. クラスターロギング用の systemd-journald の設定 リンクのコピーリンクがクリップボードにコピーされました!
プロジェクトのスケールアップ時に、デフォルトのロギング環境にはいくらかの調整が必要になる場合があります。
たとえば、ログが見つからない場合は、journald の速度制限を引き上げる必要がある場合があります。一定期間保持するメッセージ数を調整して、クラスターロギングがログをドロップせずに過剰なリソースを使用しないようにすることができます。
また、ログを圧縮する必要があるかどうか、ログを保持する期間、ログを保存する方法、ログを保存するかどうかやその他の設定を決定することもできます。
手順
必要な設定で
journald.confファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ログがファイルシステムに書き込まれる前にそれらのログを圧縮するかどうかを指定します。
yesを指定してメッセージを圧縮するか、またはnoを指定して圧縮しないようにします。デフォルトはyesです。 - 2
- ログメッセージを転送するかどうかを設定します。それぞれについて、デフォルトで
noに設定されます。以下を指定します。-
ForwardToConsole: ログをシステムコンソールに転送します。 -
ForwardToKsmg: ログをカーネルログバッファーに転送します。 -
ForwardToSyslog: syslog デーモンに転送します。 -
ForwardToWall: メッセージを wall メッセージとしてすべてのログインしているユーザーに転送します。
-
- 3
- ジャーナルエントリーを保存する最大時間を指定します。数字を入力して秒数を指定します。または、year、month、week、day、h または m などの単位を含めます。無効にするには
0を入力します。デフォルトは1monthです。 - 4
- レート制限を設定します。
RateLimitIntervalSecで定義される期間に、RateLimitBurstで指定される以上のログが受信される場合、この期間内の追加のメッセージすべてはこの期間が終了するまでにドロップされます。デフォルト値であるRateLimitInterval=1sおよびRateLimitBurst=10000を設定することが推奨されます。 - 5
- ログの保存方法を指定します。デフォルトは
persistentです。-
volatile: ログを/var/log/journal/のメモリーに保存します。 -
persistent: ログを/var/log/journal/のディスクに保存します。systemd は存在しない場合はディレクトリーを作成します。 -
auto: ディレクトリーが存在する場合に、ログを/var/log/journal/に保存します。存在しない場合は、systemd はログを/run/systemd/journalに一時的に保存します。 -
none: ログを保存しません。systemd はすべてのログをドロップします。
-
- 6
- ERR、WARNING、NOTICE、INFO、および DEBUG ログについてジャーナルファイルをディスクに同期させるまでのタイムアウトを指定します。 systemd は、CRIT、ALERT、または EMERG ログの受信後すぐに同期を開始します。デフォルトは
1sです。 - 7
- ジャーナルが使用できる最大サイズを指定します。デフォルトは
8gです。 - 8
- systemd が残す必要のあるディスク領域のサイズを指定します。デフォルトは
20%です。 - 9
/var/log/journalに永続的に保存される個別のジャーナルファイルの最大サイズを指定します。デフォルトは10Mです。注記レート制限を削除する場合、システムロギングデーモンの CPU 使用率が高くなることがあります。 以前はスロットリングされていた可能性のあるメッセージが処理されるためです。
systemd 設定の詳細については、https://www.freedesktop.org/software/systemd/man/journald.conf.html を参照してください。このページに一覧表示されるデフォルト設定は OpenShift Container Platform には適用されない可能性があります。
journal.confファイルを base64 に変換します。export jrnl_cnf=$( cat /journald.conf | base64 -w0 )
$ export jrnl_cnf=$( cat /journald.conf | base64 -w0 )Copy to Clipboard Copied! Toggle word wrap Toggle overflow マスターまたはワーカー用に新規の MachineConfig を作成し、
journal.confパラメーターを追加します。以下は例になります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MachineConfig を作成します。
oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow コントローラーは新規の MachineConfig を検出し、新規の
rendered-worker-<hash>バージョンを生成します。新規のレンダリングされた設定の各ノードへのロールアウトのステータスをモニターします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第8章 Elasticsearch ステータスの表示 リンクのコピーリンクがクリップボードにコピーされました!
Elasticsearch Operator のステータスや、数多くの Elasticsearch コンポーネントを表示できます。
8.1. Elasticsearch ステータスの表示 リンクのコピーリンクがクリップボードにコピーされました!
Elasticsearch クラスターのステータスを表示することができます。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
手順
openshift-loggingプロジェクトに切り替えます。oc project openshift-logging
$ oc project openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow Elasticsearch クラスターのステータスを表示するには、以下を実行します。
Elasticsearch インスタンスの名前を取得します。
oc get Elasticsearch
$ oc get Elasticsearch NAME AGE elasticsearch 5h9mCopy to Clipboard Copied! Toggle word wrap Toggle overflow Elasticsearch のステータスを取得します。
oc get Elasticsearch <Elasticsearch-instance> -o yaml
$ oc get Elasticsearch <Elasticsearch-instance> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc get Elasticsearch elasticsearch -n openshift-logging -o yaml
$ oc get Elasticsearch elasticsearch -n openshift-logging -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力には、以下のような情報が含まれます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 出力の
statusスタンザに、クラスターステータスのフィールドが表示されます。 - 2
- Elasticsearch クラスターのステータス:
- アクティブなプライマリーシャードの数
- アクティブなシャードの数
- 初期化されるシャードの数
- Elasticsearch データノードの数
- Elasticsearch ノードの合計数
- 保留中のタスクの数
-
Elasticsearch のステータス:
green、red、yellow - 未割り当てのシャードの数
- 3
- ステータスの状況 (ある場合)。Elasticsearch クラスターのステータスは、Pod が配置されていない場合にスケジューラーからの理由を示します。以下の状況に関連したイベントが表示されます。
- Elasticsearch およびプロキシーコンテナーの両方についてコンテナーが待機中。
- Elasticsearch およびプロキシーコンテナーの両方についてコンテナーが終了している。
- Pod がスケジュール対象外である。さらに多数の問題についての状況が表示されます。詳細は、状況メッセージのサンプル を参照してください。
- 4
upgradeStatusのクラスター内の Elasticsearch ノード。- 5
- 'failed`、
notReadyまたはready状態で一覧表示される、クラスターの Elasticsearch クライアント、データおよびマスター Pod。
8.1.1. 状況メッセージのサンプル リンクのコピーリンクがクリップボードにコピーされました!
以下は、Elasticsearch インスタンスの Status セクションからの一部の状態メッセージの例になります。
このステータスメッセージは、ノードが設定された低基準値を超えており、シャードがこのノードに割り当てられないことを示します。
このステータスメッセージは、ノードが設定された高基準値を超えており、シャードが他のノードに移動させられることを示します。
このステータスメッセージは、CR の Elasticsearch ノードセレクターがクラスターのいずれのノードにも一致しないことを示します。
このステータスメッセージは、Elasticsearch CR が存在しない PVC を使用することを示します。
このステータスメッセージは、Elasticsearch クラスターには Elasticsearch の冗長性ポリシーをサポートするための十分なノードがないことを示します。
このステータスメッセージは、クラスター内のマスターノードの数が多過ぎることを示します。
8.2. Elasticsearch コンポーネントのステータスの表示 リンクのコピーリンクがクリップボードにコピーされました!
数多くの Elasticsearch コンポーネントのステータスを表示することができます。
- Elasticsearch インデックス
Elasticsearch インデックスのステータスを表示することができます。
Elasticsearch Pod の名前を取得します。
oc get pods --selector component=elasticsearch -o name
$ oc get pods --selector component=elasticsearch -o name pod/elasticsearch-cdm-1godmszn-1-6f8495-vp4lw pod/elasticsearch-cdm-1godmszn-2-5769cf-9ms2n pod/elasticsearch-cdm-1godmszn-3-f66f7d-zqkz7Copy to Clipboard Copied! Toggle word wrap Toggle overflow インデックスのステータスを取得します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Elasticsearch Pod
Elasticsearch Pod のステータスを表示することができます。
Pod の名前を取得します。
oc get pods --selector component=elasticsearch -o name
$ oc get pods --selector component=elasticsearch -o name pod/elasticsearch-cdm-1godmszn-1-6f8495-vp4lw pod/elasticsearch-cdm-1godmszn-2-5769cf-9ms2n pod/elasticsearch-cdm-1godmszn-3-f66f7d-zqkz7Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod のステータスを取得します。
oc describe pod elasticsearch-cdm-1godmszn-1-6f8495-vp4lw
oc describe pod elasticsearch-cdm-1godmszn-1-6f8495-vp4lwCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力には、以下のようなステータス情報が含まれます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Elasticsearch デプロイメント設定
Elasticsearch デプロイメント設定のステータスを表示することができます。
デプロイメント設定の名前を取得します。
oc get deployment --selector component=elasticsearch -o name
$ oc get deployment --selector component=elasticsearch -o name deployment.extensions/elasticsearch-cdm-1gon-1 deployment.extensions/elasticsearch-cdm-1gon-2 deployment.extensions/elasticsearch-cdm-1gon-3Copy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメント設定のステータスを取得します。
oc describe deployment elasticsearch-cdm-1gon-1
$ oc describe deployment elasticsearch-cdm-1gon-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力には、以下のようなステータス情報が含まれます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Elasticsearch レプリカセット
Elasticsearch レプリカセットのステータスを表示することができます。
レプリカセットの名前を取得します。
oc get replicaSet --selector component=elasticsearch -o name
$ oc get replicaSet --selector component=elasticsearch -o name replicaset.extensions/elasticsearch-cdm-1gon-1-6f8495 replicaset.extensions/elasticsearch-cdm-1gon-2-5769cf replicaset.extensions/elasticsearch-cdm-1gon-3-f66f7dCopy to Clipboard Copied! Toggle word wrap Toggle overflow レプリカセットのステータスを取得します。
oc describe replicaSet elasticsearch-cdm-1gon-1-6f8495
$ oc describe replicaSet elasticsearch-cdm-1gon-1-6f8495Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力には、以下のようなステータス情報が含まれます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第9章 クラスターロギングのステータス表示 リンクのコピーリンクがクリップボードにコピーされました!
Cluster Logging Operator のステータスや、数多くのクラスターロギングコンポーネントを表示できます。
9.1. Cluster Logging Operator のステータス表示 リンクのコピーリンクがクリップボードにコピーされました!
Cluster Logging Operator のステータスを表示することができます。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
手順
openshift-loggingプロジェクトに切り替えます。oc project openshift-logging
$ oc project openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターロギングのステータスを表示するには、以下を実行します。
クラスターロギングのステータスを取得します。
oc get clusterlogging instance -o yaml
$ oc get clusterlogging instance -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力には、以下のような情報が含まれます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.1.1. 状態メッセージ (condition message) のサンプル リンクのコピーリンクがクリップボードにコピーされました!
以下は、クラスターロギングインスタンスの Status.Nodes セクションからの一部の状態メッセージの例です。
以下のようなステータスメッセージは、ノードが設定された低基準値を超えており、シャードがこのノードに割り当てられないことを示します。
以下のようなステータスメッセージは、ノードが設定された高基準値を超えており、シャードが他のノードに移動させられることを示します。
以下のようなステータスメッセージは、CR の Elasticsearch ノードセレクターがクラスターのいずれのノードにも一致しないことを示します。
以下のようなステータスメッセージは、要求された PVC が PV にバインドされないことを示します。
以下のようなステータスメッセージは、ノードセレクターがいずれのノードにも一致しないため、Curator Pod をスケジュールできないことを示します。
以下のようなステータスメッセージは、ノードセレクターがいずれのノードにも一致しないため、Fluentd Pod をスケジュールできないことを示します。
9.2. クラスターロギングコンポーネントのステータスの表示 リンクのコピーリンクがクリップボードにコピーされました!
数多くのクラスターロギングコンポーネントのステータスを表示することができます。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
手順
openshift-loggingプロジェクトに切り替えます。oc project openshift-logging
$ oc project openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターロギングデプロイメントのステータスを表示します。
oc describe deployment cluster-logging-operator
$ oc describe deployment cluster-logging-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力には、以下のようなステータス情報が含まれます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターロギング ReplicaSet のステータスを表示します。
ReplicaSet の名前を取得します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ReplicaSet のステータスを取得します。
oc describe replicaset cluster-logging-operator-574b8987df
$ oc describe replicaset cluster-logging-operator-574b8987dfCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力には、以下のようなステータス情報が含まれます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第10章 ノードセレクターを使用したクラスターロギングリソースの移動 リンクのコピーリンクがクリップボードにコピーされました!
ノードセレクターを使用して Elasticsearch、Kibana、Curator Pod を異なるノードにデプロイすることができます。
10.1. クラスターロギングリソースの移動 リンクのコピーリンクがクリップボードにコピーされました!
すべてのクラスターロギングコンポーネント、Elasticsearch、Kibana、および Curator の Pod を異なるノードにデプロイするように Cluster Logging Operator を設定できます。Cluster Logging Operator Pod については、インストールされた場所から移動することはできません。
たとえば、Elasticsearch Pod の CPU、メモリーおよびディスクの要件が高いために、この Pod を別のノードに移動できます。
マシンセットを 6 つ以上のレプリカを使用するように設定する必要があります。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。これらの機能はデフォルトでインストールされません。
手順
openshift-loggingプロジェクトでClusterLoggingカスタムリソース (CR) を編集します。oc edit ClusterLogging instance
$ oc edit ClusterLogging instanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証手順
コンポーネントが移動したことを確認するには、oc get pod -o wide コマンドを使用できます。
以下に例を示します。
Kibana Pod を
ip-10-0-147-79.us-east-2.compute.internalノードから移動する必要がある場合、以下を実行します。oc get pod kibana-5b8bdf44f9-ccpq9 -o wide
$ oc get pod kibana-5b8bdf44f9-ccpq9 -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kibana-5b8bdf44f9-ccpq9 2/2 Running 0 27s 10.129.2.18 ip-10-0-147-79.us-east-2.compute.internal <none> <none>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kibana Pod を、専用インフラストラクチャーノードである
ip-10-0-139-48.us-east-2.compute.internalノードに移動する必要がある場合、以下を実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードには
node-role.kubernetes.io/infra: ''ラベルがあることに注意してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kibana Pod を移動するには、
ClusterLoggingCR を編集してノードセレクターを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow CR を保存した後に、現在の Kibana Pod は終了し、新規 Pod がデプロイされます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規 Pod が
ip-10-0-139-48.us-east-2.compute.internalノードに置かれます。oc get pod kibana-7d85dcffc8-bfpfp -o wide
$ oc get pod kibana-7d85dcffc8-bfpfp -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kibana-7d85dcffc8-bfpfp 2/2 Running 0 43s 10.131.0.22 ip-10-0-139-48.us-east-2.compute.internal <none> <none>Copy to Clipboard Copied! Toggle word wrap Toggle overflow しばらくすると、元の Kibana Pod が削除されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第11章 Elasticsearch の手動によるロールアウト リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は、Elasticsearch クラスターのローリング再起動をサポートします。ローリング再起動は、ダウンタイムなしに適切な変更を Elasticsearch クラスターに適用します (3 つのマスターが設定される場合)。Elasticsearch クラスターは、ノードが 1 回に 1 度ずつオフラインにされる間オンラインのままとなり、運用可能な状態になります。
11.1. Elasticsearch クラスターのローリング再起動の実行 リンクのコピーリンクがクリップボードにコピーされました!
elasticsearch configmap または elasticsearch-* デプロイメント設定のいずれかを変更する際にローリング再起動を実行します。
さらにローリング再起動は、Elasticsearch Pod が実行されるノードで再起動が必要な場合に推奨されます。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている必要があります。
手順
クラスターのローリング再起動を実行するには、以下を実行します。
openshift-loggingプロジェクトに切り替えます。oc project openshift-logging
$ oc project openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを使用して Elasticsearch から CA 証明書を抽出し、admin-ca ファイルに書き込みます。
oc extract secret/elasticsearch --to=. --keys=admin-ca
$ oc extract secret/elasticsearch --to=. --keys=admin-ca admin-caCopy to Clipboard Copied! Toggle word wrap Toggle overflow シャードの同期フラッシュを実行して、シャットダウン前にディスクへの書き込みを待機している保留中の操作がないようにします。
oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- curl -s --cacert /etc/elasticsearch/secret/admin-ca --cert /etc/elasticsearch/secret/admin-cert --key /etc/elasticsearch/secret/admin-key -XPOST 'https://localhost:9200/_flush/synced'
$ oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- curl -s --cacert /etc/elasticsearch/secret/admin-ca --cert /etc/elasticsearch/secret/admin-cert --key /etc/elasticsearch/secret/admin-key -XPOST 'https://localhost:9200/_flush/synced'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は例になります。
oc exec -c elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6 -- curl -s --cacert /etc/elasticsearch/secret/admin-ca --cert /etc/elasticsearch/secret/admin-cert --key /etc/elasticsearch/secret/admin-key -XPOST 'https://localhost:9200/_flush/synced'
$ oc exec -c elasticsearch-cdm-5ceex6ts-1-dcd6c4c7c-jpw6 -- curl -s --cacert /etc/elasticsearch/secret/admin-ca --cert /etc/elasticsearch/secret/admin-cert --key /etc/elasticsearch/secret/admin-key -XPOST 'https://localhost:9200/_flush/synced'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 'https://localhost:9200/_cluster/settings' -d '{ "transient": { "cluster.routing.allocation.enable" : "none" } }'$ oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query=_cluster/settings -XPUT 'https://localhost:9200/_cluster/settings' -d '{ "transient": { "cluster.routing.allocation.enable" : "none" } }'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
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 deployment.extensions/elasticsearch-cdm-0-1 resumedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新規 Pod がデプロイされます。Pod が準備状態のコンテナーを持つと、次のデプロイメントに進むことができます。
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 deployment.extensions/elasticsearch-cdm-0-1 pausedCopy to Clipboard Copied! Toggle word wrap Toggle overflow Elasticsearch クラスターが
green状態にあることを確認します。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=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記直前のコマンドで使用した Elasticsearch Pod でロールアウトを実行した場合、Pod は存在しなくなっているため、ここで新規 Pod 名が必要になります。
以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 次に進む前に、このパラメーターが
greenであることを確認します。
- Elasticsearch 設定マップを変更した場合、それぞれの Elasticsearch Pod についてこれらの手順を繰り返します。
クラスターのすべてのデプロイメントがロールアウトされたら、シャードのバランシングを再度有効にします。
oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query=_cluster/settings -XPUT 'https://localhost:9200/_cluster/settings' -d '{ "transient": { "cluster.routing.allocation.enable" : "none" } }'$ oc exec <any_es_pod_in_the_cluster> -c elasticsearch -- es_util --query=_cluster/settings -XPUT 'https://localhost:9200/_cluster/settings' -d '{ "transient": { "cluster.routing.allocation.enable" : "none" } }'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第12章 Red Hat サポート用のロギングデータの収集 リンクのコピーリンクがクリップボードにコピーされました!
サポートケースを作成する際、ご使用のクラスターについてのデバッグ情報を Red Hat サポートに提供していただくと Red Hat のサポートに役立ちます。
must-gather ツール を使用すると、プロジェクトレベルのリソース、クラスターレベルのリソース、および各クラスターロギングコンポーネントについての診断情報を収集できます。
迅速なサポートを得るには、OpenShift Container Platform とクラスターロギングの両方の診断情報を提供してください。
hack/logging-dump.sh スクリプトは使用しないでください。このスクリプトはサポートされなくなり、データを収集しません。
12.1. must-gather ツールについて リンクのコピーリンクがクリップボードにコピーされました!
oc adm must-gather CLI コマンドは、問題のデバッグに必要となる可能性のあるクラスターからの情報を収集します。
クラスターロギング環境の場合、must-gather は以下の情報を収集します。
- プロジェクトレベルの Pod、設定マップ、サービスアカウント、ロール、ロールバインディングおよびイベントを含むプロジェクトレベルのリソース
- クラスターレベルでのノード、ロール、およびロールバインディングを含むクラスターレベルのリソース
-
ログコレクター、ログストア、curator、およびログビジュアライザーなどの
openshift-loggingおよびopenshift-operators-redhatnamespace のクラスターロギングリソース
oc adm must-gather を実行すると、新しい Pod がクラスターに作成されます。データは Pod で収集され、must-gather.local で始まる新規ディレクトリーに保存されます。このディレクトリーは、現行の作業ディレクトリーに作成されます。
12.2. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- クラスターロギングおよび Elasticsearch がインストールされている。
12.3. クラスターロギングデータの収集 リンクのコピーリンクがクリップボードにコピーされました!
oc adm must-gather CLI コマンドを使用して、クラスターロギング環境についての情報を収集できます。
手順
must-gather でクラスターロギング情報を収集するには、以下を実行します。
-
must-gather情報を保存する必要のあるディレクトリーに移動します。 クラスターロギングイメージに対して
oc adm must-gatherコマンドを実行します。oc adm must-gather --image=$(oc -n openshift-logging get deployment.apps/cluster-logging-operator -o jsonpath='{.spec.template.spec.containers[?(@.name == "cluster-logging-operator")].image}')$ oc adm must-gather --image=$(oc -n openshift-logging get deployment.apps/cluster-logging-operator -o jsonpath='{.spec.template.spec.containers[?(@.name == "cluster-logging-operator")].image}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow must-gatherツールは、現行ディレクトリー内のmust-gather.localで始まる新規ディレクトリーを作成します。例:must-gather.local.4157245944708210408作成された
must-gatherディレクトリーから圧縮ファイルを作成します。たとえば、Linux オペレーティングシステムを使用するコンピューターで以下のコマンドを実行します。tar -cvaf must-gather.tar.gz must-gather.local.4157245944708210408
$ tar -cvaf must-gather.tar.gz must-gather.local.4157245944708210408Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 圧縮ファイルを Red Hat カスタマーポータル で作成したサポートケースに添付します。
第13章 Kibana のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform で Kibana コンソールを使用することで発生する可能性がある問題は簡単に解決できますが、この場合役に立つエラーメッセージは表示されません。OpenShift Container Platform に Kibana をデプロイする際に問題が発生した場合は、以下のトラブルシューティングセクションを確認してください。
13.1. Kubernetes ログインループのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
Kibana コンソールの OAuth2 プロキシーはマスターホストの OAuth2 サーバーとシークレットを共有する必要があります。シークレットが両方のサーバーで同一でない場合はログインループが発生する可能性があり、Kibana のログインページに継続的にリダイレクトされます。
手順
この問題を修正するには、以下を実行します。
以下のコマンドを実行し、現在の OAuthClient を削除します。
oc delete oauthclient/kibana-proxy
$ oc delete oauthclient/kibana-proxyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
13.2. Kibana コンソール表示時の Kubernetes の不明なエラーのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
Kibana コンソールにアクセスしようとする際に、以下のブラウザーエラーが表示される場合があります。
{"error":"invalid_request","error_description":"The request is missing a required parameter,
includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed."}
{"error":"invalid_request","error_description":"The request is missing a required parameter,
includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed."}
このエラーは、OAuth2 クライアントとサーバー間の不一致が原因で発生します。ログイン後にサーバーが安全にリダイレクトできるように、クライアントのリターンアドレスがホワイトリストで指定されている必要があります。
この問題を修正するには、OAuthClient エントリーを置き換えます。
手順
OAuthClient エントリーを置き換えるには、以下を実行します。
以下のコマンドを実行し、現在の OAuthClient を削除します。
oc delete oauthclient/kibana-proxy
$ oc delete oauthclient/kibana-proxyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
問題が解決しない場合は、OAuth クライアントに一覧表示されている URL の Kibana にアクセスしていることを確認してください。この問題は、転送先ポート (標準の 443 HTTPS ポートではなく 1443 など) の URL にアクセスすることで発生する可能性があります。OAuth クライアントを編集することで、サーバーのホワイトリストを調整できます。
oc edit oauthclient/kibana-proxy
$ oc edit oauthclient/kibana-proxy
13.3. Kibana コンソール表示時の Kubernetes の 503 エラーのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
Kibana コンソールを表示する時にプロキシーエラーが発生する場合は、2 つの問題のうちのいずれかが原因である可能性があります。
Kibana が Pod を認識していない可能性があります。Elasticsearch の起動が遅い場合、Kibana はそれに到達しようとしてタイムアウトする場合があります。関連サービスにエンドポイントがあるかどうか確認してください。
oc describe service kibana
$ oc describe service kibana Name: kibana [...] Endpoints: <none>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kibana Pod が実行中である場合、エンドポイントが一覧表示されます。実行中でない場合は、Kibana Pod とデプロイメントの状態を確認してください。デプロイメントをスケールダウンして、再び元に戻さなければならない場合があります。
Kibana サービスにアクセスするためのルートがマスクされています。これは、あるプロジェクトでテストデプロイメントを実行し、次に最初のデプロイメントを完全に削除することなく別のプロジェクトでデプロイした場合に発生する可能性があります。複数のルートが同じ宛先に送信される場合、デフォルトルーターは最初に作成されたルートにのみルーティングします。問題が発生するルートをチェックして、そのルートが複数の場所で定義されているかどうかを確認してください。
oc get route --all-namespaces --selector logging-infra=support
$ oc get route --all-namespaces --selector logging-infra=supportCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第14章 エクスポートされるフィールド リンクのコピーリンクがクリップボードにコピーされました!
ロギングシステムによってエクスポートされ、Elasticsearch および Kibana での検索に利用できるフィールドがあります。検索時には、ドットの付いたフィールドのフルネームを使用します。たとえば、Elasticsearch /_search URL の場合、Kubernetes Pod 名を検索するには、/_search/q=kubernetes.pod_name:name-of-my-pod を使用します。
以下のセクションでは、ロギングストアに存在しない可能性のあるフィールドについて説明します。これらのフィールドのすべてがすべてのレコードにある訳ではありません。フィールドは以下のカテゴリーに分類されます。
-
exported-fields-Default -
exported-fields-systemd -
exported-fields-kubernetes -
exported-fields-pipeline_metadata -
exported-fields-ovirt -
exported-fields-aushape -
exported-fields-tlog
14.1. デフォルトのエクスポートされるフィールド リンクのコピーリンクがクリップボードにコピーされました!
これらは、ロギングシステムによってエクスポートされるデフォルトフィールドであり、Elasticsearch および Kibana での検索に利用できます。デフォルトフィールドは最上位および collectd* フィールドです。
最上位フィールド
最上位フィールドは、すべてのアプリケーションに共通であり、すべてのレコードに存在する可能性があります。Elasticsearch テンプレートの場合、最上位フィールドは、テンプレートのマッピングセクションで default の実際のマッピングを設定します。
| パラメーター | 説明 |
|---|---|
|
|
ログペイロードが作成された時点か、作成時間が不明な場合はログペイロードが最初に収集された時点の UTC 値のマーキング。これは、ログを処理するパイプラインのログペイロードの生成時についてのベストエフォートベースの判別に基づきます。フィールドを特定の目的のために予約されることを示す |
|
| これはマシンの geo IP です。 |
|
|
|
|
| ソースサーバーの IP アドレス V4。配列である場合があります。 |
|
| ソースサーバーの IP アドレス V6(ある場合)。 |
|
|
rsyslog (severitytext プロパティー)、python のロギングモジュールによって提供されるロギングレベル。使用できる値は
をクリックします。
他のロギングシステムからのログレベルおよび優先順位は、最も近い一致にマップされる必要があります。例については、python logging を参照してください。 |
|
| 通常のログエントリーメッセージまたはペイロードです。これはコレクターまたはノーマライザーによってプルされるメタデータから削除される可能性があります。これは UTF-8 でエンコーディングされます。 |
|
| ロギングエンティティーのプロセス ID です (ある場合)。 |
|
|
ロギングエンティティーに関連付けられたサービスの名前です (ある場合)。たとえば、 |
|
| コレクターまたはノーマライザーによって各ログに配置される、オプションで指定される Operator 定義のタグの一覧です。ペイロードには、ホワイトスペースで区切られた文字列トークンまたは文字列トークンの JSON 一覧を使用した文字列を指定できます。 |
|
|
ファイルパスのコレクター |
|
| オフセット値では、値が単一ログファイルで単調に増加する場合に、バイトの値をファイルのログ行 (ゼロまたは 1 ベース) またはログ行の番号 (ゼロまたは 1 ベース) の開始地点に表示できます。この値はラップでき、ログファイルの新規バージョンを表示できます (ローテーション)。 |
|
|
このレコードを、その名前を共有する |
|
|
これは、 |
collectd フィールド
以下のフィールドは namespace メトリクスのメタデータを表します。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: string
|
|
| type: string
|
|
| type: string
|
|
| type: string
|
|
| type: string
|
collectd.processes フィールド
以下のフィールドは collectd プロセスのプラグインに対応します。
| パラメーター | 説明 |
|---|---|
|
|
type: integer |
collectd.processes.ps_disk_ops フィールド
collectd ps_disk_ops タイプのプロセスプラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
collectd.processes.ps_cputime フィールド
collectd ps_cputime タイプのプロセスプラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
collectd.processes.ps_count フィールド
collectd ps_count タイプのプロセスプラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: integer
|
|
| type: integer
|
collectd.processes.ps_pagefaults フィールド
collectd ps_pagefaults タイプのプロセスプラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
collectd.processes.ps_disk_octets フィールド
collectd ps_disk_octets タイプのプロセスプラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
|
| type: float
|
collectd.disk フィールド
collectd ディスクプラグインに対応します。
collectd.disk.disk_merged フィールド
collectd disk_merged タイプのディスクプラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
collectd.disk.disk_octets フィールド
collectd disk_octets タイプのディスクプラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
collectd.disk.disk_time フィールド
collectd disk_time タイプのディスクプラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
collectd.disk.disk_ops フィールド
collectd disk_ops タイプのディスクプラグインです。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
|
| type: integer
|
collectd.disk.disk_io_time フィールド
collectd disk_io_time タイプのディスクプラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
collectd.interface フィールド
collectd インターフェイスプラグインに対応します。
collectd.interface.if_octets フィールド
collectd if_octets タイプのインターフェイスプラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
collectd.interface.if_packets フィールド
collectd if_packets タイプのインターフェイスプラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
collectd.interface.if_errors フィールド
collectd if_errors タイプのインターフェイスプラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
collectd.interface.if_dropped フィールド
collectd if_dropped タイプのインターフェイスプラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
collectd.virt フィールド
collectd 仮想プラグインに対応します。
collectd.virt.if_octets フィールド
collectd if_octets タイプの仮想プラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
collectd.virt.if_packets フィールド
collectd if_packets タイプの仮想プラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
collectd.virt.if_errors フィールド
collectd if_errors タイプの仮想プラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
collectd.virt.if_dropped フィールド
collectd if_dropped タイプの仮想プラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
collectd.virt.disk_ops フィールド
collectd disk_ops タイプの仮想プラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
collectd.virt.disk_octets フィールド
collectd disk_octets タイプの仮想プラグイン。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
|
| type: float
|
|
| type: float
|
|
| type: float
|
collectd.CPU フィールド
collectd CPU プラグインに対応します。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
collectd.df フィールド
collectd df プラグインに対応します。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
collectd.entropy フィールド
collectd エントロピープラグインに対応します。
| パラメーター | 説明 |
|---|---|
|
| type: integer
|
collectd.memory フィールド
collectd メモリープラグインに対応します。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
collectd.swap フィールド
collectd swap プラグインに対応します。
| パラメーター | 説明 |
|---|---|
|
| type: integer
|
|
| type: integer
|
collectd.load フィールド
collectd ロードプラグインに対応します。
collectd.load.load フィールド
collectd ロードタイプのロードプラグイン
| パラメーター | 説明 |
|---|---|
|
| type: float
|
|
| type: float
|
|
| type: float
|
collectd.aggregation フィールド
collectd 集計プラグインに対応します。
| パラメーター | 説明 |
|---|---|
|
| type: float
|
collectd.statsd フィールド
collectd statsd プラグインに対応します。
| パラメーター | 説明 |
|---|---|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
collectd.postgresql フィールド
collectd postgresql プラグインに対応します。
| パラメーター | 説明 |
|---|---|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
|
| type: integer
|
14.2. systemd のエクスポートされるフィールド リンクのコピーリンクがクリップボードにコピーされました!
これらのフィールドは OpenShift Container Platform クラスターロギングによってエクスポートされる systemd フィールドであり、Elasticsearch および Kibana での検索に利用できます。
systemd ジャーナルに固有の共通フィールドが含まれます。アプリケーション は、独自のフィールドをジャーナルに書き込む可能性があります。それらは systemd.u namespace で利用できます。RESULT および UNIT はこれらの 2 つのフィールドです。
systemd.k フィールド
以下の表には、systemd カーネル固有のメタデータが含まれます。
| パラメーター | 説明 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
systemd.t フィールド
systemd.t Fields は信頼されたジャーナルフィールドであり、ジャーナルによって暗黙的に追加されるフィールドであり、クライアントノードで変更することはできません。
| パラメーター | 説明 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
systemd.u フィールド
systemd.u Fields はクライアントから直接渡され、ジャーナルに保存されます。
| パラメーター | 説明 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 非公式の使用のみの場合に限定されます。 |
|
| 非公式の使用のみの場合に限定されます。 |
14.3. Kubernetes のエクスポートされるフィールド リンクのコピーリンクがクリップボードにコピーされました!
これらは OpenShift Container Platform クラスターロギングでエクスポートされる Kubernetes フィールドであり、Elasticsearch および Kibana での検索に利用できます。
Kubernetes 固有メタデータの namespace です。kubernetes.pod_name は Pod の名前です。
kubernetes.labels フィールド
OpenShift オブジェクトに割り当てられるラベルは kubernetes.labels です。各ラベル名はラベルフィールドのサブフィールドです。それぞれのラベル名ではドットが取られます。つまり、名前のドットはアンダースコアに置き換えられます。
| パラメーター | 説明 |
|---|---|
|
| Pod の Kubernetes ID。 |
|
| Kubernetes の namespace の名前。 |
|
| Kubernetes の namespace の ID。 |
|
| Kubernetes ノード名。 |
|
| Kubernetes のコンテナーの名前。 |
|
| Kubernetes オブジェクトに関連付けられるデプロイメント。 |
|
| Kubernetes オブジェクトに関連付けられる deploymentconfig。 |
|
| Kubernetes オブジェクトに関連付けられるコンポーネント。 |
|
| Kubernetes オブジェクトに関連付けられるプロバイダー。 |
kubernetes.annotations フィールド
OpenShift オブジェクトに関連付けられるアノテーションは kubernetes.annotations フィールドです。
14.4. コンテナーのエクスポートされるフィールド リンクのコピーリンクがクリップボードにコピーされました!
これらは OpenShift Container Platform クラスターロギングによってエクスポートされる Docker フィールドであり、Elasticsearch および Kibana での検索に利用できます。namespace は docker コンテナー固有のメタデータの namespace です。docker.container_id は Docker コンテナー ID です。
pipeline_metadata.collector フィールド
このセクションには、コレクターに固有のメタデータが含まれます。
| パラメーター | 説明 |
|---|---|
|
| コレクターの FQDN。これはログの実際のエミッターの FQDN とは異なる場合があります。 |
|
| コレクターの名前。 |
|
| コレクターのバージョン。 |
|
| コレクターサーバーの IP アドレス v4。 配列である場合があります。 |
|
| コレクターサーバーの IP アドレス v6 。 配列である場合があります。 |
|
| ログメッセージがコレクターによって受信された方法。TCP/UDP または imjournal/imfile。 |
|
| メッセージがコレクターによって受信された時間。 |
|
| コレクターで収集された、解析されていない元のログメッセージ、または限りなくソースに近いログメッセージ。 |
pipeline_metadata.normalizer フィールド
このセクションには、ノーマライザーに固有のメタデータが含まれます。
| パラメーター | 説明 |
|---|---|
|
| ノーマライザーの FQDN。 |
|
| ノーマライザーの名前。 |
|
| ノーマライザーのバージョン。 |
|
| ノーマライザーサーバーの IP アドレス v4。 配列である場合があります。 |
|
| ノーマライザーサーバーの IP アドレス v6 。配列である場合があります。 |
|
| ログメッセージがノーマライザーによって受信された方法。TCP/UDP かどうか。 |
|
| メッセージがノーマライザーによって受信された時間。 |
|
| ノーマライザーで受信される、解析されていない元のログメッセージ。 |
|
| このフィールドは、メッセージの追跡を記録します。各コレクターおよびノーマライザーは自らについての情報およびメッセージが処理された日時についての情報を追加します。 |
14.5. oVirt のエクスポートされるフィールド リンクのコピーリンクがクリップボードにコピーされました!
これらは OpenShift Container Platform クラスターロギングでエクスポートされる oVirt フィールドであり、Elasticsearch および Kibana での検索に利用できます。
oVirt メタデータの namespace。
| パラメーター | 説明 |
|---|---|
|
| データソース、ホスト、VMS、およびエンジンのタイプ。 |
|
| oVirt ホストの UUID。 |
ovirt.engine フィールド
oVirt エンジン関連のメタデータの namespace。oVirt エンジンの FQDN は ovirt.engine.fqdn です。
14.6. Aushape のエクスポートされるフィールド リンクのコピーリンクがクリップボードにコピーされました!
これらは OpenShift Container Platform クラスターロギングでエクスポートされる Aushape フィールドであり、Elasticsearch および Kibana での検索に利用できます。
Aushape で変換される監査イベント。詳細は Aushape を参照してください。
| パラメーター | 説明 |
|---|---|
|
| 監査イベントのシリアル番号。 |
|
| 監査イベントが発生したホストの名前。 |
|
| イベントの変換中に aushape に発生したエラー。 |
|
| イベントオブジェクトに関連する JSONPath 表現の配列であり、イベントサイズの制限の結果として削除されたコンテンツを持つオブジェクトまたは配列を指定します。空の文字列は、イベントがコンテンツを削除したことを意味し、空の配列は、指定されていないオブジェクトおよび配列によってトリミングが生じたことを意味します。 |
|
| 元の監査イベントを表す配列ログレコード文字列。 |
aushape.data フィールド
Aushape に関連する解析された監査イベントデータ。
| パラメーター | 説明 |
|---|---|
|
| type: nested |
|
| type: string |
|
| type: nested |
|
| type: nested |
|
| type: nested |
14.7. Tlog のエクスポートされるフィールド リンクのコピーリンクがクリップボードにコピーされました!
これらは OpenShift Container Platform クラスターロギングでエクスポートされる Tlog フィールドであり、Elasticsearch および Kibana での検索に利用できます。
Tlog ターミナル I/O の記録メッセージ。詳細は Tlog を参照してください。
| パラメーター | 説明 |
|---|---|
|
| メッセージ形式のバージョン番号。 |
|
| 記録されたユーザー名。 |
|
| ターミナルタイプ名。 |
|
| 記録されたセッションの監査セッション ID。 |
|
| セッション内のメッセージの ID。 |
|
| セッション内のメッセージの位置 (ミリ秒単位)。 |
|
| このメッセージのイベントの配分 (時間)。 |
|
| 無効な文字が除去された入力テキスト。 |
|
| 除去された無効な入力文字 (バイト)。 |
|
| 無効な文字が除去された出力テキスト。 |
|
| 除去された無効な出力文字 (バイト)。 |
第15章 クラスターロギングのアンインストール リンクのコピーリンクがクリップボードにコピーされました!
クラスターロギングをお使いの OpenShift Container Platform クラスターから削除することができます。
15.1. OpenShift Container Platform からのクラスターロギングのアンインストール リンクのコピーリンクがクリップボードにコピーされました!
クラスターロギングのカスタムリソース (CR) を削除して、ログ集計を停止できます。ただし、CR の削除後に残る他のクラスターロギングコンポーネントがあり、これらはオプションで削除できます。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
手順
クラスターロギングを削除するには、以下を実行します。
OpenShift Container Platform Web コンソールを使って
ClusterLoggingCR を削除できます。- Administration → Custom Resource Definitions ページに切り替えます。
- Custom Resource Definitions ページで、ClusterLogging をクリックします。
- Custom Resource Definition Details ページで、 Instances をクリックします。
-
インスタンスの横にある Options メニュー
をクリックし、 Delete ClusterLogging を選択します。
オプション: カスタムリソース定義 (CRD) を削除します。
- Administration → Custom Resource Definitions ページに切り替えます。
-
ClusterLogging の横にある Options メニュー
をクリックし、 Delete Custom Resource Definition を選択します。
-
Elasticsearch の横にある Options メニュー
をクリックし、Delete Custom Resource Definition を選択します。
-
LogForwarding の横にある Options メニュー
をクリックし、 Delete Custom Resource Definition を選択します。
オプション: Cluster Logging Operator および Elasticsearch Operator を削除します。
- Operators → Installed Operators ページに切り替えます。
-
openshift-loggingプロジェクトを選択します。 -
Cluster Logging Operator の横にある Options メニュー
をクリックし、Uninstall Operator を選択します。
-
openshift-operators-redhatプロジェクトを選択します。 -
Elasticsearch Operator の横にある Options メニュー
をクリックし、Uninstall Operator を選択します。
オプション: Cluster Logging および Elasticsearch プロジェクト。
- Home → Projects ページに切り替えます。
-
openshift-logging プロジェクトの横にある Options メニュー
をクリックし、Delete Project を選択します。
-
ダイアログボックスで
openshift-loggingを入力して、Delete をクリックし、削除を確認します。 openshift-operators-redhat プロジェクトの横にある Options メニュー
をクリックし、Delete Project を選択します。
重要他のグローバル Operator がこの namespace にインストールされている場合、
openshift-operators-redhatプロジェクトを削除しないでください。-
ダイアログボックスで
openshift-operators-redhatを入力し、Delete をクリックして削除を確認します。