v2.0부터 Elasticsearch는 기본적으로 localhost에서만 수신하고 있지만 localhost 외부에서 요청하고 싶습니다.
예를 들어 다음과 같은 요청이 허용됩니다.
http://localhost:9200/
그러나 이것은 아닙니다 :
http://server_name:9200/
(서버 외부에서, 예 : 동일한 LAN에있는 로컬 컴퓨터).
당신의 도움을 주셔서 감사합니다.
v2.0부터 Elasticsearch는 기본적으로 localhost에서만 수신하고 있지만 localhost 외부에서 요청하고 싶습니다.
예를 들어 다음과 같은 요청이 허용됩니다.
http://localhost:9200/
그러나 이것은 아닙니다 :
http://server_name:9200/
(서버 외부에서, 예 : 동일한 LAN에있는 로컬 컴퓨터).
당신의 도움을 주셔서 감사합니다.
답변:
에 config/elasticsearch.yml
넣어
network.host: 0.0.0.0
/etc/elasticsearch/elasticsearch.yml
및 내용 :network.host: ["0.0.0.0"]
T_T
C:\ProgramData\Elastic\Elasticsearch\config
위치 를 확인하십시오 . 당신이 Elasticsearch에 프로그래밍 방식으로 연결하려는 경우 당신은 설정해야 할 수도 있습니다 transport.host: 0.0.0.0
에 elasticsearch.yml
파일.
기본적으로 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
파일에 다음 줄을 추가 한 후 마침내 작동하게되었습니다
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을 확인 하세요.
elasticsearch.yml
을 바꿀 수 없습니다 . elasticsearch.json
JSON
@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 으로 바꿉니다 .
Goto /etc/elasticsearch/elasticsearch.yml
. network.host 에서 값 을 찾아 0.0.0.0으로 변경 합니다.
Kibana를 사용하는 경우이 단계입니다. Goto /etc/kibana/kibana.yml
. server.host 에서 값 을 찾아 0.0.0.0으로 변경 합니다.
이제 IP 주소 및 호스트를 사용하여 원격으로 액세스합니다.
대한 ElasticSearch 7.8 및 최대
단일 노드에 있는지 확인하십시오. 다음 줄 추가
cluster.initial_master_nodes: node-1
다른 컴퓨터 또는 애플리케이션에서 Elasticsearch 서버에 액세스하려면 노드의 다음과 같이 변경하십시오. C:\ProgramData\Elastic\Elasticsearch\config\elasticsearch.yml file:
다음 줄 추가
network.host: ["0.0.0.0", 127.0.0.1", "[::1]"]
network.bind_host: 0.0.0.0
network.publish_host: 0.0.0.0
http.host: 0.0.0.0
CORS 를 활성화 해야 할 때가 있습니다.
http.cors.enabled : true
http.cors.allow-origin : "*"
http.cors.allow-methods : OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type, Content-Length
다음은 내 전체 yml 파일입니다.
bootstrap.memory_lock: false
cluster.name: elasticsearch
http.port: 9200
node.data: true
node.ingest: true
node.master: true
node.max_local_storage_nodes: 1
cluster.initial_master_nodes: node-1
node.name: ITDEV
path.data: C:\ProgramData\Elastic\Elasticsearch\data
path.logs: C:\ProgramData\Elastic\Elasticsearch\logs
transport.tcp.port: 9300
xpack.license.self_generated.type: basic
xpack.security.enabled: false
network.host: ["0.0.0.0", 127.0.0.1", "[::1]"]
network.bind_host: 0.0.0.0
network.publish_host: 0.0.0.0
http.host: 0.0.0.0
http.cors.enabled : true
http.cors.allow-origin : "*"
http.cors.allow-methods : OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type, Content-Length