[엘라스틱서치] 필수 옵션 설정하기 (elasticsearch.yml)

엘라스틱서치(Elastic Search)에서 다양한 설정을 담는 config 파일은 {elasticsearch}/config 폴더에 있는 elasticsearch.yml 파일에 있다.

 

elasticsearch.yml 파일 위치

 

이 파일을 오픈하면 노드 및 샤드, 클러스터, 로그 위치, 접근 IP 등 다양한 설정을 할 수 있는데 당연히 엘라스틱서치를 운영할 계획이라면 필수 설정 정도는 알고 있어야 될 것이다.

 

다음의 옵션은 변경되어서 다른 방식 혹은 명칭이 바뀔수도 있고 삭제되었을 수도 있다. 엘라스틱버전에 따라 같은 속성값을 계속 유지하는 것이 아니기 때문에 매 버전에 따라 설정값이 변경되었는지 확인을 하는 것도 중요할 것이다.

 

엘라스틱 서치 필수 설정

 

설정 항목

cluster.name

- 클러스터들은 같은 클러스터의 이름을 가진 경우 묶을 수 있는데 여기서 지정을 할 수 있다. 

cluster.name: my-application

위의 예시는 my-application 이란 이름으로 클러스터명이 설정되었다.

 

node.name

- 엘라스틱서치의 노드명을 설정한다. 노드명을 지정하지 않으면 임의로 지정하기 때문에 웬만해서는 짓는 것이 좋다.

node.name: node-1

여기서는 node-1이라는 이름으로 노드명이 설정되었다.

 

path.data

- 인덱스 경로를 지정한다. 설정하지 않는 경우 엘라스틱서치 폴더의 data 디렉토리에 인덱스를 생성하며, 멀티 경로일 경우 comma를 사용한다.

path.data: /path/to/data

위 예시에는 /path/to/data라는 폴더에 인덱스 경로로 설정하였다.

 

path.logs

- 엘라스틱서치의 노드 및 클러스터에서 생성되는 로그의 저장 경로를 지정한다.

path.logs: /path/to/logs

예시에서는 /path/to/logs라는 폴더에 로그를 저장한다.

 

 

bootstrap.memory_lock

- 엘라스틱서치가 선점한 메모리를 다른 Java 프로그램이 사용하지 못하도록 Lock을 하는 기능으로 True를 권장한다

bootstrap.memory_lock: true

 

network.host

- 지정된 IP만 엘라스틱 서치에 접근할 수 있도록 설정한다. 

# 단일 아이피 지정
network.host: 192.168.0.1

# 여러대 접근 지정
network.host: [192.168.0.1, 192.168.0.2, ... ]

# 모든 아이피 허용
network.host: 0.0.0.0

 

http.port

- 클라이언트와 통신할 Port 번호를 설정한다

http.port: 9200

 

transport.port

- 엘라스틱 노드들 끼리 서로 통신하기 위한 포트를 설정한다. 디폴트는 9300 이다.

transport.port: 9300

 

discovery.seed_hosts

- 활성화된 다른 서버를 찾는 옵션으로 같은 클러스터로 묶인 노드의 IP 혹은 도메인 주소명을 지정하면 된다. 7.x 부터 이 이름으로 변경된 것이며 예전(6.x 이전) 명칭은 discovery.zen.ping.unicast.hosts 이다.

discovery.seed_hosts: [192.168.0.1, 192.168.0.2 ... ]

 

cluster.initial_master_nodes

- 마스터로 선출될 수 있는 노드들을 지정한다. 

# node-1과 node-2를 마스터 노드 후보에 올린다.
cluster.initial_master_nodes: ["node-1", "node-2"]

 

참고로 환경변수를 값으로 입력할 수 있으며 다음과 같은 설정이 가능하다.

node.name: ${HOSTNAME}

 

댓글

Designed by JB FACTORY