Erro de conexão recusada na pesquisa elástica

Quando tentei conectar-me ao Elastic Search usando o curl http://localhost:9200 ele está funcionando bem.

Mas quando eu executar o curl http://IpAddress:9200 está jogando um erro dizendo connection refused port 9200 .

Como resolver esse erro?

Por padrão, ele deve se ligar a todos os endereços locais. Portanto, supondo que você não tenha um problema de camada de rede com firewalls, a única configuração de ES que eu posso pensar em verificar é network.bind_host e verifique se ele não está definido ou está definido como 0.0.0.0 ou ::0 ou para o endereço IP correto para sua rede.

Atualização: por comentários no ES 2.3 você deve definir network.host vez disso.

Edite /etc/elasticsearch/elasticsearch.yml e adicione a seguinte linha:

  network.host: 0.0.0.0 

Isso “desativará” esse parâmetro e permitirá conexões de outros IPs.

Tentei tudo nesta página, e apenas as instruções daqui ajudaram.

em /etc/default/elasticsearch , verifique se eles não foram comentados:

 START_DAEMON=true ES_USER=elasticsearch ES_GROUP=elasticsearch LOG_DIR=/var/log/elasticsearch DATA_DIR=/var/lib/elasticsearch WORK_DIR=/tmp/elasticsearch CONF_DIR=/etc/elasticsearch CONF_FILE=/etc/elasticsearch/elasticsearch.yml RESTART_ON_UPGRADE=true 

Certifique-se de que /var/lib/elasticsearch seja de propriedade do usuário elasticsearch:

 chown -R elasticsearch:elasticsearch /var/lib/elasticsearch/ 

No meu caso, o elasticsearch foi iniciado. Mas ainda tinha

 curl: (7) Failed to connect to localhost port 9200: Connection refused 

O comando a seguir foi malsucedido

 sudo service elasticsearch restart 

Para fazer funcionar, eu tive que correr

 sudo systemctl restart elasticsearch 

Então tudo correu tudo bem.

 OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12) 

Certifique-se de que o servidor esteja iniciado. Eu vi esse problema quando minha máquina virtual tinha pouco RAM e es não pôde iniciar.

 sudo systemctl status elasticsearch 

o acima irá mostrar se está de fato funcionando.

Nenhuma das soluções propostas aqui funcionou para mim, mas o que eventualmente funcionou foi adicionar o seguinte ao elasticsearch.yml

 network: host: 0.0.0.0 http: port: 9200 

Depois disso, reiniciei o serviço e agora posso curl lo de dentro da VM e externamente. Por alguma razão estranha, eu tive que tentar algumas variantes diferentes de uma chamada curl dentro da VM antes de funcionar:

 curl localhost:9200 curl http://localhost:9200 curl 127.0.0.1:9200 

Nota: Estou usando o Elasticsearch 5.5 no Ubuntu 14.04

Por que você não começa com esta linha de comando:

 $ sudo service elasticsearch status 

Eu fiz e consegui:

 "There is insufficient memory for the Java Runtime..." 

Então editei o arquivo /etc/elasticsearch/jvm.options :

 ... ################################################################ # Xms represents the initial size of total heap space # Xmx represents the maximum size of total heap space #-Xms2g #-Xms2g -Xms512m -Xmx512m ################################################################ ... 

Isso funcionou como um encanto.

Para este problema, eu tive que usar: sudo /usr/share/elasticsearch/bin/elasticsearch start

para conseguir algo nas portas 9200/9300 (sudo netstat -ntlp) e uma resposta para:

curl -XGET http://localhost:9200

Abra seu Dockerfile sob a pasta elasticsearch e atualize “network.host = 0.0.0.0” com “network.host = 127.0.0.1” . Em seguida, reinicie o contêiner. Verifique sua conexão com o curl.

 $ curl http://docker-machine-ip:9200 { "name" : "vI6Zq_D", "cluster_name" : "elasticsearch", "cluster_uuid" : "hhyB_Wa4QwSX6zZd1F894Q", "version" : { "number" : "5.2.0", "build_hash" : "24e05b9", "build_date" : "2017-01-24T19:52:35.800Z", "build_snapshot" : false, "lucene_version" : "6.4.0" }, "tagline" : "You Know, for Search" } 

Eu tive o mesmo problema recusando conexões na porta 9200. Verifique o status do serviço elasticsearch com o comando sudo service elasticsearch status . Se estiver apresentando um erro e você ler qualquer coisa relacionada ao Java, provavelmente o problema é a sua memory jvm. Você pode editá-lo em /etc/elasticsearch/jvm.options . Para uma máquina de memory RAM de 1 GB no ambiente da Amazon, mantive minha configuração em:

 -Xms128m -Xmx128m 

Depois de definir isso e reiniciar o serviço elasticsearch, funcionou como um encanto. O Nmap e o UFW (se você usar o firewall local) também devem ser úteis.

Neste caso, primeiro você precisa verificar a versão do java usando o comando abaixo:

 java -version 

depois de executar este comando, você obtém algo assim:

java version “1.7.0_51” OpenJDK Ambiente de tempo de execução (rhel-2.4.5.5.el7-x86_64 u51-b31) OpenJDK VM de servidor de 64 bits (compilation 24.51-b03, modo misto)

então use este comando:

 update-alternatives --config java 

e selecione a versão abaixo

* + 1 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.51-2.4.5.5.el7.x86_64/jre/bin/java 2 /usr/java/jdk1.8.0_73/jre/bin/ Java

Digite para manter a seleção atual [+] ou digite o número de seleção: 2

 curl -XGET http://127.0.0.1:9200 

Meus 2 centavos

Eu apenas segui o procedimento de instalação no Digital Ocean, aparentemente o pacote disponível nos repositorys não está atualizado, eu deletei tudo e segui o procedimento de instalação direto do Elastic Search e tudo está funcionando agora, basicamente o comportamento fora da checkbox está ativado um localhost apontando para 9200. Mesma coisa / problema encontrado com Kibana, a solução para mim também foi, para remover tudo e apenas seguir o procedimento, Espero que isso economize alguém duas horas (o tempo que passei pensando em como configurar o ELK!)

en

Depois de utilizar algumas das respostas acima, não se esqueça que depois de uma instalação do apt, uma reboot total pode estar em ordem.

Só para acrescentar isso, me deparei com muitos documentos através do google que dizia para definir network.host para localhost.

Fazer isso me deu a conexão infame recusada. Você deve usar um endereço IP (127.0.0.1), não um FQDN.

Jeff

Atualize seu jdk para a última versão mínima para o seu elasticsearch.