2013-08-28 2 views
5

타사 서버에서 쿼리하려고하는 elasticsearch의 기본 설치가 있습니다. 그러나 기본적으로 이것은 차단 된 것으로 보입니다.Elasticsearch에 원격 액세스 허용

다른 서버에서 쿼리 할 수 ​​있도록 elasticsearch를 구성하는 방법을 알려주는 사람이 있습니까?

도움을 주시면 감사하겠습니다.

제임스는 기본적으로 제한이 없습니다

답변

1

기본적으로 구성을 변경하지 않고 elasticsearch를 설치하고 실행하면 localhost에만 바인딩됩니다. elasticsearch REST API 엔드 포인트에 원격으로 액세스하려면 elasticsearch가 설치된 서버에서 아래 변경 사항을 수행해야합니다.

  • Elasticsearch 구성 변경 업데이트를 모두 IPv4의에 바인딩 예를 들어 elasticsearch 문서 에서 제공하는 지침에 따라 elasticsearch.yml의 network.host 속성은 로컬 컴퓨터에 네트워크 아래와 같이 변경 사항을 해결합니다. 호스트 : 0.0.0.0

  • 방화벽 규칙 업데이트 Linux 방화벽을 업데이트하여 포트 9200에 액세스 할 수있게하십시오. 방화벽에 규칙을 추가하는 방법은 Linux 설명서를 참조하십시오. 예를 들어

는 방화벽 cmd를 $ sudo는 방화벽 cmd를 --zone = 공공 --permanent --add 포트 = 9200/TCP를 사용 CentosOS의 모든 서버에 대한 액세스 (공개)을 허용하는 성공 $ sudo firewall-cmd --reload 성공

참고 : 프로덕션 환경에서는 공용 액세스가 권장되지 않습니다. 제한된 액세스가 선호됩니다.

1

는 ElasticSearch 포트 9200에 표준 HTTP API를 노출합니다.

타사 서버에서 수행 할 수있는 작업은 다음과 같습니다. curl http://es_hostname:9200/?

+0

Damien - 당신은 의식입니다. 기본 제한이 없습니다. – naren

+1

** IPv4에는 ** 제한 사항이 있습니다. 표준 API는 로컬 테스트에 잘 응답합니다. 원격 테스트가 아닙니다. –

+0

ES> 2.0에서 새로운 제한 사항이 있습니다. network.host ("_local_"및 "_site_"와 같은 특수 키 작업이 있음)를 구성하십시오. – Damien

2

편집 : Sisso 아래 자신의 코멘트에 언급 바와 같이, Elasticsearch 2.0의 적어도 기본적으로 localhost로 결합한다. 자세한 내용은 https://www.elastic.co/guide/en/elasticsearch/reference/2.0/modules-network.html을 참조하십시오.


로 데미안는 기본적으로 ES 포트 9200에 대한 모든 액세스를 허용 그의 대답에 언급하고있다. 실제로, ES 리소스에 대한 인증을 제공하기 위해 외부 도구를 사용해야합니다. 웹 응용 프로그램 프론트 엔드 또는 Basic Auth가 설정된 간단한 nginx와 같은 것입니다. 원격 시스템에 액세스 할 수 있습니다

것들 (당신은 아마이 알고) :

  • 네트워크 구성 문제 포트에
  • ES 호스트 방화벽 차단 들어오는 요청을 보내는 9200
  • 원격 호스트 방화벽 차단 ES 호스트 및/또는 포트에 대한 요청 9200
  • ES가 잘못된 IP 주소에 바인딩되도록 구성되어 있습니다 (기본적으로 모든 사용 가능한 IP에 바인드됩니다)

가장 좋은가요? 원격 호스트에서 ES 호스트로 연결할 수 있는지 확인한 다음 두 시스템에서 방화벽을 확인하십시오. 더 이상 진단 할 수없는 경우 ES 메일 링리스트 (https://groups.google.com/forum/#!forum/elasticsearch) 또는 IRC 채널 (Freenode의 #elasticsearch)에서 도움을받을 수 있습니다.

+2

나는 아직도 그것이 사실이라고 생각하지 않는다. 현재 버전은 localhost에만 바인드됩니다. https://www.elastic.co/guide/en/elasticsearch/reference/2.0/modules-network.html – Sisso

3

config/elasticsearch.yml에서 network.host : 0.0.0.0을 입력하십시오. 또한 ElasticSearch 포트 (9200 ByDefault)에 대해 방화벽에 인바운드 규칙을 추가하십시오. 그것은 하나 개의 기본 노드와 원격 액세스를 허용하려면 ElasticSearch 버전 2.3.0

1

에서 일 settings\elasticsearch.yml는이 있어야합니다

network.host: 0.0.0.0 
http.port: 9200 

내 경우에는 내가 세 개의 인스턴스가 필요합니다. 각 인스턴스에 대해 사용 된 포트 범위를 선언해야합니다.

network.host: 0.0.0.0 
http.port: 9200-9202 
관련 문제