如何在 Elasticsearch 6.1 中设置自动搜索节点

How to set up autosearch nodes in Elasticsearch 6.1

我在 ES 6.1 中创建了 5 个节点的集群。当我将包含其他节点的所有 IP 地址的行添加到配置文件 elasticsearch.yaml 作为 discovery.zen.ping.unicast.hosts 时,我能够创建集群。它看起来像这样:

discovery.zen.ping.unicast.hosts: ["10.206.81.241","10.206.81.238","10.206.81.237","10.206.81.239"]

当我的配置文件中有这一行时,一切正常。

ip            heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
10.206.81.241            9          54   0    0.03    0.05     0.05 mi        *      master4
10.206.81.239           10          54   0    0.00    0.01     0.05 mi        -      master1
10.206.81.238           14          54   0    0.00    0.01     0.05 mi        -      master3
10.206.81.240           15          54   0    0.00    0.01     0.05 mi        -      master5
10.206.81.237           10          54   0    0.00    0.01     0.05 mi        -      master2

当我添加 discovery.zen.ping.multicast.enabled: true elasticsearch 将无法启动。

我想有更多的节点,如果我必须单独配置每个文件并每次都为每个配置添加新地址,这不是正确的方法。那么有没有办法设置ES6自动寻找新节点呢?

编辑:

journalctl -f 输出:

led 08 10:43:04 elk-prod3.user.dc.company.local polkitd[548]: Registered Authentication Agent for unix-process:23395:23676999 (system bus name :1.162 [/usr/bin/pkttyagent --notify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8)
led 08 10:43:04 elk-prod3.user.dc.company.local systemd[1]: Stopping Elasticsearch...
led 08 10:43:04 elk-prod3.user.dc.company.local systemd[1]: Started Elasticsearch.
led 08 10:43:04 elk-prod3.user.dc.company.local systemd[1]: Starting Elasticsearch...
led 08 10:43:04 elk-prod3.user.dc.company.local polkitd[548]: Unregistered Authentication Agent for unix-process:23395:23676999 (system bus name :1.162, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bus)
led 08 10:43:07 elk-prod3.user.dc.company.local systemd[1]: elasticsearch.service: main process exited, code=exited, status=1/FAILURE
led 08 10:43:07 elk-prod3.user.dc.company.local systemd[1]: Unit elasticsearch.service entered failed state.
led 08 10:43:07 elk-prod3.user.dc.company.local systemd[1]: elasticsearch.service failed.

基本上你应该有 "stable" 个节点。我的意思是你应该拥有始终属于集群

的 IP
discovery.zen.ping.unicast.hosts: [MASTER_NODE_IP_OR_DNS, MASTER2_NODE_IP_OR_DNS, MASTER3_NODE_IP_OR_DNS]

然后,如果您使用自动缩放或添加节点,他们必须 "talk" 到该 ips 以让他们知道他们正在加入集群。

你没有提到任何关于你的网络设置的事情,所以我可以肯定地说出问题所在。但我记得单播主机是推荐的方法

PS。如果您使用的是 Azure,我根据需要修改了名为 VM 规模集的功能 template。想法是默认情况下我总是使用 3 个节点,如果我的集群加载规模集将动态添加更多节点。

discovery.zen.ping.multicast 已从 elasticsearch 中删除,请参阅:https://www.elastic.co/guide/en/elasticsearch/plugins/6.1/discovery-multicast.html