概要
elasticsearchはデフォルトでmulticastがONになっているので,気がつくと知らないノードとクラスタ組んでいるときがある.インストールしたら,
- クラスタ名を変える
- multicastをやめる
のどっちか(もしくは両方)ぐらいはしておいた方がいい.
経緯
icu の filter プラグインを入れたのですが,どうも上手く認識されなくてさんざん悩んだあげく,次のようなアドバイスをもらいました.
@ikawaha クラスタ名を変更したほうがいいですよ。デフォルトで起動すると、同じネットワークで立ち上げてる人がいると、クラスタ組んじゃうから。
— Jun Ohtani (@johtani) 2014, 8月 8
!たしかに知らないうちにノードが増えてる!
入れたプラグインが動かない原因はこう.
- 知らないうちに知らないノードとクラスタ組んでる
- 知らないノードには僕が入れたプラグインが入っていない(あたりまえ
- すべてのノードに入っていないプラグインは動作しない
orz ということでクラスタ勝手に組まないように elasticsearch.yml
を修正します.ウチの環境では /etc/elasticsearch
の下にありました.
修正点
2箇所変更しました.
クラスタ名を変更する
################################### Cluster ###################################
# Cluster name identifies your cluster for auto-discovery. If you're running
# multiple clusters on the same network, make sure you're using unique names.
#
#cluster.name: elasticsearch
cluster.name: ikawaha.elasticsearch
multicastをしないようにする(デフォルトはON)
# Unicast discovery allows to explicitly control which nodes will be used
# to discover the cluster. It can be used when multicast is not present,
# or to restrict the cluster communication-wise.
#
# 1. Disable multicast discovery (enabled by default):
#
discovery.zen.ping.multicast.enabled: false
設定を変更する前に,クラスタ組んでたインデックスをそっと消しました.こちらからは以上です.