При включении elasticsearch я получаю следующую ошибку конфигурации:
[2015-04-21 20:49:45,635][INFO ][discovery.zen ] [Blackwulf] failed to send join request to master [[Conquistador][HzGNMjroRCuoHsoTyI3zag][elastic02][inet[/10.70.121.114:9300]]], reason [RemoteTransportException[[Conquistador][inet[/10.70.121.114:9300]][internal:discovery/zen/join]]; nested: NotSerializableTransportException[[org.elasticsearch.transport.ConnectTransportException] [Blackwulf][inet[/10.70.112.23:9300]] connect_timeout[30s]; No route to host; ]; ]
Несмотря на то, что хост доступен через telnet:
[root@elastic05 ~]# telnet 10.70.121.114 9300
Trying 10.70.121.114...
Connected to 10.70.121.114.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
[root@elastic05 ~]# telnet 10.70.121.114 9200
Trying 10.70.121.114...
Connected to 10.70.121.114.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
Я также получаю, что даже локальный хост не может найти маршрут при загрузке:
[2015-04-21 20:24:18,291][INFO ][node ] [Ezekiel Stane] version[1.4.1], pid[1347], build[89d3241/2014-11-26T15:49:29Z]
[2015-04-21 20:24:18,292][INFO ][node ] [Ezekiel Stane] initializing ...
[2015-04-21 20:24:18,306][INFO ][plugins ] [Ezekiel Stane] loaded [cloud-aws], sites []
[2015-04-21 20:24:21,558][INFO ][node ] [Ezekiel Stane] initialized
[2015-04-21 20:24:21,558][INFO ][node ] [Ezekiel Stane] starting ...
[2015-04-21 20:24:21,684][INFO ][transport ] [Ezekiel Stane] bound_address {inet[/0.0.0.0:9300]}, publish_address {inet[/10.70.112.23:9300]}
[2015-04-21 20:24:21,696][INFO ][discovery ] [Ezekiel Stane] elasticsearch/f5p3lsxyTfukHZ2E8_G4vQ
[2015-04-21 20:24:21,737][WARN ][transport.netty ] [Ezekiel Stane] exception caught on transport layer [[id: 0x3d524f37]], closing connection
java.net.NoRouteToHostException: No route to host
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.connect(NioClientBoss.java:152)
at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.processSelectedKeys(NioClientBoss.java:105)
at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:79)
at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318)
at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:42)
at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
У меня есть хосты, перечисленные в elasticsearch.yml для подключения через одноадресную, а не многоадресную рассылку (которую я отключил).
Дайте название своему кластеру, и проблема будет решена.
редактировать config/elasticsearch.yml
в вашем каталоге elasticsearch.
Раскомментировать cluster.name: elasticsearch
и измените его на что-то вроде cluster.name: your_hostname
Затем попробуйте снова запустить elasticsearch.
No route to host
в наши дни часто может означать, что вы получаете сообщение ICMP, запрещенное администрацией, т.е. вам отказывает брандмауэр.
Из того, что я видел, они особенно распространены в системах Red Hat, но я надеюсь, что вы увидите их и в других местах.
Это упрощает процесс отличия от отказа в подключении (что просто означает, что ничего не слушает или что соединение было сброшено - возможно, брандмауэром).
Вы можете проверить это с помощью tcpdump -p -nn icmp
или подобное, и при подключении ищите сообщения ICMP, запрещенные администрацией.
Какова его ценность, причина, по которой вы получаете очень тупой No route to host
вместо чего-то более понятного двоякое:
В результате мне приходится обучать каждого консультанта, который встречается на нашем пути.