7.3. クラスターダッシュボードの表示
OpenShift Cluster Manager の Logging/Elasticsearch Nodes および Openshift Logging ダッシュボードには、Elasticsearch インスタンスおよび個々の Elasticsearch ノードに関する詳細な情報が含まれており、問題の予防と診断に使用できます。
OpenShift Logging ダッシュボードには、クラスターリソース、ガベージコレクション、クラスターのシャード、Fluentd 統計など、クラスターレベルでの Elasticsearch インスタンスの詳細を表示するチャートが含まれます。
Logging/Elasticsearch Nodes ダッシュボードには、Elasticsearch インスタンスの詳細を表示するチャートが含まれます。これらのチャートの多くはノードレベルのものであり、これには、インデックス、シャード、リソースなどの詳細が含まれます。
7.3.1. Elasticsearch および OpenShift Logging ダッシュボードへのアクセス
OpenShift Cluster Manager で Logging/Elasticsearch Nodes および OpenShift Logging ダッシュボードを表示できます。
手順
ダッシュボードを起動するには、以下を実行します。
-
Red Hat OpenShift Service on AWS Red Hat Hybrid Cloud Console で、Observe
Dashboards をクリックします。 Dashboards ページで、Dashboard メニューから Logging/Elasticsearch Nodes または OpenShift Logging を選択します。
Logging/Elasticsearch Nodes ダッシュボードの場合は、表示する必要のある Elasticsearch ノードを選択し、データの解像度を設定できます。
適切なダッシュボードが表示され、データの複数のチャートが表示されます。
- 必要に応じて、Time Range メニューおよび Refresh Interval メニューから、データを表示するさまざまな時間の範囲またはデータのリフレッシュレートを選択します。
ダッシュボードチャートの詳細は、OpenShift Logging ダッシュボードについて および Logging/Elastisearch Nodes ダッシュボードについて を参照してください。
7.3.2. OpenShift Logging ダッシュボードについて
OpenShift Logging ダッシュボードには、クラスターレベルで Elasticsearch インスタンスの詳細を表示するチャートが含まれており、これを使用して問題を診断し、予測できます。
メトリクス | 説明 |
---|---|
Elastic Cluster Status (Elastic Cluster のステータス) | Elasticsearch の現行ステータス:
|
Elastic Nodes (Elastic ノード) | Elasticsearch インスタンス内の Elasticsearch ノードの合計数。 |
Elastic Shards (Elastic シャード) | Elasticsearch インスタンス内の Elasticsearch シャードの合計数。 |
Elastic Documents (Elastic ドキュメント) | Elasticsearch インスタンス内の Elasticsearch ドキュメントの合計数。 |
Total Index Size on Disk (ディスク上の合計インデックスサイズ) | Elasticsearch インデックスに使用されるディスク容量の合計。 |
Elastic Pending Tasks (Elastic の保留中のタスク) | インデックスの作成、インデックスのマッピング、シャードの割り当て、シャードの失敗など、完了していない Elasticsearch 変更の合計数。 |
Elastic JVM GC time (Elastic JVM GC 時間) | JVM がクラスターでの Elasticsearch ガベージコレクション操作の実行に費した時間。 |
Elastic JVM GC Rate (Elastic JVM GC レート) | JVM が 1 秒ごとにガベージアクティビティーを実行する合計回数。 |
Elastic Query/Fetch Latency Sum (Elastic クエリー/フェッチのレイテンシーの合計) |
通常、フェッチレイテンシーの時間はクエリーレイテンシーよりも短くなります。フェッチレイテンシーが一貫して増加する場合、これはディスクの速度の低下、データの増加、または結果が多すぎる大規模な要求があることを示している可能性があります。 |
Elastic Query Rate (Elastic クエリーレート) | 各 Elasticsearch ノードの 1 秒あたりに Elasticsearch インスタンスに対して実行されたクエリーの合計。 |
CPU | コンポーネントごとに表示される Elasticsearch、Fluentd、および Kibana によって使用される CPU の量。 |
Elastic JVM Heap Used (Elastic JVM ヒープの使用) | 使用される JVM メモリーの量。正常なクラスターでは、JVM ガベージコレクションによってメモリーが解放されると、グラフは定期的な低下を示します。 |
Elasticsearch Disk Usage (Elasticsearch ディスクの使用) | 各 Elasticsearch ノードの Elasticsearch インスタンスによって使用されるディスク容量の合計。 |
File Descriptors In Use (使用中のファイル記述子) | Elasticsearch、Fluentd、および Kibana によって使用されるファイル記述子の合計数。 |
FluentD emit count (FluentD の生成数) | Fluentd デフォルト出力の 1 秒あたりの Fluentd メッセージの合計数およびデフォルト出力の再試行数。 |
FluentD バッファーの使用法 | チャンクに使用されている Fluentd バッファーの割合。バッファーが一杯になると、Fluentd が受信するログ数を処理できないことを示す可能性があります。 |
Elastic rx bytes (Elastic rx バイト) | Elasticsearch が FluentD、Elasticsearch ノード、およびその他のソースから受信した合計バイト数。 |
Elastic Index Failure Rate (Elastic インデックス失敗率) | Elasticsearch インデックスで失敗した 1 秒あたりの合計回数。レートが高い場合は、インデックスに問題があることを示す可能性があります。 |
FluentD Output Error Rate (FluentD 出力エラー率) | FluentD がログの出力に失敗する 1 秒あたりの合計回数。 |
7.3.3. Logging/Elasticsearch ノードダッシュボードのチャート
Logging/Elasticsearch Nodes ダッシュボードには、追加の診断に使用できる Elasticsearch インスタンスの詳細を表示するチャートが含まれます。これらのチャートの多くはノードレベルのものです。
- Elasticsearch ステータス
- Logging/Elasticsearch Nodes ダッシュボードには、Elasticsearch インスタンスのステータスに関する以下のチャートが含まれます。
メトリクス | 説明 |
---|---|
Cluster status (クラスターステータス) | Elasticsearch の green、yellow、および red ステータスを使用する、選択された期間におけるクラスターの正常性ステータス。
|
Cluster nodes (クラスターノード) | クラスター内の Elasticsearch ノードの合計数。 |
Cluster data nodes (クラスターデータノード) | クラスター内の Elasticsearch データノードの数。 |
Cluster pending tasks (クラスターの保留中のタスク) | 終了しておらず、クラスターキューで待機中のクラスター状態変更の数。たとえば、インデックスの作成、インデックスの削除、シャードの割り当てなどがあります。増加傾向は、クラスターが変更に対応できないことを示します。 |
- Elasticsearch クラスターインデックスシャードのステータス
- 各 Elasticsearch インデックスは、永続化されたデータの基本単位である 1 つ以上のシャードの論理グループです。インデックスシャードには、プライマリーシャードとレプリカシャードの 2 つのタイプがあります。ドキュメントがインデックスにインデックス化されると、これはプライマリーシャードのいずれかに保存され、そのシャードのすべてのレプリカにコピーされます。プライマリーシャードの数はインデックスの作成時に指定され、この数はインデックスの有効期間に変更することはできません。レプリカシャードの数はいつでも変更できます。
インデックスシャードは、ライフサイクルフェーズまたはクラスターで発生するイベントに応じて複数の状態に切り替わります。シャードが検索およびインデックス要求を実行できる場合、シャードはアクティブになります。シャードがこれらの要求を実行できない場合、シャードは非アクティブになります。シャードが初期化、再割り当て、未割り当てなどの状態にある場合は、シャードが非アクティブになる可能性があります。
インデックスシャードは、データの物理表現であるインデックスセグメントと呼ばれる多数の小さな内部ブロックで構成されます。インデックスセグメントは、Lucene が新たにインデックス化されたデータをコミットしたときに作成される比較的小さく、イミュータブルな Lucene インデックスです。Lucene (Elasticsearch によって使用される検索ライブラリー) は、バックグラウンドでインデックスセグメントをより大きなセグメントにマージし、セグメントの合計数を低い状態に維持します。セグメントをマージするプロセスが新規セグメントが作成される速度よりも遅くなる場合は、問題があることを示す可能性があります。
Lucene が検索操作などのデータ操作を実行する場合、Lucene は関連するインデックスのインデックスセグメントに対して操作を実行します。そのため、各セグメントには、メモリーにロードされ、マップされる特定のデータ構造が含まれます。インデックスマッピングは、セグメントデータ構造で使用されるメモリーに大きく影響を与える可能性があります。
Logging/Elasticsearch Nodes ダッシュボードには、Elasticsearch インデックスシャードに関する以下のチャートが含まれます。
メトリクス | 説明 |
---|---|
Cluster active shards (クラスターのアクティブシャード) | クラスターにおけるアクティブなプライマリーシャードの数と、レプリカを含むシャードの合計数。シャードの数が大きくなると、クラスターのパフォーマンスが低下し始める可能性があります。 |
Cluster initializing shards (クラスターの初期化シャード) | クラスターのアクティブではないシャードの数。アクティブではないシャードは、初期化され、別のノードに再配置されるているシャードや、割り当てられていないシャードを指します。通常、クラスターには短期間アクティブではないシャードがあります。長期間にわたってアクティブではないシャードの数が増える場合は、問題があることを示す可能性があります。 |
Cluster relocating shards (クラスターの再配置シャード) | Elasticsearch が新規ノードに再配置されているシャードの数。Elasticsearch は、ノードでのメモリー使用率が高い場合や新規ノードがクラスターに追加された後などの複数の理由によりノードを再配置します。 |
Cluster unassigned shards (クラスター未割り当てシャード) | 未割り当てのシャードの数。Elasticsearch シャードは、新規インデックスの追加やノードの障害などの理由で割り当てられない可能性があります。 |
- Elasticsearch ノードメトリクス
- 各 Elasticsearch ノードには、タスクの処理に使用できるリソースの量に制限があります。すべてのリソースが使用中で、Elasticsearch が新規タスクの実行を試行する場合、Elasticsearch は一部のリソースが利用可能になるまでタスクをキューに入れます。
Logging/Elasticsearch Nodes ダッシュボードには、選択されたノードのリソース使用状況に関する以下のチャートと Elasticsearch キューで待機中のタスクの数が含まれます。
メトリクス | 説明 |
---|---|
ThreadPool tasks (ThreadPool タスク) | 個別のキューの待機中のタスクの数 (タスクタイプ別に表示されます)。キュー内のタスクの長期間累積した状態は、ノードリソースの不足やその他の問題があることを示す可能性があります。 |
CPU usage (CPU の使用率) | ホストコンテナーに割り当てられる CPU の合計の割合として、選択した Elasticsearch ノードによって使用される CPU の量。 |
メモリー使用量 | 選択した Elasticsearch ノードによって使用されるメモリー量。 |
Disk usage (ディスク使用量) | 選択された Elasticsearch ノードのインデックスデータおよびメタデータに使用されるディスク容量の合計。 |
Documents indexing rate (ドキュメントインデックス化レート) | ドキュメントが選択された Elasticsearch ノードでインデックス化されるレート。 |
Indexing latency (インデックス化レイテンシー) | 選択された Elasticsearch ノードでドキュメントをインデックス化するのに必要となる時間。インデックス化レイテンシーは、JVM ヒープメモリーや全体の負荷などの多くの要素による影響を受ける可能性があります。レイテンシーが増加する場合は、インスタンス内のリソース容量が不足していることを示します。 |
Search rate (検索レート) | 選択された Elasticsearch ノードで実行される検索要求の数。 |
Search latency (検索レイテンシー) | 選択された Elasticsearch ノードで検索要求を完了するのに必要となる時間。検索レイテンシーは、数多くの要因の影響を受ける可能性があります。レイテンシーが増加する場合は、インスタンス内のリソース容量が不足していることを示します。 |
Documents count (with replicas)(ドキュメント数 (レプリカ使用)) | 選択された Elasticsearch ノードに保管される Elasticsearch ドキュメントの数。これには、ノードで割り当てられるプライマリーシャードとレプリカシャードの両方に保存されるドキュメントが含まれます。 |
Documents deleting rate (ドキュメントの削除レート) | 選択された Elasticsearch ノードに割り当てられるいずれかのインデックスシャードから削除される Elasticsearch ドキュメントの数。 |
Documents merging rate (ドキュメントのマージレート) | 選択された Elasticsearch ノードに割り当てられるインデックスシャードのいずれかでマージされる Elasticsearch ドキュメントの数。 |
- Elasticsearch ノードフィールドデータ
- Fielddata はインデックスの用語のリストを保持する Elasticsearch データ構造であり、JVM ヒープに保持されます。fielddata のビルドはコストのかかる操作であるため、Elasticsearch は fielddata 構造をキャッシュします。Elasticsearch は、基礎となるインデックスセグメントが削除されたり、マージされる場合や、すべての fielddata キャッシュに JVM HEAP メモリーが十分にない場合に、fielddata キャッシュをエビクトできます。
Logging/Elasticsearch Nodes ダッシュボードには、Elasticsearch fielddata に関する以下のチャートが含まれます。
メトリクス | 説明 |
---|---|
Fielddata memory size (Fielddata メモリーサイズ) | 選択された Elasticsearch ノードの fielddata キャッシュに使用される JVM ヒープの量。 |
Fielddata evictions (Fielddata エビクション) | 選択された Elasticsearch ノードから削除された fielddata 構造の数。 |
- Elasticsearch ノードのクエリーキャッシュ
- インデックスに保存されているデータが変更されない場合、検索クエリーの結果は Elasticsearch で再利用できるようにノードレベルのクエリーキャッシュにキャッシュされます。
Logging/Elasticsearch Nodes ダッシュボードには、Elasticsearch ノードのクエリーキャッシュに関する以下のチャートが含まれます。
メトリクス | 説明 |
---|---|
Query cache size (クエリーキャッシュサイズ) | 選択された Elasticsearch ノードに割り当てられるすべてのシャードのクエリーキャッシュに使用されるメモリーの合計量。 |
Query cache evictions (クエリーキャッシュエビクション) | 選択された Elasticsearch ノードでのクエリーキャッシュのエビクション数。 |
Query cache hits (クエリーキャッシュヒット) | 選択された Elasticsearch ノードでのクエリーキャッシュのヒット数。 |
Query cache misses (クエリーキャッシュミス) | 選択された Elasticsearch ノードでのクエリーキャッシュのミス数。 |
- Elasticsearch インデックスのスロットリング
- ドキュメントのインデックスを作成する場合、Elasticsearch はデータの物理表現であるインデックスセグメントにドキュメントを保存します。同時に、Elasticsearch はリソースの使用を最適化する方法として、より小さなセグメントをより大きなセグメントに定期的にマージします。インデックス処理がセグメントをマージする機能よりも高速になる場合は、マージプロセスが十分前もって終了せずに、検索やパフォーマンスに関連した問題が生じる可能性があります。この状況を防ぐために、Elasticsearch はインデックスをスロットリングします。通常、インデックスに割り当てられるスレッド数を 1 つのスレッドに減らすことで制限できます。
Logging/Elasticsearch Nodes ダッシュボードには、Elasticsearch インデックスのスロットリングに関する以下のチャートが含まれます。
メトリクス | 説明 |
---|---|
Indexing throttling (インデックスのスロットリング) | Elasticsearch が選択された Elasticsearch ノードでインデックス操作をスロットリングしている時間。 |
Merging throttling (マージのスロットリング) | Elasticsearch が選択された Elasticsearch ノードでセグメントのマージ操作をスロットリングしている時間。 |
- ノード JVM ヒープの統計
- Logging/Elasticsearch Nodes ダッシュボードには、JVM ヒープ操作に関する以下のチャートが含まれます。
メトリクス | 説明 |
---|---|
Heap used (ヒープの使用) | 選択された Elasticsearch ノードで使用される割り当て済みの JVM ヒープ領域の合計。 |
GC count (GC 数) | 新旧のガベージコレクションによって、選択された Elasticsearch ノードで実行されてきたガベージコレクション操作の数。 |
GC time (GC 時間) | JVM が、新旧のガベージコレクションによって選択された Elasticsearch ノードでガベージコレクションを実行してきた時間。 |