Kibana の開発ツールコンソールでコマンドを実行して、クラスターのヘルスステータス、ノードの負荷、シャードの割り当て、インデックス情報を確認し、日常的なモニタリングやトラブルシューティングを行うことができます。
前提条件
Alibaba Cloud Elasticsearch インスタンスが必要です。詳細については、「Alibaba Cloud Elasticsearch クラスターの作成」をご参照ください。
操作手順
Elasticsearch クラスターの Kibana コンソールにログインします。
詳細な手順については、「Kibana コンソールへのログイン」をご参照ください。このトピックのすべてのコマンドは、開発ツールコンソールで実行できます。
左側メニューで、[開発ツール] をクリックします。
[コンソール] で、次のコマンドを実行して、クラスターのヘルスステータスを確認します。
GET /_cluster/healthリクエストが成功すると、次のレスポンスが返されます。
{ "cluster_name" : "es-cn-45xxxxxxxxxxxxk1q", "status" : "green", "timed_out" : false, "number_of_nodes" : 2, "number_of_data_nodes" : 2, "active_primary_shards" : 18, "active_shards" : 36, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 0, "delayed_unassigned_shards" : 0, "number_of_pending_tasks" : 0, "number_of_in_flight_fetch" : 0, "task_max_waiting_in_queue_millis" : 0, "active_shards_percent_as_number" : 100.0 }statusフィールドは、クラスターのヘルスステータスを示します。有効な値はgreen、yellow、redです。ステータス
状態
説明
red
一部のプライマリシャードが利用できません。
1 つ以上のプライマリシャードが割り当てられていません。
yellow
すべてのプライマリシャードは利用可能ですが、一部のレプリカシャードは利用できません。
1 つ以上のレプリカシャードが割り当てられていません。
green
すべてのプライマリシャードとレプリカシャードが利用可能です。
すべてのプライマリシャードとレプリカシャードが割り当てられています。
クラスターのステータスが
yellowの場合、パスワードの変更やインスタンスのアップグレードなどの操作が大幅に遅くなる可能性があります。これらの操作を実行する前に、クラスターをgreenステータスに復元してください。yellowステータスになる一般的な原因は、インデックスのレプリカ数が、利用可能なノード数から 1 を引いた数よりも多いことです。これを修正するには、次の手順に従ってください。yellowステータスのインデックスを見つけます。curl -u <username>:<password> http://<host>:9200/_cat/indices対象インデックスのレプリカ数を、利用可能なノード数から 1 を引いた値に調整します。
curl -XPUT -u <username>:<password> http://<host>:9200/<problematic_index_name>/_settings -H 'Content-Type: application/json' -d '{"index":{"number_of_replicas":(<number_of_nodes - 1>)}'説明インスタンスを再起動またはスケーリングした後は、新しいノード数に合わせてインデックスのレプリカ数を調整してください。
クラスターコマンド
コマンド | 説明 |
GET /_cat/health?v | クラスターのヘルスステータス (green、yellow、または red) を返します。ステータスの説明については、上記の表をご参照ください。 |
GET /_cluster/health?pretty=true | クラスターのヘルスステータスを返します。
|
GET /_cluster/stats | CPU や JVM の情報を含むクラスターの統計情報を返します。 |
GET /_cluster/state | ノードやシャードを含むクラスターの状態に関する詳細情報を返します。 |
GET /_cluster/pending_tasks | クラスター内の保留中のタスクを返します。 |
GET /_cluster/settings | クラスター全体の設定を返します。 |
ノードコマンド
コマンド | 説明 |
GET /_cat/master?v | マスターノードに関する情報を返します。 |
GET /_cat/nodes?v | CPU 使用率、ヒープメモリ使用量、負荷など、各ノードの現在のステータスを返します。 |
GET /_cat/nodeattrs?v | 各ノードのカスタム属性を返します。 |
GET /_nodes/stats?pretty=true | ノードの統計情報を返します。 |
GET /_nodes/process | ノードのプロセス情報を返します。 |
GET /_nodes/hot_threads | 大量の CPU を消費しているホットスレッドが実行しているタスクを返します。このコマンドは、クラスターの高い CPU 使用率の原因を特定するためによく使用されます。レスポンス内の Lucene Merge Thread などのスレッドスタックや CPU 使用率を分析することで、高負荷を引き起こしている特定のタスクや操作を特定できます。 |
GET /_nodes/<nodeip>/jvm,process,os | 指定されたノードの JVM、プロセス、およびオペレーティングシステム (OS) の情報を返します。 |
GET /_cat/plugins?v | 各ノードにインストールされているプラグインを返します。 |
GET /_cat/thread_pool?v | スレッドプールのタイプ、アクティブなスレッド数、キューサイズなど、各ノードのスレッドプールの統計情報を返します。 |
シャードコマンド
コマンド | 説明 |
GET /_cat/shards?v | インデックス名、シャード ID、タイプ (プライマリまたはレプリカ) 、ステータス、ドキュメント数、ディスク使用量など、各シャードの詳細情報を返します。出力には、失敗したシャードの失敗理由が含まれます。特定のインデックスのシャード情報を表示するには、 |
GET /_cat/allocation?v | 各ノードのシャードの割り当て状況を返します。 |
GET /_cat/recovery?v | 各シャードの復旧の進捗状況を返します。 |
セグメントコマンド
GET /_cat/segments?vセグメント名、所属するシャード、メモリやディスクの使用量、ディスクにフラッシュされたかどうかなど、各インデックスのセグメント情報を返します。GET _cat/segments/<index>?v を実行して、特定のインデックスのセグメント情報を表示することもできます。
インデックスコマンド
コマンド | 説明 |
GET /_cat/indices?v | ヘルスステータス、状態、シャード数とレプリカ数、ドキュメント数など、すべてのインデックスの詳細情報を返します。特定のインデックスの情報を表示するには、 |
GET /_cat/aliases?v | 参照先のインデックスやルーティング設定など、すべてのインデックスエイリアスに関する情報を返します。 |
マッピングコマンド
コマンド | 説明 |
GET /_mapping | すべてのインデックスのマッピングを返します。 |
GET /<index>/_mapping | 特定のインデックスのマッピングを返します。 |
ドキュメントコマンド
コマンド | 説明 |
GET /_cat/count?v | クラスター内の総ドキュメント数を返します。特定のインデックスのドキュメント数を表示するには、 |
GET /<index>/_doc/<id> | 特定のドキュメントからデータを取得します。 |
スナップショットコマンド
コマンド | 説明 |
GET _snapshot/_all | すべてのスナップショットを返します。 |
GET _snapshot/<snapshot_name>/_status | 指定されたスナップショットの進捗状況を返します。 |
よくある質問
Elasticsearch で実行中のすべての検索タスクを表示するにはどうすればよいですか。
Kibana の [開発ツール] コンソールで次のコマンドを実行すると、現在のノードで実行中のすべての検索タスクとその詳細を照会できます。
GET /_tasks?actions=indices:data/read/search*&detailed=true&nodes=_localこのコマンドは、検索遅延のトラブルシューティングや、検索タスクの実行ステータスの確認などのシナリオに適しています。
Elasticsearch の検索リクエストで 503 Service Unavailable エラーが返される場合、どのようにトラブルシューティングしますか。
503 エラーは通常、クラスターの高負荷またはディスク使用量の高さが原因で発生します。エラーをトラブルシューティングするには、次の手順を実行してください。
GET /_cluster/healthを実行してクラスターのヘルスステータスを確認し、クラスターがredまたはyellow状態であるか、未割り当てのシャードが存在するかどうかを判断します。GET /_cat/nodes?vを実行して、ノードの CPU 使用率、ヒープメモリ使用量、およびディスク使用量を確認します。クラスターのステータスが異常な場合は、まずシャードの割り当ての問題またはリソースボトルネックを解決したうえで、検索リクエストを再試行してください。