Począwszy od wersji 2.0 Elasticsearch nasłuchuje domyślnie tylko na hoście lokalnym, ale chciałbym wysłać żądanie poza localhost.
Na przykład takie żądanie jest dozwolone:
http://localhost:9200/
Ale to nie jest:
http://server_name:9200/
(spoza serwera, np .: komputer lokalny w tej samej sieci LAN).
Dzięki za pomoc.
elasticsearch
Abraham Duran
źródło
źródło
Odpowiedzi:
W
config/elasticsearch.yml
skrócieźródło
/etc/elasticsearch/elasticsearch.yml
i zawartość:network.host: ["0.0.0.0"]
T_T
C:\ProgramData\Elastic\Elasticsearch\config
lokalizację. Jeśli chcesz połączyć się programowo z Elasticsearch, może być konieczne ustawienietransport.host: 0.0.0.0
welasticsearch.yml
pliku.Domyślnie transport HTTP i wewnętrzny transport elastycznego wyszukiwania nasłuchuje tylko na localhost. Jeśli chcesz uzyskać dostęp do Elasticsearch z hosta innego niż localhost, spróbuj dodać następujące konfiguracje w config / flexiblesearch.yml .
Tutaj network.host jako 0.0.0.0 zezwala na dostęp z dowolnego hosta w sieci.
źródło
elasticsearch.yml
plikuZmień nazwę pliku flexiblesearch.yml na elastsearch.json w folderze config i dodaj:
Inną opcją jest udostępnienie ustawień zewnętrznie albo za pomocą ES_JAVA_OPTS, albo jako parametrów do polecenia elastsearch, na przykład:
$ elasticsearch -Des.network.host=10.0.0.4
Inną opcją jest ustawienie es.default. prefiks zamiast es. prefiks, co oznacza, że domyślne ustawienie będzie używane tylko wtedy, gdy nie zostanie jawnie określone w pliku konfiguracyjnym.
Inną opcją jest użycie
${...}
notacji w pliku konfiguracyjnym, która będzie oznaczać ustawienie środowiska, na przykład:Lokalizację pliku konfiguracyjnego można ustawić zewnętrznie za pomocą właściwości systemowej:
$ elasticsearch -Des.config=/path/to/config/file
Aby uzyskać więcej informacji, odwiedź https://www.elastic.co/guide/en/elasticsearch/reference/1.4/setup-configuration.html
źródło
elasticsearch.yml
na,elasticsearch.json
ponieważ pierwsza, hmmm, YAML, a druga toJSON
??Jak wspomniał @arsent, dodaj ten adres IP do pliku konfiguracyjnego:
Jay dodał również ważną kwestię - jeśli używasz zapory, pamiętaj, aby dodać regułę zezwalającą na ruch do tego portu.
Jeśli chcesz zezwolić serwerowi głównemu na dostęp do ES przez http, dodaj regułę zezwalającą na dostęp tylko z tego konkretnego adresu. Na przykład, powiedzmy, że używasz ufw, a następnie uruchom to polecenie, aby dodać swój port:
Zastąp xxx.xxx.xxx.xxx adresem IP swojego serwera głównego, a zzzz nazwą portu skonfigurowanego w
config/elasticsearch.yml
Zaleca się użycie niestandardowego portu i nie zachowanie domyślnego 9200
Aby to przetestować, połącz się z serwerem głównym za pomocą protokołu SSH i wyślij polecenie ping na adres IP serwera ES z odpowiednim portem, aby sprawdzić, czy otrzymasz odpowiedź:
Możesz również sprawdzić, czy ES jest niedostępny z innych adresów IP, wypróbowując go w swojej przeglądarce.
Jest doskonały artykuł, który pokazuje, jak skonfigurować ES na Ubuntu na DigitalOcean
źródło
W /etc/elasticsearch/elasticsearch.yml ustaw następującą wartość:
network.host: [ localhost, _site_ ]
Ta opcja umożliwia dostęp zarówno z hosta lokalnego, jak i ze wszystkich komputerów w sieci lokalnej (192.168.XX), ale nie z zewnątrz.
Przeczytaj więcej o tej i innych opcjach, przeczytaj dokumentację
źródło
Na zdalnej maszynie, na której jest zainstalowana aplikacja Flexiblesearch, wystarczy dodać poniższe dwie konfiguracje w
/etc/elasticsearch/elasticsearch.yml
Przetestowano na elastyfikatorze 6.8.3 i AWS EC2 Linux AMI jako zdalnej maszynie
źródło
W
/etc/elasticsearch/elasticsearch.yml
:źródło
Zamień localhost na 0.0.0.0 w dwóch miejscach.
Idź
/etc/elasticsearch/elasticsearch.yml
. Poszukaj wartości w network.host i zmień ją na 0.0.0.0To jest krok, jeśli używasz Kibany. Idź
/etc/kibana/kibana.yml
. Poszukaj wartości w server.host i zmień ją na 0.0.0.0Teraz masz dostęp zdalny za pomocą adresu IP i hosta.
źródło
W
config/elasticsearch.yml
umieścićnetwork.host: 0.0.0.0
jako @arsent powiedział. Dodaj także regułę ruchu przychodzącego do zapory sieciowej dla portu ElasticSearch (9200 ByDefault).Działało w ElasticSearch w wersji 2.3.0
źródło
Dla ElasticSearch 7.8 i nowszych
Sprawdź, czy jesteś w jednym węźle. dodaj następujący wiersz
Aby uzyskać dostęp do serwera Elasticsearch z innego komputera lub aplikacji, wprowadź następujące zmiany w węźle
C:\ProgramData\Elastic\Elasticsearch\config\elasticsearch.yml file:
Dodaj następujące wiersze
Czasami może być konieczne włączenie mechanizmu CORS
Oto mój pełny plik yml
źródło
Oprócz oprawy
network.host : 0.0.0.0
może zajść potrzeba ustawienia następujących parametrów
Wszystkie ustawienia wchodzą
elasticsearch/elasticsearch.yml
źródło
Korzystając z systemu Windows 10 i samodzielnej usługi Elasticsearch 7, umieszczając to w pliku flexiblesearch.yml rozwiązujemy problem:
network.host: 0.0.0.0 discovery.type: pojedynczy węzeł
źródło