Kiedy próbowałem połączyć się z Elasticsearch za pomocą tego
curl http://localhost:9200
, działa dobrze.
Ale kiedy uruchamiam curl http://IpAddress:9200
, rzuca komunikat o błędzie
Nie można połączyć się z portem hosta lokalnego 9200: odmowa połączenia
Jak rozwiązać ten błąd?
elasticsearch
chinna2580
źródło
źródło
curl -X GET "http://localhost:9200"
Odpowiedzi:
Domyślnie powinien być powiązany ze wszystkimi lokalnymi adresami. Tak więc, zakładając, że nie masz problemu z warstwą sieciową z zaporami ogniowymi, jedyne ustawienie ES, które mogę sprawdzić, to
network.bind_host
i upewnić się, że nie jest ustawione lub jest ustawione na0.0.0.0
lub::0
lub na prawidłowy adres IP dla Twojej sieci.Aktualizacja: za komentarze w ES 2.3 należy ustawić
network.host
zamiast.źródło
network.bind_host
wartość, pozostawienie jej nieustawionej było moim problemem.Edytuj
/etc/elasticsearch/elasticsearch.yml
i dodaj następujący wiersz:Spowoduje to "usunięcie" tego parametru i umożliwi połączenia z innych adresów IP.
źródło
/Applications/elasticsearch-2.1.1/config/elasticsearch.yml
, a parametr, który musiałem edytowaćnetwork.host
, nienetwork.bind_host
.curl http://172.17.0.2:9200
. Zrozumiesz, że jest to powszechnie używany adres IP dockera.Wypróbowałem wszystko na tej stronie i pomogły tylko instrukcje z tego miejsca .
w
/etc/default/elasticsearch
, upewnij się, że te nie są komentowane:upewnij się, że
/var/lib/elasticsearch
należy do użytkownika Flexiblesearch:źródło
chown -R elasticsearch:elasticsearch /var/lib/elasticsearch/
i bez komentarzaSTART_DAEMON=true
sudo systemctl restart elasticsearch
jak odpowiedział @kalanit, rozwiązało problemW moim przypadku uruchomiono elastyczne wyszukiwanie. Ale nadal miał
Następujące polecenie nie powiodło się
Aby to zadziałało, musiałem zamiast tego biec
Potem wszystko poszło dobrze.
źródło
sudo systemctl enable elasticsearch
.systemctl
działa i nie działa?Dlaczego nie zaczniesz od tego wiersza poleceń:
Zrobiłem to i otrzymałem:
Następnie edytowałem
/etc/elasticsearch/jvm.options
plik:To zadziałało jak urok.
źródło
Żadne z proponowanych tutaj rozwiązań nie działało dla mnie, ale ostatecznie udało się to dodać do
elasticsearch.yml
Następnie ponownie uruchomiłem usługę i teraz mogę to
curl
zrobić zarówno z maszyny wirtualnej, jak i zewnętrznie. Z jakiegoś dziwnego powodu musiałem wypróbować kilka różnych wariantówcurl
połączenia wewnątrz maszyny wirtualnej, zanim zadziałało:Uwaga: używam Elasticsearch 5.5 na Ubuntu 14.04
źródło
upewnij się, że serwer jest uruchomiony. Widziałem ten problem, gdy moja maszyna wirtualna miała zbyt małą pamięć RAM i nie można było uruchomić es.
powyższe pokaże, czy es rzeczywiście działa.
źródło
Do tego problemu musiałem użyć:
sudo /usr/share/elasticsearch/bin/elasticsearch start
aby móc uzyskać coś na portach 9200/9300 (sudo netstat -ntlp) i odpowiedź na:
curl -XGET http://localhost:9200
źródło
Edytuj
elasticsearch.yml
i dodaj następujący wiersznetwork.host: 0.0.0.0
nie pracował dlaźródło
Otwórz Dockerfile pod elasticsearch folderu i aktualizacji "network.host = 0.0.0.0" z "network.host = 127.0.0.1" . Następnie uruchom ponownie kontener. Sprawdź połączenie z curl.
źródło
Miałem ten sam problem z odmową połączenia na porcie 9200. Sprawdź stan usługi Flexiblesearch za pomocą polecenia
sudo service elasticsearch status
. Jeśli wyświetla błąd i czytasz cokolwiek związanego z Javą, prawdopodobnie problem dotyczy pamięci jvm. Możesz go edytować w/etc/elasticsearch/jvm.options
. W przypadku maszyny z 1 GB pamięci RAM w środowisku Amazon zachowałem konfigurację na:Po ustawieniu tego i ponownym uruchomieniu usługi elastycznego wyszukiwania działało to jak marzenie. Sprawdzanie Nmapa i UFW (jeśli używasz lokalnej zapory) również powinno być przydatne.
źródło
Miałem podobny problem.
Oto jak to rozwiązałem
Uruchom poniższe polecenie usługi, aby uruchomić ElasticSearch
LUB
Jeśli nadal otrzymujesz błąd
Uruchom poniższe polecenie usługi, aby sprawdzić stan ElasticSearch
LUB
Jeśli otrzymasz odpowiedź ( Active: active (running) ), jak ta poniżej, oznacza to, że ElasticSearch jest aktywny i działa
Następnie możesz sprawdzić, czy węzeł Elasticsearch działa, wysyłając żądanie HTTP do portu 9200 na hoście lokalnym za pomocą poniższego polecenia:
W przeciwnym razie, jeśli otrzymasz inną odpowiedź, być może będziesz musiał dalej debugować, aby to naprawić, ale uruchomienie poniższego polecenia pomoże Ci wykryć, jakie zastrzeżenia powstrzymują uruchomienie usługi ElasticSearch .
LUB
Jeśli chcesz zatrzymać usługę ElasticSearch , po prostu uruchom poniższe polecenie usługi;
LUB
N / B: Może być konieczne uruchomienie polecenia
sudo service elasticsearch status
LUB zasudo systemctl status elasticsearch
każdym razem, gdy napotkasz błąd, aby poinformować o stanie usługi ElasticSearch .Dotyczy to również Kibany , uruchom polecenie
sudo service kibana status
LUB zasudo systemctl status kibana
każdym razem, gdy napotkasz błąd, aby poinformować o stanie usługi Kibana .To wszystko.
Mam nadzieję, że to pomoże.
źródło
W takim przypadku w pierwszej kolejności należy sprawdzić wersję java za pomocą poniższego polecenia:
po uruchomieniu tego polecenia otrzymujesz coś takiego:
następnie użyj tego polecenia:
i wybierz poniższą wersję
Enter, aby zachować bieżący wybór [+], lub wpisz numer wyboru: 2
źródło
Moje 2 centy,
Właśnie wykonałem procedurę instalacji na Digital Ocean, najwyraźniej pakiet dostępny w repozytoriach nie jest aktualny, usunąłem wszystko i wykonałem procedurę instalacji bezpośrednio z Elastic Search i wszystko działa teraz, w zasadzie jest włączone zachowanie po wyjęciu z pudełka lokalny host wskazujący na 9200. To samo / problem znaleziony w Kibanie, rozwiązaniem dla mnie było również usunięcie wszystkiego i po prostu wykonanie ich procedury. Mam nadzieję, że zaoszczędzi to komuś dwie godziny (czas, który spędziłem na zastanawianiu się, jak skonfigurować ELK!)
en
źródło
Zaktualizuj swój plik jdk do najnowszej minimalnej wersji dla swojej elastycznej wyszukiwarki.
źródło
Zmień network.bind na 0.0.0.0 i http: port na 9200. Adres powiązania 0.0.0.0 oznacza wszystkie adresy IPv4 na komputerze lokalnym. Jeśli host ma dwa adresy IP, 192.168.1.1 i 10.1.2.1, a serwer działający na hoście nasłuchuje na 0.0.0.0, będzie osiągalny z obu tych adresów IP.
źródło
Jeśli napotkasz błąd odmowy połączenia , po prostu uruchom poniższe polecenie, aby sprawdzić stan usługi ElasticSearch
Pomoże ci to rozszyfrować stan usługi ElasticSearch i co z tym zrobić.
źródło
Nieprzydatne w wersji 7.5.0 i nowszych.
źródło
Po skorzystaniu z niektórych z powyższych odpowiedzi nie zapominaj, że po instalacji apt może być konieczne całkowite ponowne uruchomienie.
źródło
Aby to dodać, natknąłem się na wiele dokumentów za pośrednictwem Google, które mówiły o ustawieniu network.host na localhost.
W ten sposób odmówiono mi niesławnego połączenia. Musisz użyć adresu IP (127.0.0.1), a nie nazwy FQDN.
Jeff
źródło
Upewnij się, że port
9200
jest otwarty dla mojej sprawy, była to instancja amazon, więc kiedy otworzyłem go w mojej grupie bezpieczeństwa, polecenie curl zadziałało.źródło
Wyłączenie SELinux działało dla mnie, chociaż nie sugeruję tego - zrobiłem to tylko dla PoC
źródło
Mój problem polegał na tym, że nie mogłem pracować
localhost
, musiałem ustawić go na adres IP lokalnego hostanetwork.bind_host: 127.0.0.1
źródło
W moim przypadku problem dotyczy wersji java, którą zainstalowałem
open-jdk 11
wcześniej. To powoduje problem podczas uruchamiania usługi. Zmieniłem toopen-jdk 8
i zaczęło działaćźródło