クラスタヘルス

edit

まず、基本的なヘルスチェックについて説明します。これを使用して、クラスタがどのように動作しているかを確認できます。これを行うためにcurlを使用しますが、HTTP/RESTの呼び出しが可能なツールも使用できます。では、Elasticsearchを起動したノード上で、別のコマンドシェルを開いているものとします。

クラスタヘルスをチェックするために、​_cat API​を使用します。「VIEW IN CONSOLE」をクリックして​Kibanaのコンソール​で以下のコマンドを実行します。または、以下の「COPY AS CURL」リンクをクリックしてターミナルに貼り付け、`curl`を使用して以下のコマンドを実行します。

GET /_cat/health?v

次のような応答が返ります。

epoch      timestamp cluster       status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1475247709 17:01:49  elasticsearch green           1         1      0   0    0    0        0             0                  -                100.0%

「elasticsearch」という名前のクラスタはgreenステータスで稼働しているのがわかります。

クラスタヘルスを求めると、green、yellow、またはredのいずれかになります。greenはすべてが正常である(クラスタは完全に機能する)ことを示し、yellowはすべてのデータを利用できるが一部のレプリカがまだ割り当てられていない(クラスタは完全に機能する)ことを示し、redは何らかの理由で一部のデータが利用できないことを示します。クラスタはredステータスでも部分的に機能します(つまり、利用可能なシャードからの検索リクエストに対応し続ける)。ただし、失われたデータがあるため、可能な限り速やかに修正する必要があります。

また、上記の応答から、ノードの合計が1であることと、まだデータがないためシャードが0であることがわかります。デフォルトのクラスタ名(elasticsearch)を使用しており、Elasticsearchはデフォルトでユニキャストネットワーク検出を使用して同じマシン上にある別のノードを検索するため、自分のコンピュータ上に複数のノードを間違って起動し、それらをすべて単一クラスタに参加させてしまう可能性があります。このシナリオでは、上記の応答に複数のノードが表示される場合もあります。

次のように、クラスタ内にあるノードのリストを取得できます。

GET /_cat/nodes?v

次のような応答が返ります。

ip        heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
127.0.0.1           10           5   5    4.46                        mdi      *      PB2SGZY

ここでは、「PB2SGZY」という名前のノードが1つ表示されます。これは、現在クラスタ内にある単一ノードです。