くっっっっっっっっっっっっそ久しぶりのLinux系記事です。
そして例のごとく備忘録。
そして備忘録ということはトラブルが発生したということ。
くたばれ
目的
なんかElasticSearchサーバのindex作成がうまくいってないような挙動をしたので、クラスタ間で同期が取れてないのでは?と思い確認をしたかった。
結果、クラスタのせいじゃなかったんですけどね
ElasticSearchのノード確認
$ curl -XGET 'http://[IPアドレス]:9200/_cat/nodes' 192.168.0.10 192.168.0.10 24 40 1.08 d * es01 192.168.0.20 192.168.0.20 17 39 0.67 d m es02 192.168.0.30 192.168.0.30 68 39 1.04 d - es03 192.168.0.40 192.168.0.40 15 39 0.88 d - es04
※上記のIPアドレスなどはダミーです
これでどのサーバでクラスタが組まれているのか、どのサーバがMASTERになっているのかを確認できます。
今回の場合は
- es01がMASTER
- es02がMASTER候補
- es03,04がSLAVE
ですね。
es01が死んだ場合、es02にMASTERが移ることになります。
クラスタの状態確認
$ curl -XGET 'http://[IPアドレス]:9200/_cluster/health?pretty=true' { "cluster_name" : "escluster", "status" : "green", "timed_out" : false, "number_of_nodes" : 4, "number_of_data_nodes" : 4, "active_primary_shards" : 210, "active_shards" : 420, "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ならやばいです。
そもそもこのステータスってどういう状態や?を調べてみると
The cluster health status is: green, yellow or red. On the shard level, a red status indicates that the specific shard is not allocated in the cluster, yellow means that the primary shard is allocated but replicas are not, and green means that all shards are allocated. The index level status is controlled by the worst shard status. The cluster status is controlled by the worst index status.
https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html
redはシャードが割り当たってない状態、yellowはプライマリシャードはあるけどレプリカシャードがない、という状態らしいです。
ほ~ん
まとめ
- ノードの役割やノードホストを見たかったら_cat/nodes
- ステータスなどを見たかったら_cluster/health
他にもいろいろ見れるコマンドがありそうなのですが、まだ勉強していないのでここまで。
RDBと仕様がかなり違ってて理解するのに時間がかかる・・・
コメント