엘라스틱서치(Elastic Search)에서 다양한 설정을 담는 config 파일은 {elasticsearch}/config 폴더에 있는 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}
'빅데이터 및 DB > 검색엔진, 엘라스틱 스택' 카테고리의 다른 글
엘라스틱서치 수집기, 비츠(Beats) 이해하기 (0) | 2022.10.13 |
---|---|
[Elasticsearch] Python으로 삼성전자 주식 데이터 저장 (0) | 2022.01.25 |
[엘라스틱서치] 검색하기 1편 (0) | 2020.11.03 |
[엘라스틱서치] 스키마(Schema) 등록하기 (1) | 2020.10.16 |
엘라스틱서치 노드(Node)의 종류 (0) | 2020.09.16 |