2.4. Red Hat OpenShift の logging サブシステムのデプロイについて

ClusterLogging CR は、ログを収集し、保存し、視覚化するために必要なロギングスタックのすべてのコンポーネントを含む完全なロギングシステム環境を定義します。Red Hat OpenShift Logging Operator はロギングシステム CR を監視し、ロギングデプロイメントを適宜調整します。

管理者およびアプリケーション開発者は、表示アクセスのあるプロジェクトのログを表示できます。

詳細は、Red Hat OpenShift のロギングサブシステムのインストール を参照してください。

2.4.1. JSON Red Hat OpenShift Service on AWS Logging について

JSON ロギングを使用して、JSON 文字列を構造化オブジェクトに解析するようにログ転送 API を設定できます。以下のタスクを実行します。

  • JSON ログの解析
  • Elasticsearch の JSON ログデータの設定
  • JSON ログの Elasticsearch ログストアへの転送

2.4.2. Kubernetes イベントの収集および保存

Red Hat OpenShift Service on AWS イベントルーターは、Kubernetes イベントを監視し、それらを Red Hat OpenShift Service on AWS Logging によって収集できるようにログに記録する Pod です。イベントルーターは手動でデプロイする必要があります。

詳細は、 Kubernetes イベントの収集および保存 を参照してください。

2.4.3. Red Hat OpenShift Service on AWS Logging の更新について

Red Hat OpenShift Service on AWS を使用すると、Red Hat OpenShift Service on AWS Logging を更新できます。Red Hat OpenShift Service on AWS Logging の更新時には、以下の Operator を更新する必要があります。

  • Elasticsearch Operator
  • Cluster Logging Operator

詳細は、OpenShift Logging の更新 を参照してください。

2.4.4. クラスターダッシュボードの表示

Red Hat OpenShift Service on AWS Logging ダッシュボードには、クラスターレベルで Elasticsearch インスタンスに関する詳細を示すチャートが含まれています。これらのチャートは、問題の診断と予測に役立ちます。

詳細は、クラスターダッシュボードの表示 を参照してください。

2.4.5. Red Hat OpenShift Service on AWS Logging のトラブルシューティングについて

次のタスクを実行してログの問題をトラブルシューティングできます。

  • ロギングステータスの表示
  • ログストアのステータスの表示
  • ロギングアラートの理解
  • Red Hat サポート用のロギングデータの収集
  • Critical Alerts のトラブルシューティング

2.4.6. Red Hat OpenShift Service on AWS Logging のアンインストールについて

ClusterLogging カスタムリソース (CR) を削除して、ログ集計を停止できます。CR の削除後に残る他のクラスターロギングコンポーネントがあり、これらはオプションで削除できます。

詳細は、OpenShift Logging のアンインストール を参照してください。

2.4.7. フィールドのエクスポート

ロギングシステムはフィールドをエクスポートします。エクスポートされたフィールドはログレコードに存在し、Elasticsearch および Kibana から検索できます。

詳細は、フィールドのエクスポート を参照してください。

2.4.8. サブシステムコンポーネントのロギングについて

ロギングシステムコンポーネントには、すべてのノードおよびコンテナーログを収集し、それらをログストアに書き込む Red Hat OpenShift Service on AWS クラスターの各ノードにデプロイされるコレクターが含まれます。一元化された Web UI を使用し、集計されたデータを使用して高度な可視化 (visualization) およびダッシュボードを作成できます。

ロギングサブシステムの主なコンポーネントは次のとおりです。

  • collection: これは、クラスターからログを収集し、それらをフォーマットし、ログストアに転送するコンポーネントです。現在の実装は Fluentd です。
  • log store: これはログが保存される場所です。デフォルトの実装は Elasticsearch です。デフォルトの Elasticsearch ログストアを使用、またはログを外部ログストアに転送できます。デフォルトのログストアは、短期の保存について最適化され、テストされています。
  • visualization: これは、ログ、グラフ、グラフなどを表示するために使用される UI コンポーネントです。現在の実装は Kibana です。

2.4.9. ロギングコレクターについて

Red Hat OpenShift のロギングサブシステムは、コンテナーとノードのログを収集します。

デフォルトでは、ログコレクターは以下のソースを使用します。

  • すべてのシステムログ用の journald
  • すべてのコンテナーログ用の /var/log/containers/*.log

監査ログを収集するようにログコレクターを設定すると、/var/log/audit/audit.log から取得されます。

ロギングコレクターは、Pod を各 Red Hat OpenShift Service on AWS ノードにデプロイするデーモンセットです。システムおよびインフラストラクチャーのログは、オペレーティングシステム、コンテナーランタイム、および Red Hat OpenShift Service on AWS からの journald ログメッセージによって生成されます。アプリケーションログは CRI-O コンテナーエンジンによって生成されます。Fluentd はこれらのソースからログを収集し、Red Hat OpenShift Service on AWS で設定したように内部または外部に転送します。

コンテナーランタイムは、プロジェクト、Pod 名、およびコンテナー ID などのログメッセージのソースを特定するための最小限の情報を提供します。この情報だけでは、ログのソースを一意に特定することはできません。ログコレクターがログを処理する前に、指定された名前およびプロジェクトを持つ Pod が削除される場合は、ラベルやアノテーションなどの API サーバーからの情報は利用できない可能性があります。そのため、似たような名前の Pod やプロジェクトからログメッセージを区別したり、ログのソースを追跡できない場合があります。この制限により、ログの収集および正規化は ベストエフォート ベースであると見なされます。

重要

利用可能なコンテナーランタイムは、ログメッセージのソースを特定するための最小限の情報を提供し、個別のログメッセージが一意となる確証はなく、これらのメッセージにより、そのソースを追跡できる訳ではありません。

詳細は、ロギングコレクターの設定 を参照してください。

2.4.10. ログストアについて

デフォルトで、Red Hat OpenShift Service on AWS は Elasticsearch (ES) を使用してログデータを保存します。オプションで、Log Forwarder API を使用して、ログを外部ストアに転送できます。fluentd、rsyslog、kafka など、いくつかのタイプのストアがサポートされています。

ロギングサブシステム Elasticsearch インスタンスは、約 7 日間の短期ストレージ用に最適化およびテストされています。長期間ログを保持する必要がある場合は、データをサードパーティーのストレージシステムに移動することが推奨されます。

Elasticsearch は Fluentd からのログデータをデータストアまたは インデックス に編成し、それぞれのインデックスを シャード と呼ばれる複数の部分に分割します。これは、Elasticsearch クラスターの Elasticsearch ノードセット全体に分散されます。Elasticsearch を、レプリカ と呼ばれるシャードのコピーを作成するように設定できます。Elasticsearch はこれを Elasticsearch ノード全体に分散します。ClusterLogging カスタムリソース (CR) により、データの冗長性および耐障害性を確保するためにシャードを複製する方法を指定できます。また、ClusterLogging CR の保持ポリシーを使用して各種のログが保持される期間を指定することもできます。

注記

インデックステンプレートのプライマリーシャードの数は Elasticsearch データノードの数と等しくなります。

Red Hat OpenShift Logging Operator および OpenShift Elasticsearch Operator は、各 Elasticsearch ノードが独自のストレージボリュームを含む一意のデプロイメントを使用してデプロイされるようにします。ClusterLogging カスタムリソース (CR) を使用して Elasticsearch ノードの数を適宜増やすことができます。ストレージの設定に関する考慮事項は、Elasticsearch ドキュメント を参照してください。

注記

可用性の高い Elasticsearch 環境には 3 つ以上の Elasticsearch ノードが必要で、それぞれが別のホストに置かれる必要があります。

Elasticsearch インデックスに適用されているロールベースアクセス制御 (RBAC) は、開発者のログの制御アクセスを可能にします。管理者はすべてのログに、開発者は各自のプロジェクトのログにのみアクセスできます。

詳細は、ログストアの設定 を参照してください。

2.4.11. ロギングの可視化について

Red Hat OpenShift Service on AWS は Kibana を使用して、Fluentd によって収集され、Elasticsearch によってインデックス化されるログデータを表示します。

Kibana は、ヒストグラム、線グラフ、円グラフその他の可視化機能を使用して Elasticsearch データをクエリーし、検出し、可視化するためのブラウザーベースのコンソールインターフェイスです。

詳細は、ログビジュアライザーの設定 を参照してください。

2.4.12. イベントのルーティングについて

イベントルーターは、Red Hat OpenShift Service on AWS イベントを監視する Pod であるため、Red Hat のロギングサブシステムによってイベントを収集できます。イベントルーターはすべてのプロジェクトからイベントを収集し、それらを STDOUT に書き込みます。Fluentd はそれらのイベントを収集し、それらを Red Hat OpenShift Service on AWS Elasticsearch インスタンスに転送します。Elasticsearch はイベントを infra インデックスにインデックス化します。

イベントルーターは手動でデプロイする必要があります。

詳細は、 Kubernetes イベントの収集および保存 を参照してください。

2.4.13. ログ転送

デフォルトでは、Red Hat OpenShift のロギングサブシステムは、ClusterLogging カスタムリソース (CR) で定義されているデフォルトの内部 Elasticsearch ログストアにログを送信します。ログを他のログアグリゲーターに転送する必要がある場合は、ログ転送機能を使用してログをクラスター内外の特定のエンドポイントに送信できます。

詳細は、ログのサードパーティーシステムへの転送 を参照してください。