Alibaba Cloud Elasticsearch は、実行中のクラスタの運用状況を監視するために、複数の基本的なモニタリングメトリック (クラスタステータス、クラスタクエリ QPS、ノード CPU 使用率、ノードディスク使用率など) を提供します。これらのメトリックを使用して、クラスタの運用状況をリアルタイムで把握し、潜在的なリスクに迅速に対処し、安定したクラスタ運用を確保できます。このトピックでは、クラスタモニタリングの詳細を表示する方法と、さまざまなモニタリングメトリックの意味、例外の原因、および例外処理の推奨事項について説明します。
他のモニタリング機能との違い
Alibaba Cloud Elasticsearch によって提供されるクラスタモニタリング機能は、Kibana またはサードパーティサービスによって提供されるモニタリング機能と、以下の点で異なる場合があります。
サンプリング期間の違い: サンプリング期間は Kibana またはサードパーティのモニタリングのサンプリング期間とは異なり、収集されるデータが異なるため、違いが生じます。
クリアルゴリズムの違い: Alibaba Cloud Elasticsearch クラスタモニタリングと Kibana モニタリングはどちらも、データを収集する際のクラスタの安定性に影響されます。クラスタモニタリングの QPS メトリックは、クラスタのジッターが原因で急激な増加、負の値、またはモニタリングデータなしを示す場合がありますが、Kibana モニタリングは空の値を示す場合があります。
説明クラスタモニタリング機能が Kibana によって提供されるモニタリング機能よりも多くのメトリックを提供する場合、ビジネスシナリオでモニタリングを実行するために両方の機能を同時に使用することをお勧めします。
収集インターフェイスの違い: Kibana モニタリングメトリックは Elasticsearch API に依存しますが、クラスタモニタリングの一部のノードレベルメトリック (CPU 使用率、load_1m、ディスク使用率など) は、Alibaba Cloud Elasticsearch の基盤となるシステムインターフェイスを呼び出します。したがって、モニタリングには、Elasticsearch プロセスだけでなく、システムレベルリソースの使用状況も含まれます。
クラスタモニタリングデータの表示
Alibaba Cloud Elasticsearch コンソール にログインします。
左側のナビゲーションウィンドウで、[Elasticsearch クラスタ] をクリックします。
目的のクラスタに移動します。
上部のナビゲーションバーで、クラスタが属するリソースグループと、クラスタが存在するリージョンを選択します。
[Elasticsearch クラスタ] ページで、クラスタを見つけて ID をクリックします。
左側のナビゲーションウィンドウで、 を選択します。
モニタリングの詳細を表示します。
[インフラストラクチャモニタリング] の詳細を表示する
[インフラストラクチャモニタリング] タブで、必要に応じて [グループ] カテゴリとモニタリング期間を選択して、指定された期間中の対応するカテゴリのリソースのモニタリングの詳細を表示します。
説明必要に応じて [カスタム] をクリックして、カスタム期間内のモニタリングの詳細を表示します。
Elasticsearch インスタンスのモニタリングおよびアラート機能はデフォルトで有効になっています。したがって、[クラスタモニタリング] ページで履歴モニタリングデータを表示できます。モニタリングデータは分単位で表示でき、モニタリングデータは 30 日間のみ保持されます。
インフラストラクチャモニタリングメトリックの詳細については、「インフラストラクチャモニタリングメトリックの概要」をご参照ください。
インフラストラクチャモニタリングメトリックの概要
次の表に、クラスタのインフラストラクチャモニタリングメトリックのカテゴリと概要を示します。
DataWorks コンソールでパラメータ設定を表示できます。
概要
メトリック | 説明 |
クラスタのヘルスステータスを示します。 | |
Elasticsearch コンソールの 自動スナップショット 機能のスナップショットステータスを示します。
| |
クラスタ内のノードの総数を示します。 | |
クラスタ内の切断されたノードの総数を示します。 | |
クラスタ内のインデックスの数を示します。 | |
クラスタ内のシャードの数を示します。 | |
クラスタ内のプライマリシャードの数を示します。 | |
クラスタ内のスロークエリの数を示します。 | |
クラスタに書き込まれる 1 秒あたりのドキュメント数を示します。 | |
クラスタで実行される 1 秒あたりのクエリ数を示します。クエリ QPS の数は、クエリ対象のインデックスのプライマリシャードの数に関連しています。 | |
クラスタ内の各ノードの CPU 使用率を示します。 | |
クラスタ内の各ノードのヒープメモリ使用量を示します。 | |
クラスタ内の各ノードのディスク使用率を示します。しきい値は | |
| |
クラスタ内の各ノードのインバウンドトラフィックレートを示します。メトリックのモニタリングサイクルは 1 分です。単位: KB/秒。 | |
クラスタ内の各ノードのアウトバウンドトラフィックレートを示します。メトリックのモニタリングサイクルは 1 分です。単位: KB/秒。 | |
クラスタ内の各ノードのインバウンドパケット数を示します。メトリックのモニタリングサイクルは 1 分です。 | |
クラスタ内の各ノードのアウトバウンドパケット数を示します。メトリックのモニタリングサイクルは 1 分です。 | |
クライアントからクラスタ内の各ノードが受信した TCP 接続リクエストの数を示します。 | |
クラスタ内の各ノードの I/O 使用率を示します。 | |
クラスタ内の各ノードから 1 秒あたりに読み取られるデータ量を示します。 | |
クラスタ内の各ノードに 1 秒あたりに書き込まれるデータ量を示します。 | |
クラスタ内の各ノードで 1 秒あたりに完了した読み取りリクエストの数を示します。 | |
クラスタ内の各ノードで 1 秒あたりに完了した書き込みリクエストの数を示します。 |
クラスタメトリック
メトリック | 説明 |
クラスタのヘルスステータスを示します。 | |
クラスタ内のノードの総数を示します。 | |
クラスタ内の切断されたノードの総数を示します。 | |
クラスタ内のインデックスの数を示します。 | |
クラスタ内のシャードの数を示します。 | |
クラスタ内のプライマリシャードの数を示します。 | |
クラスタ内のスロークエリの数を示します。 | |
このメトリックは、スローログ内の | |
Elasticsearch コンソールの 自動スナップショット 機能のスナップショットステータスを示します。 | |
クラスタに書き込まれる 1 秒あたりのドキュメント数を示します。 | |
クラスタで実行される 1 秒あたりのクエリ数を示します。クエリ QPS の数は、クエリ対象のインデックスのプライマリシャードの数に関連しています。 | |
クラスタ内の Fielddata のメモリ使用量を示します。モニタリング曲線が高いほど、ヒープメモリにキャッシュされる Fielddata データの量が多くなります。Fielddata メモリ使用量が過剰になると、Fielddata メモリサーキットブレーカーがトリガーされ、クラスタの安定性に影響します。 |
インデックスメトリック
メトリック | 説明 |
インデックスの 1 秒あたりのバルクリクエスト数を示します。 | |
インデックスで実行される 1 秒あたりのクエリ数を示します。クエリ QPS の数は、クエリ対象のインデックスのプライマリシャードの数に関連しています。 | |
インデックスに対するクエリリクエストに要した最大時間を示します。単位: ミリ秒。 |
ノードリソースメトリック
メトリック | 説明 |
クラスタ内の各ノードの CPU 使用率を示します。CPU 使用率が高い場合、または 100% に近い場合、クラスタ上で実行されているサービスに影響します。 | |
クラスタ内の各ノードのヒープメモリ使用量を示します。ヒープメモリ使用量が多い場合、または大きなオブジェクトがメモリに格納されている場合、クラスタ上で実行されているサービスに影響し、GC 操作が自動的にトリガーされます。 | |
クラスタ内の各ノードのディスク使用率を示します。しきい値は | |
ノードのシステムメモリ使用量を示します。 説明 このメトリックは、クラウドネイティブの新しいコントロール (v3) バージョンでのみサポートされています。 | |
ノードの CPU I/O 待機率を示します。 説明 このメトリックは、クラウドネイティブの新しいコントロール (v3) バージョンでのみサポートされています。 | |
|
ノードネットワークメトリック
メトリック | 説明 | 注記 |
クラスタ内の各ノードのインバウンドトラフィックレートを示します。メトリックのモニタリングサイクルは 1 分です。単位: KiB/秒。 | なし。 | |
クラスタ内の各ノードのアウトバウンドトラフィックレートを示します。メトリックのモニタリングサイクルは 1 分です。単位: KiB/秒。 | なし。 | |
NodeNetworkTraffic(KiB/秒) = NodeNetworkInTraffic(KiB/秒) + NodeNetworkOutTraffic(KiB/秒)。 | このメトリックは、クラウドネイティブの新しいコントロール (v3) バージョンでのみサポートされています。 | |
NodeNetworkTrafficUtilization(%) = (NodeNetworkInTraffic(KiB/秒) + NodeNetworkOutTraffic(KiB/秒)) / ノードネットワークベース帯域幅 (Gbit/秒)。 | このメトリックは、クラウドネイティブの新しいコントロール (v3) バージョンでのみサポートされています。 | |
クライアントからクラスタ内の各ノードが受信した TCP 接続リクエストの数を示します。 | なし。 | |
ノードのネットワーク再送率を示します。 | このメトリックは、クラウドネイティブの新しいコントロール (v3) バージョンでのみサポートされています。 | |
クラスタ内の各ノードのインバウンドパケット数を示します。メトリックのモニタリングサイクルは 1 分です。 | なし。 | |
クラスタ内の各ノードのアウトバウンドパケット数を示します。メトリックのモニタリングサイクルは 1 分です。 | なし。 | |
NodeNetworkPackets(数) = NodeNetworkOutPackets(数) + NodeNetworkInPackets(数)。 | このメトリックは、クラウドネイティブの新しいコントロール (v3) バージョンでのみサポートされています。 | |
NodeNetworkPacketsUtilization(%) = (NodeNetworkOutPackets(数) + NodeNetworkInPackets(数)) / ノードネットワークパケット転送 PPS。 | なし。 |
ノードディスクメトリック
メトリック | 説明 | 注記 |
セカンダリクラスタ内のノードから 1 秒あたりに読み取られるデータ量を示します。 | なし。 | |
クラスタ内の各ノードに 1 秒あたりに書き込まれるデータ量を示します。 | なし。 | |
ディスク帯域幅 (MB/秒) = ディスク帯域幅_読み取り (MiB/秒) + ディスク帯域幅_書き込み (MiB/秒)。 | クラウドネイティブの新しいコントロール (v3) バージョンでのみサポートされています。 | |
ディスク帯域幅使用率_ディスク (%) = (ディスク帯域幅_読み取り (MiB/秒) + ディスク帯域幅_書き込み (MiB/秒)) / (ESSD) 単一ディスクスループット (MB/秒)。 | クラウドネイティブの新しいコントロール (v3) バージョンでのみサポートされています。ESSD 単一ディスクスループットについては、「ESSD の概要」をご参照ください。 | |
ディスク帯域幅使用率_ノード (%) = (ディスク帯域幅_読み取り (MiB/秒) + ディスク帯域幅_書き込み (MiB/秒)) / ノードディスク基本帯域幅 (Gbit/秒)。 | クラウドネイティブの新しいコントロール (v3) バージョンでのみサポートされています。 | |
クラスタ内の各ノードの IO 使用率を示します。 | なし。 | |
クラスタ内の各ノードで 1 秒あたりに完了した読み取りリクエストの数を示します。 | なし。 | |
クラスタ内の各ノードで 1 秒あたりに完了した書き込みリクエストの数を示します。 | なし | |
ディスク IOPS (数) = ディスク IOPS_読み取り (数) + ディスク IOPS_書き込み (数)。 | クラウドネイティブの新しいコントロール (v3) バージョンでのみサポートされています。 | |
ディスク IOPS 使用率_ディスク (%) = (ディスク IOPS_読み取り (数) + ディスク IOPS_書き込み (数)) / (ESSD) 単一ディスク IOPS。 | クラウドネイティブの新しいコントロール (v3) バージョンでのみサポートされています。ESSD 単一ディスクスループットについては、「ESSD の概要」をご参照ください。 | |
ディスク IOPS 使用率_ノード (%) = (ディスク IOPS_読み取り (数) + ディスク IOPS_書き込み (数)) / ノードディスク基本 IOPS。 | クラウドネイティブの新しいコントロール (v3) バージョンでのみサポートされています。 | |
リクエストキューの平均の長さを示します。 | 該当なし |
ノード JVM メトリック
メトリック名 | メトリックの説明 |
クラスタ内の各ノードのヒープメモリ 旧世代使用量サイズを示します。旧世代の占有率が高い場合、または大きなメモリオブジェクトが存在する場合、クラスタサービスに影響し、GC 操作が自動的にトリガーされます。大きなオブジェクトの収集は、GC の実行時間が長くなったり、Full GC が発生したりする可能性があります。 | |
クラスタ内の | |
クラスタ内の各ノードの旧世代における GC コレクションの回数を示します。旧世代の占有率が高い場合、または大きなメモリオブジェクトが存在する場合、クラスタサービスに影響し、GC 操作が自動的にトリガーされます。大きなオブジェクトの収集は、GC の実行時間が長くなったり、Full GC が発生したりする可能性があります。 | |
クラスタ内の各ノードの旧世代 GC コレクションの平均時間を示します。旧世代の占有率が高い場合、または大きなメモリオブジェクトが存在する場合、GC 操作が自動的にトリガーされます。大きなオブジェクトの収集は、GC の実行時間が長くなったり、Full GC が発生したりする可能性があります。 |
スレッドプールメトリック
メトリック名 | メトリックの説明 |
クラスタ内で現在タスクを実行しているクエリスレッドプールのスレッド数を示します。 | |
クラスタ内のクエリスレッドプールで拒否されたリクエストの数を示します。 |
その他のメトリック
メトリック名 | メトリックの説明 |
1 分以内にクラスタのメインログに表示される警告レベルログの総数を示します。 |
廃止されたメトリック
メトリック名 | メトリックの説明 |
クエリスレッドプールで拒否されたリクエストの数を示します。このメトリックは、[クエリ スレッドプールで拒否されたリクエストの数 (新バージョン) (数)] メトリックとは計算方法が異なります。このメトリックは廃止されました。クエリ スレッドプールで拒否されたリクエストの数 (新バージョン) (数) を代わりに使用してください。 |
ClusterStatus(値)
説明
このメトリックは、クラスタのヘルスステータスを表示します。0.00 の値は、クラスタが正常であることを示します。このメトリックを構成する必要があります。このメトリックの構成方法の詳細については、「クラスタアラートを構成する」をご参照ください。次の表に、メトリックの値を示します。
値 | 色 | ステータス | 説明 |
0.00 | 緑 | すべてのプライマリシャードとレプリカシャードが使用可能です。 | クラスタに保存されているすべてのインデックスは正常であり、未割り当てのシャードはありません。 |
1.00 | 黄 | すべてのプライマリシャードは使用可能ですが、すべてのレプリカシャードが使用可能であるとは限りません。 | 1 つ以上のインデックスに、未割り当てのレプリカシャードがあります。 |
2.00 | 赤 | すべてのプライマリシャードが使用可能であるとは限りません。 | 1 つ以上のインデックスに、未割り当てのプライマリシャードがあります。 |
表の色は、インスタンスの 基本情報 ページに表示されるクラスタステータスの色を参照しています。
例外の原因
モニタリング中に、メトリック値が 0.00
でない場合、クラスタステータスが異常であることを示します。一般的な原因は次のとおりです。
クラスタ内のノードの CPU 使用率またはヒープメモリ使用量が過度に高い、または 100% に達している。
クラスタ内のノードのディスク使用率が過度に高い。たとえば、ディスク使用率が 85% を超えている、または 100% に達している。
ノードの Load_1m が過度に高い。
クラスタに保存されているインデックスのステータスが異常 (緑色ではない)。
例外処理の推奨事項
Kibana コンソール のモニタリングページでモニタリング情報を表示するか、インスタンスのログを表示する ことで、問題に関する具体的な情報を取得し、トラブルシューティングを行います (たとえば、インデックスがメモリを過度に使用している場合は、一部のインデックスを削除できます)。
ディスク使用率が高いことが原因でクラスタの例外が発生した場合は、「ディスク使用率が高く、read_only の問題をトラブルシューティングおよび処理する方法」に基づいて問題をトラブルシューティングすることをお勧めします。
メモリが 1 コア 2 GB のインスタンスの場合、インスタンスステータスが異常な場合は、まず クラスタをアップグレードする ことで、CPU とメモリの比率が 1:4 の仕様にしてインスタンスの仕様を向上させることをお勧めします。仕様を向上させた後もクラスタが異常な場合は、上記の 2 つのソリューションに基づいて問題をトラブルシューティングすることをお勧めします。
スナップショットステータス (値)
説明
このメトリックは、Elasticsearch コンソールの 自動バックアップ 機能のスナップショットステータスを表示します。メトリック値が 0
の場合、スナップショットが作成されたことを示します。次の表に、メトリックの値を示します。
スナップショットステータス | 説明 |
0 | スナップショットが作成されます。 |
-1 | スナップショットは作成されません。 |
1 | システムはスナップショットを作成しています。 |
2 | スナップショットの作成に失敗しました。 |
例外の原因
メトリック値が 2
の場合、サービスは異常です。一般的な原因は次のとおりです。
クラスタ内のノードのディスク使用率が過度に高く、100% に近くなっています。
クラスタが異常です。
クラスタ内のノードの総数 (カウント)
このメトリックは、クラスタ内のノードの総数を示し、ノードの規模が期待どおりかどうかを監視するために使用されます。
クラスタ内の切断されたノードの総数(カウント)
このメトリックは、クラスタ内の切断されたノードの総数を示します。切断されたノードは、シャードの再割り当てやクエリ 待機時間の増加を引き起こす可能性があります。
クラスタ インデックス数 (count)
このメトリックは、クラスタ内のインデックス数を示します。インデックスが多すぎると、リソース競合(メモリ、CPU など)が発生する可能性があります。
クラスター Shard Count (count)
このメトリックは、クラスター内のシャード数を示します。 シャードが多すぎると、管理コスト(メタデータ操作など)が増加します。 シャードが少なすぎると、クエリのパフォーマンス(ペイロードの不均一など)に影響を与える可能性があります。
クラスタ プライマリ シャード数
このメトリックは、クラスタ内のプライマリ シャードの数を示します。プライマリ シャードが不足していると、書き込みボトルネックが発生する可能性があります。
クラスタ内の低速クエリの数(件数)
このメトリックは、クラスタ内の低速クエリの数を示します。 このメトリックを使用すると、パフォーマンスボトルネック(複雑なクエリやインデックス設計の問題など)を特定できます。
クラスタ書き込み QPS(回数/秒)
クラスタの書き込み QPS が急上昇すると、クラスタの CPU 使用率、ヒープメモリ使用量、またはノードの平均負荷が、高いレベルに達する可能性があります。これは、クラスタ上で実行されているサービスに影響を与える可能性があります。このような状況は避けるべきです。
このメトリックは、1 秒あたりにクラスタに書き込まれるドキュメント数を示します。詳細は次のとおりです。
クラスタが 1 秒以内に 1 つのドキュメントのみを含む書き込みリクエストを受信した場合、このメトリックの値は 1 になります。値は、1 秒あたりに受信される書き込みリクエストの数とともに増加します。
1 秒以内に _bulk API を使用して複数のドキュメントがバッチでクラスタに書き込まれる場合、書き込み QPS はリクエスト内のドキュメントの総数に基づいて計算されます。1 秒以内に _bulk API を使用して複数のバッチ書き込みリクエストが送信された場合、値は累積されます。
クラスタクエリ QPS(件数/秒)
クラスタのクエリ QPS が急上昇すると、クラスタの CPU 使用率、ヒープメモリ使用量、またはノードの平均負荷が、高いレベルに達する可能性があります。これは、クラスタ上で実行されているサービスに影響を与える可能性があります。このような状況を避けるようにしてください。
このメトリックは、クラスタ上で実行される 1 秒あたりのクエリ数(QPS)を示します。1 秒あたりのクエリ数は、クエリ対象のインデックス内のプライマリシャードの数に関連しています。
たとえば、クエリ対象のデータのインデックスに 5 つのプライマリシャードがある場合、クラスタは 1 秒あたり 5 つのクエリを処理できます。
クラスタのスロークエリの時間分布
説明
このメトリックは、スロークエリログの index.search.slowlog.query
および index.search.slowlog.fetch
のログに基づいています。実行時間 (took_millis) を集計し、1
秒間隔 (0~1秒、1~2秒、最大 10秒) で分布を表示します。スローログのしきい値を設定できます。関連パラメータについては、「インデックステンプレートの構成」の index.search.slowlog.threshold.xxx
パラメータをご参照ください。
例外の原因
監視期間中に、スロークエリの時間間隔が長くなり、クエリの数が増加すると、サービス例外が発生する可能性があります。一般的な原因は次のとおりです。
例外の原因 | 説明 |
QPS | [クエリ QPS] または [書き込み QPS] トラフィックが急増または大幅に変動し、クラスタの負荷が高くなり、クエリの応答時間が長くなります。 |
集計クエリまたはスクリプトクエリ | 集計クエリのシナリオでは、データ集計に大量の計算リソース、特にメモリが必要です。使用する際は注意してください。 |
数値フィールドに対する Term クエリ | 多くの数値フィールド (byte、short、integer、long) で Term クエリを実行する場合、ドキュメント ID コレクションのビットセットの構築に時間がかかり、クエリ速度に影響します。数値フィールドで範囲クエリまたは集計クエリが不要な場合は、キーワードタイプのフィールドに変更することをお勧めします。 |
あいまい一致 | ワイルドカード文字、正規表現、およびあいまいクエリは、転置インデックス内の Term リストを走査して、すべての一致する Term を見つけ、次に各 Term に対応するドキュメント ID を収集する必要があります。特に事前のストレステストがない場合、大規模なクエリは大量の計算リソースを消費します。これらの機能を使用する前に、シナリオに基づいてストレステストを実施し、適切な規模を選択することをお勧めします。 |
クラスタが少数のスロークエリまたは書き込みリクエストを受信する | この場合、クエリと書き込みの QPS トラフィックの変動は小さく、または顕著ではありません。Alibaba Cloud Elasticsearch コンソールの「クエリログ」ページで、[スローログの検索] をクリックして表示および分析できます。 |
クラスタに多数のインデックスまたはシャードが格納されている | Elasticsearch はクラスタ内のインデックスを監視してログを書き込むため、インデックスまたはシャードの総数が過剰になると、CPU または HeapMemory 使用率が高くなったり、load_1m が高くなったりしやすく、クラスタ全体のクエリ速度に影響します。 |
クラスタでマージ操作が実行されている | マージ操作は CPU リソースを消費し、対応するノードのセグメント数が急激に減少します。Kibana コンソールのノードの [概要] ページでこれを確認できます。 |
クラスタでガベージコレクション (GC) 操作が実行されている | GC 操作はメモリ (フル GC など) を解放しようと試み、CPU リソースを消費し、CPU 使用率が急増してクエリ速度に影響を与える可能性があります。 |
クラスタでスケジュールされたタスクが実行されている | データバックアップまたはその他のカスタムタスクには、大量の IO リソースが必要であり、クエリ速度に影響します。 |
クラスタ Fielddata メモリ使用量(B)
説明
このメトリックは、クラスタ内の Fielddata メモリ使用量を示します。監視曲線が大きいほど、ヒープメモリにキャッシュされている Fielddata データが多くなります。 Fielddata メモリ使用量が過剰になると、Fielddata メモリのサーキットブレーカーがトリガーされ、クラスタの安定性に影響を与える可能性があります。
例外の原因
監視期間中に、メトリックが大量のヒープメモリを占有すると、サービス異常が発生する可能性があります。一般的な原因は次のとおりです。
クエリに、文字列(テキスト)フィールドに対する多くのソート操作または集約操作が含まれています。このようなクエリの Fielddata は、デフォルトでは取り消されません。数値フィールドタイプを使用することをお勧めします。
[クエリ QPS] または [書き込み QPS] トラフィックが急増または大幅に変動し、Fielddata が頻繁にキャッシュされる。
クラスタに多くのインデックスまたはシャードが格納されています。 Elasticsearch はクラスタ内のインデックスを監視してログを書き込むため、合計インデックスまたはシャードが多すぎると、CPU 使用率またはヒープメモリ使用率が高くなったり、Load_1m ペイロードが高くなったりしやすくなります。
インデックス一括書き込み TPS(回数/秒)
説明
このメトリックは、インデックスに対する Bulk リクエストの 1 秒あたりの回数を示します。
例外の原因
監視期間中に、このメトリックにデータがない場合があります。一般的な原因は次のとおりです。
クラスターの負荷が高いと、クラスター モニタリングデータの通常の収集に影響します。
モニタリングデータのプッシュに失敗しました。
インデックスクエリ QPS(件数/秒)
説明
このメトリックは、インデックスで実行されるクエリ/秒(QPS)の数を示します。QPS の値は、クエリ対象のインデックス内のプライマリシャードの数に関連しています。
たとえば、データをクエリするインデックスに 5 つのプライマリシャードがある場合、クラスターは 5 つのクエリ/秒を処理できます。
例外の原因
監視期間中、このメトリックにはデータがない場合があります。一般的な原因は次のとおりです。
クラスターの負荷が高いと、クラスター モニタリングデータの通常の収集に影響します。
モニタリングデータのプッシュに失敗しました。
インデックスクエリ QPS が急激に増加すると、クラスターの CPU 使用率、HeapMemory 使用量、または Load_1m が高くなり、クラスター サービス全体に影響を与える可能性があります。これらの問題に対処するために、インデックスを最適化できます。
インデックスのエンドツーエンドのクエリ待機時間_max(ミリ秒)
このメトリックは、インデックスへのクエリリクエストによって消費される最大時間をミリ秒単位で示します。
ノード CPU 使用率_ES サービス (%)
説明
このメトリックは、クラスタ内の各ノードの CPU 使用率 (%) を示します。 CPU 使用率が高い場合、または 100% に近い場合は、クラスタ上で実行されているサービスが影響を受けます。
例外の原因
メトリックの値が急上昇または大幅に変動した場合は、エラーが発生します。この問題は、次の表に示す 1 つ以上の理由が原因である可能性があります。
例外の原因 | 説明 |
QPS | [クエリ QPS] または [書き込み QPS] トラフィックが急上昇または大幅に変動します。 |
クラスタが少数のスロークエリまたは書き込みリクエストを受信する | この場合、クエリと書き込みの QPS トラフィックはわずかに変動するか、顕著に変動しません。 Alibaba Cloud Elasticsearch コンソールの LogSearch ページで [スローログの検索] をクリックして、表示および分析できます。 |
クラスタに多数のインデックスまたはシャードが格納されている | Elasticsearch はクラスタ内のインデックスを監視し、ログを書き込むため、インデックスまたはシャードの総数が過剰になると、CPU またはヒープメモリの使用率、または Load_1m が高くなる可能性があります。 |
クラスタでマージ操作が実行されている | マージ操作は CPU リソースを消費します。対応するノードのセグメント数は急激に減少します。これは、Kibana コンソールのノードの概要ページで確認できます。 |
GC 操作が実行されている | GC 操作はメモリ (フル gc など) を解放しようとし、 CPU リソースを消費します。その結果、 CPU 使用率が急上昇する可能性があります。 |
クラスタでスケジュールされたタスクが実行されている | データバックアップやカスタムタスクなどのスケジュールされたタスクがクラスタで実行されます。 |
NodeCPUUtilization(%) メトリックは、Alibaba Cloud Elasticsearch のシステムリソースの使用状況と、Elasticsearch クラスタで実行されるタスクのリソース使用状況を監視します。
ノードディスク使用率 (%)
このメトリックは、クラスタ内の各ノードのディスク使用率 (%) を表示します。しきい値は 75% 未満に設定することをお勧めします。このメトリックのしきい値を 85% を超える値に設定しないでください。設定した場合、クラスタ上で実行されているサービスに影響を与える可能性のある、次のような状況が発生する可能性があります。
ノードディスク使用率 | 説明 |
>85% | 新しいシャードを割り当てることができません。 |
>90% | クラスタは、ノードからディスク使用率が低い他のデータノードにシャードを移行しようとします。 |
>95% | Elasticsearch は、クラスタ内の各インデックスの |
このメトリックを設定することをお勧めします。関連するアラートがトリガーされた後、できるだけ早くディスクのサイズ変更、ノードの追加、またはインデックスデータの削除を実行して、サービスに影響が出ないようにすることができます。
NodeDiskUtilization(%) メトリックは、Alibaba Cloud Elasticsearch のシステムリソースの使用状況と、Elasticsearch クラスタで実行されているタスクのリソース使用状況を監視します。
ノード ヒープ メモリ使用量_ES サービス (%)
説明
このメトリックは、クラスタ内の各ノードのヒープ メモリ使用率を表示します。ヒープ メモリ使用率が高い場合、または large メモリ オブジェクトが存在する場合、クラスタ サービスが影響を受け、ガベージコレクション(GC)操作が自動的にトリガーされます。
例外の原因
メトリックの値が急上昇または大幅に変動した場合、エラーが発生します。この問題は、次の表に示す 1 つ以上の理由が原因である可能性があります。
例外の原因 | 説明 |
QPS | [クエリ QPS] または [書き込み QPS] トラフィックが急上昇または大幅に変動します。 |
クラスタが少数のスロークエリまたは書き込みリクエストを受信する | この場合、クエリおよび書き込み QPS トラフィックはわずかに変動するか、または顕著に変動しません。Alibaba Cloud Elasticsearch コンソールの LogSearch ページで [スローログの検索] をクリックして、ログを表示および分析できます。 |
クラスタが多数のスロークエリまたは書き込みリクエストを受信する | この場合、クエリおよび書き込み QPS トラフィックは大幅に変動するか、または顕著に変動します。Alibaba Cloud Elasticsearch コンソールの LogSearch ページで [インデックス作成スローログ] をクリックして、ログを表示および分析できます。 |
クラスタに多数のインデックスまたはシャードが格納されている | Elasticsearch はクラスタ内のインデックスを監視し、ログを書き込むため、インデックスまたはシャードの総数が過剰になると、CPU またはヒープ メモリ使用量、または Load_1m が高くなりすぎる可能性があります。 |
クラスタでマージ操作が実行されている | マージ操作は CPU リソースを消費し、対応するノードのセグメント数が急激に減少します。Kibana コンソールのノードの [概要] ページでこれを確認できます。 |
GC 操作が実行されている | GC 操作はメモリ(たとえば、Full GC)を解放しようと試み、CPU リソースを消費します。これにより、ヒープ メモリ使用量が急激に減少する可能性があります。 |
クラスタでスケジュールされたタスクが実行されている | データ バックアップまたはその他のカスタム タスク。 |
Node Load_1m (値)
説明
このメトリックは、クラスター内の各ノードの 1 分以内の負荷を示し、各ノードのシステムがどれくらいビジー状態であるかを示します。 通常の場合、このメトリックの値は、ノードの vCPU 数よりも小さくなります。 次の表は、vCPU が 1 つだけのノードのメトリック値について説明しています。
Node Load_1m | 説明 |
< 1 | 保留中のプロセスはありません。 |
= 1 | システムには、より多くのプロセスを実行するためのアイドル リソースがありません。 |
> 1 | プロセスはリソースを待機しています。 |
[Node Load_1m] メトリックには、Alibaba Cloud Elasticsearch のシステムレベルでのリソース使用量だけでなく、Elasticsearch タスクのリソース使用量も含まれます。
[Node Load_1m] メトリックの変動は正常である可能性があります。 [ノード CPU 使用率] メトリックの分析に焦点を当てることをお勧めします。
例外の原因
メトリックの値がノードの vCPU 数を超えると、エラーが発生します。 この問題は、次の 1 つ以上の理由によって発生する可能性があります。
クラスター内のノードの CPU 使用率またはヒープ メモリ使用率が過度に高く、 100% に達している。
[クエリ QPS] または [書き込み QPS] トラフィックが急増または大幅に増加している。
クラスタは、スロークエリ リクエストを受信します。
Alibaba Cloud Elasticsearch コンソール の LogSearch ページに移動して、対応するログを表示および分析できます。
Node Load_1m には、Alibaba Cloud Elasticsearch のシステムレベルでのリソース使用量だけでなく、Elasticsearch タスクのリソース使用量も含まれます。
ノード メモリ使用量_合計 (%)
このメトリックは、ノードのシステム メモリ使用量を表示します。
ノード CPU IO 待機率 (%)
このメトリックは、ノードの CPU IO 待機率を表示します。
ノードネットワーク package_input (カウント)
このメトリックは、クラスタ内の各ノードのインバウンドトラフィックパケット数を表示します。メトリックの監視サイクルは 1 分です。
ノード ネットワークプラン_出力 (カウント)
このメトリックは、クラスタ内の各ノードのデータ転送プランからのアウトバウンドトラフィックの数を表示します。メトリックの監視サイクルは 1 分です。
ノードネットワーク bandwidth_input (KiB/s)
このメトリックは、クラスタ内の各ノードの 1 秒あたりのデータパケットの受信レートを表示します。メトリックの監視サイクルは 1 分です。単位:KB/s。
ノードネットワーク bandwidth_Outputs (KiB/s)
このメトリックは、クラスタ内の各ノードの秒あたりの送信データパケットレートを表示します。メトリックの監視サイクルは 1 分です。単位:KB/s。
ノード TCP 接続数
説明
このメトリックは、クラスタ内の各ノードに対してクライアントが開始した TCP 接続リクエストの数を示します。
例外の原因
監視中、メトリック値が急上昇または大幅に変動した場合、サービスエラーが発生します。一般的な原因は、クライアントによって開始された TCP 接続が長期間解放されず、ノード上の TCP 接続数が急増することです。 クライアントが接続を解放するように関連ポリシーを設定することをお勧めします。
IO 使用率 (%)
説明
このメトリックは、クラスタ内の各ノードの IO 使用率を表示します。
例外の原因
モニタリング中にメトリックの値が急上昇または大幅に変動した場合、サービスエラーが発生します。 この問題は、ディスク使用率が高いことが原因である可能性があります。 ディスク使用率が高いと、データの読み取りおよび書き込み操作の平均待機時間が長くなり、IO 使用率が急激に増加し、100% に達することもあります。 クラスタ構成とその他のメトリックに基づいて問題のトラブルシューティングを行うことをお勧めします。 たとえば、クラスタの構成をスペックアップできます。
ノードネットワーク再送率 (%)
このメトリックは、ノードのネットワーク再送率を表示します。
ノードネットワーク帯域幅 (KiB/s)
ノードネットワーク帯域幅 (KiB/s) = ノードネットワーク帯域幅_入力 (KiB/s) + ノードネットワーク帯域幅_出力 (KiB/s)。
ノードネットワーク帯域幅使用率 (%)
ノードネットワーク帯域幅使用率 (%) = (ノードネットワーク帯域幅_入力 (KiB/s) + ノードネットワーク帯域幅_出力 (KiB/s) / ノードネットワークベース帯域幅 (Gbit/s)。
ノード ネットワークプラン(カウント)
ノード ネットワークプラン(カウント) = ノード ネットワークプラン_Outputs(カウント) + ノード ネットワークプラン_Inputs(カウント)。
ノード ネットワーク パケット使用率 (%)
ノード ネットワーク パケット使用率 (%) = (ノード ネットワーク パケット_出力 (カウント) + ノード ネットワーク パケット_入力 (カウント)) / パケット転送 PPS。
ディスク帯域幅_読み取り (MiB/s)
このメトリックは、セカンダリクラスター内のノードから毎秒読み取られるデータ量を表示します。
ディスク帯域幅書き込み (MiB/s)
このメトリックは、クラスタ内の各ノードに毎秒書き込まれるデータ量を表示します。
ディスク IOPS_read(回数)
このメトリックは、クラスタ内の各ノードで1秒あたりに完了した読み取りリクエストの数を示します。
ディスク IOPS_write (回数)
このメトリックは、クラスタ内の各ノードで 1 秒あたりに完了した書き込みリクエストの数を示します。
平均リクエストキューの長さ
このメトリックは、リクエストキューの平均の長さを表示します。
ディスク帯域幅 (MiB/s)
ディスク帯域幅 (MiB/s) = ディスク帯域幅_読み取り (MiB/s) + ディスク帯域幅_書き込み (MiB/s)。
ディスク帯域幅使用率_disk (%)
ディスク帯域幅使用率_disk (%) = (ディスク帯域幅_read (MiB/s) + ディスク帯域幅_write (MiB/s)) / 単一ディスクスループット性能 (MB/s) の計算式。
ディスク帯域幅使用率_ノード (%)
ディスク帯域幅使用率_ノード (%) = (ディスク帯域幅_読み取り (MiB/s) + ディスク帯域幅_書き込み (MiB/s)) / ディスク基本帯域幅 (Gbit/s)。
ディスク IOPS(回数)
ディスク IOPS(回数) = ディスク IOPS_read(回数) + ディスク IOPS_write(回数)。
ディスク IOPS 使用率 (%)
ディスク IOPS 使用率 (%) = (ディスク IOPS 読み取り (回数) + ディスク IOPS 書き込み (回数)) / 単一ディスク IOPS パフォーマンス計算式。
ディスク IOPS 使用率_ノード (%)
ディスク IOPS 使用率_ノード (%) = (ディスク IOPS_読み取り (回数) + ディスク IOPS_書き込み (回数)) / ディスク基本 IOPS。
ノードの Old 世代使用量(B)
説明
このメトリックは、クラスタ内の各ノードの Old 世代ヒープメモリ使用量を示します。 Old 世代が高い割合を占めている場合、または大きなメモリ オブジェクトが含まれている場合は、クラスタ サービスに影響を与え、ガベージ コレクション(GC)操作が自動的にトリガーされます。 大きなオブジェクトの収集は、長い GC 時間またはフル GC を引き起こす可能性があります。
例外の原因
メトリックの値が急上昇または大幅に変動する場合は、エラーが発生します。 この問題は、次の表に示す 1 つ以上の理由によって発生する可能性があります。
例外の原因 | 説明 |
QPS | [クエリ QPS] トラフィックまたは [書き込み QPS] トラフィックが急上昇または大幅に変動します。 |
集約クエリまたはスクリプト クエリ | 集約クエリのシナリオでは、データ集約、特にメモリに大量の計算リソースが必要です。 使用する際は注意してください。 |
数値フィールドに対する Term クエリ | 多くの数値フィールド(byte、short、integer、long)で term クエリを実行する場合、ドキュメント ID コレクションのビットセットの構築には時間がかかり、クエリ速度に影響します。 数値フィールドで有効値または集約操作が不要な場合は、キーワード タイプ フィールドに変更することをお勧めします。 |
あいまい一致 | ワイルドカード文字、正規表現、およびあいまいクエリは、転置インデックス内の term リストを走査して、すべての一致する term を見つけ、次に各 term に対応するドキュメント ID を収集する必要があります。 特に事前のストレステストを行わない場合、大規模なクエリは多くの計算リソースを消費します。 これらの機能を使用する前に、シナリオに基づいてストレステストを実施し、適切な規模を選択することをお勧めします。 |
クラスタが少数のスロー クエリまたは書き込みリクエストを受信する | この場合、クエリおよび書き込み QPS トラフィックの変動は小さいか、または明らかではありません。 Alibaba Cloud Elasticsearch コンソールの クエリログ ページに移動し、[スローログの検索] をクリックしてログを表示および分析できます。 |
クラスタが多数のスロー クエリまたは書き込みリクエストを受信する | この場合、クエリおよび書き込み QPS トラフィックの変動は小さいか、または明らかではありません。 Alibaba Cloud Elasticsearch コンソールの クエリログ ページに移動し、[インデックス作成スローログ] をクリックしてログを表示および分析できます。 |
クラスタに多数のインデックスまたはシャードが格納されている | システムは、クラスタに格納されているインデックスを監視し、インデックスの変更をログに記録します。 クラスタに過剰なインデックスまたはシャードが格納されている場合、CPU 使用率、ヒープメモリ使用量、またはノードの平均負荷(分単位)が高レベルに達する可能性があります。 |
クラスタでマージ操作が実行されている | マージ操作は CPU リソースを消費し、対応するノードのセグメント数は急激に減少します。 Kibana コンソール のノードの [概要] ページでこれを確認できます。 |
GC 操作が実行されている | GC 操作はメモリ(たとえば、フル GC)の解放を試み、CPU リソースを消費し、ヒープメモリ使用量が大幅に減少する可能性があります。 |
クラスタでスケジュールされたタスクが実行されている | データ バックアップやカスタム タスクなどのスケジュールされたタスクがクラスタで実行されています。 |
Full GC 回数 (Count)
システムで Full GC が頻繁に発生すると、クラスタ サービスのパフォーマンスに影響します。
説明
このメトリックは、1 分以内にクラスタで発生した GC 操作の総数を示します。
例外の原因
このメトリックの値が 0 でない場合は、エラーが発生しています。この問題は、次の 1 つ以上の理由によって発生する可能性があります。
クラスタのヒープ メモリ使用量が高い。
クラスタ メモリに格納されている大きなオブジェクト。
ノード Old GC 周波数(回数)
メトリックの説明
このメトリックは、クラスタ内の各ノードにおける Old Generation のガベージコレクションの回数を示します。 Old Generation が高い割合を占有している場合、または large なメモリ オブジェクトが含まれている場合、クラスタ サービスに影響を与え、自動的にガベージコレクション操作がトリガーされます。 large なオブジェクトの collection は、GC 時間が長くなったり、Full GC が発生したりする可能性があります。
Full GC の基本的なモニタリング メトリックはログから取得されますが、高度なモニタリングのメモリ メトリックは ES エンジン collection に依存します。 これらの 2 つのメソッドには、データ取得とアプリケーションに違いがあります。 すべてのメトリックを組み合わせてクラスタのパフォーマンスを総合的に評価することをお勧めします。
例外の原因
詳細については、「ノード Old 領域使用量(B)」をご参照ください。
ノード Old GC 継続時間(ミリ秒)
説明
このメトリックは、クラスタ内の各ノードの Old generation ガベージコレクションに費やされた平均時間を示します。 Old generation エリアの使用率が高い場合、または large メモリ オブジェクトが存在する場合、GC 操作が自動的にトリガーされます。 large オブジェクトのコレクションは、GC 継続時間の延長または Full GC につながる可能性があります。
例外の原因
詳細については、「ノード Old generation 使用量(B)」をご参照ください。
クエリ スレッドプール 実行中スレッド数(カウント)
クラスタ内で現在タスクを実行しているクエリ スレッドプールのスレッド数を示します。
クエリ スレッドプール 拒否されたリクエスト(件数)
クラスタ内のクエリ スレッドプールで拒否されたリクエストの数を示します。このメトリックは非推奨です。 クエリ スレッドプール 拒否されたリクエスト(新規)(件数)を使用することをお勧めします。
スレッドプール(新バージョン)で拒否されたリクエスト数(count)のクエリ
クラスタ内のクエリ スレッドプールで拒否されたリクエスト数を示します。スレッドプール内のすべてのスレッドがタスクを処理していて、タスク キューがいっぱいの場合、新しいクエリ リクエストは拒否され、例外がスローされます。
NodeStatsExceptionLogCount(カウント)
説明
このメトリックは、クラスタ内の各ノードにおけるガベージコレクション(GC)操作に費やされた時間を示します。 値が高いほど、GC 操作に時間がかかっています。 長時間におよぶ GC 操作は、クラスタサービスに影響を与える可能性があります。
例外の原因
監視中、メトリック値が 0
でない場合、サービスは異常です。 考えられる一般的な原因は次のとおりです。
クラスタが異常なクエリリクエストを受信する。
クラスタが異常な書き込みリクエストを受信する。
クラスタがタスクを実行しているときにエラーが発生する。
ガベージコレクション操作が実行された。
例外処理のための提案
Alibaba Cloud Elasticsearch コンソールの LogSearch ページに移動し、[メインログ] をクリックします。 [メインログ] ページで、時点に基づいて詳細な例外情報を表示し、例外の原因を分析できます。
[メインログ] に GC レコードがある場合、それらもカウントされ、[例外カウント] 監視メトリックに表示されます。