program story

Elasticsearch 2.0에서 원격 액세스 / 요청을 활성화하려면 어떻게해야합니까?

inputbox 2020. 10. 31. 09:40
반응형

Elasticsearch 2.0에서 원격 액세스 / 요청을 활성화하려면 어떻게해야합니까?


v2.0부터 Elasticsearch는 기본적으로 localhost에서만 수신하고 있지만 localhost 외부에서 요청하고 싶습니다.

예를 들어 다음과 같은 요청이 허용됩니다.

http://localhost:9200/

그러나 이것은 아닙니다 :

http://server_name:9200/ (서버 외부에서, 예 : 동일한 LAN에있는 로컬 컴퓨터).

당신의 도움을 주셔서 감사합니다.


config/elasticsearch.yml넣어

network.host: 0.0.0.0

기본적으로 http 전송 및 내부 elasticsearch 전송은 localhost 만 수신합니다. localhost 이외의 호스트에서 Elasticsearch에 액세스하려면 config / elasticsearch.yml 에 다음 구성을 추가해보십시오 .

transport.host: localhost 
transport.tcp.port: 9300 
http.port: 9200
network.host: 0.0.0.0

여기서 network.host as 0.0.0.0은 네트워크 내의 모든 호스트에서 액세스를 허용합니다.


elasticsearch.yml 파일의 이름을 config 폴더 내의 elasticsearch.json으로 변경하고 다음을 추가하십시오.

{
    "network" : {
        "host" : "10.0.0.4"
    }
}

또 다른 옵션은 ES_JAVA_OPTS를 사용하거나 elasticsearch 명령에 대한 매개 변수로 외부 적으로 설정을 제공하는 것입니다. 예를 들면 다음과 같습니다.

$ elasticsearch -Des.network.host=10.0.0.4

또 다른 옵션은 es.default를 설정하는 것입니다. es 대신 접두사. 즉, 구성 파일에 명시 적으로 설정되지 않은 경우에만 기본 설정이 사용됩니다.

또 다른 옵션은 ${...}환경 설정으로 해석되는 구성 파일 내 에서 표기법 을 사용 하는 것입니다. 예를 들면 다음과 같습니다.

{
    "network" : {
        "host" : "${ES_NET_HOST}"
    }
}

구성 파일의 위치는 시스템 속성을 사용하여 외부에서 설정할 수 있습니다.

$ elasticsearch -Des.config=/path/to/config/file

자세한 내용은 https://www.elastic.co/guide/en/elasticsearch/reference/1.4/setup-configuration.html을 확인 하세요.


@arsent가 언급했듯이 구성 파일에 해당 IP 주소를 추가하십시오.

sudo nano /etc/elasticsearch/elasticsearch.yml

Jay는 또한 중요한 점을 추가했습니다. 방화벽을 사용하는 경우 해당 포트에 대한 트래픽을 허용하는 규칙을 추가해야합니다.

마스터 서버가 http를 통해 ES에 액세스하도록 허용하려면 해당 특정 주소에서만 액세스를 허용하는 규칙을 추가하십시오. 예를 들어 ufw를 사용하고 있다고 가정하고 다음 명령을 실행하여 포트를 추가합니다.

sudo ufw allow from xxx.xxx.xxx.xxx to any port zzzz

xxx.xxx.xxx.xxx를 마스터 서버 IP 주소로, zzzz를 구성한 포트로 바꿉니다. config/elasticsearch.yml

사용자 지정 포트를 사용하고 기본값 인 9200을 유지하지 않는 것이 좋습니다.

테스트하려면 마스터 서버에 SSH를 사용하고 올바른 포트로 ES ip를 핑하여 응답을 받는지 확인합니다.

curl -X GET 'http://xxx.xxx.xxx.xxx:zzzz'

브라우저에서 ES를 시도하여 다른 IP에서 ES에 액세스 할 수 없는지 확인할 수도 있습니다.

거기에 뛰어난 기사 쇼가 어떻게 디지털 오션에 우분투 ES를 설정하는 것으로는


/etc/elasticsearch/elasticsearch.yml에서 다음 값을 설정하십시오.

network.host: [ localhost, _site_ ]

이 옵션을 사용하면 로컬 호스트와 로컬 네트워크 (192.168.XX)의 모든 컴퓨터에서 액세스 할 수 있지만 외부에서는 액세스 할 수 없습니다.
이 옵션 및 기타 옵션에 대한 자세한 내용은 설명서를 참조하십시오


에서 /etc/elasticsearch/elasticsearch.yml:

network.host: 0.0.0.0
network.bind_host: 0.0.0.0
network.publish_host: 0.0.0.0

두 곳에서 localhost를 0.0.0.0 으로 바꿉니다 .

  1. Goto /etc/elasticsearch/elasticsearch.yml. network.host 에서 값 을 찾아 0.0.0.0으로 변경 합니다.

  2. Kibana를 사용하는 경우이 단계입니다. Goto /etc/kibana/kibana.yml. server.host 에서 값 을 찾아 0.0.0.0으로 변경 합니다.

이제 IP 주소와 호스트를 사용하여 원격으로 액세스합니다.


config / elasticsearch.yml에서 @arsent가 말한대로 network.host : 0.0.0.0을 넣으십시오. 또한 ElasticSearch 포트 (9200 ByDefault)에 대한 방화벽에 인바운드 규칙을 추가하십시오. ElasticSearch 버전 2.3.0에서 작동했습니다.


In the remote machine where elasticsearch is installed just add the below two configurations in /config/initializers/elasticsearch.rb

network.host: xx.xx.xx.xx #remote elastic machine's internal IP
discovery.type: single-node

Tested on elasticsearch 6.8.3 and AWS EC2 Linux AMI as remote machine

참고URL : https://stackoverflow.com/questions/33696944/how-do-i-enable-remote-access-request-in-elasticsearch-2-0

반응형