Nenhuma rota para hospedar exceção elasticsearch

3

Ao ativar o elasticsearch, estou recebendo o seguinte erro de configuração:

[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; ]; ]

Mesmo que o host esteja acessível via 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.

Eu também estou recebendo até mesmo o localhost não pode encontrar uma rota na inicialização:

[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)

Eu tenho os hosts listados em elasticsearch.yml para conectar via unicast e não multicast (que eu desabilitei).

    
por 580farm 21.04.2015 / 22:59

2 respostas

4

Dê um nome ao seu cluster e o problema será resolvido.

Edite config/elasticsearch.yml no seu diretório elasticsearch.

Remova o comentário cluster.name: elasticsearch e altere-o para algo como cluster.name: your_hostname

Em seguida, tente iniciar o elasticsearch novamente.

    
por 03.06.2015 / 12:07
3

No route to host nos dias de hoje pode significar que você está recebendo uma mensagem ICMP Administratively Prohibited - por exemplo. você está sendo negado pelo firewall.

Eles são particularmente comuns nos sistemas da Red Hat, pelo que tenho visto, mas espero que você os veja em outro lugar também.

Isso torna mais fácil diferenciar de Conexão recusada (o que significa que não há nada escutando ou que a conexão foi redefinida - possivelmente por firewall).

Você pode verificar isso com tcpdump -p -nn icmp ou similar e procurar mensagens ICMP Administrativamente Proibidas ao se conectar.

Por que vale a pena, o motivo pelo qual você obtém o muito obtuso No route to host em vez de algo mais compreensível é duplo:

  • A mensagem ICMP Administratively Prohibited faz parte do (IIRC) espaço de códigos inacessível no ICMP;
  • Os códigos de erro estão bloqueados na API do Berkeley Sockets, que não possui nenhum outro erro útil (por exemplo, errno) para mapeá-lo.

Como resultado, eu tenho que educar cada consultor que aparece em nosso caminho.

    
por 22.04.2015 / 13:26