엘라스틱서치 7.5.1 기준입니다.
elasticsearch.yml과 jvm.options 파일 내부의 설정 값에 대해 알아보겠습니다.
elasticsearch.yml:
ElasticSearch의 실행 환경에 대한 설정 은 elasticsearch.yml 에서 관리합니다.
cluster.name: "<클러스터명>"
노드들은 클러스터명이 같으면 같은 클러스터로 묶입니다.
클러스터명이 다르면 동일 서버, 바인딩이 가능한 네트워크상에 있더라도 서로 다른 클러스터로 바인딩 됩니다.
디폴트 값: elasticsearch
node.name: "<노드명>"
실행된 각 elasticsearch 노드들을 구분할 이름입니다. 꼭 서버의 호스트명일 필요는 없습니다.
설정하지 않으면 7버전 이상부터는 호스트명, 6.x 이하 버전에서는 UUID의 첫 7글자가 노드 명으로 설정됩니다.
node.attr. : "value"
노드별로 속성을 부여하기 위한 일종의 네임스페이스입니다.
hot/warm 아키텍쳐를 구성 혹은 물리 장비 구성에 따라 샤드 배치를 임의적으로 조절하는 등의 설정을 이 설정 값을 통해 가능하게 됩니다.
path.data : ["<경로>"]
색인된 데이터가 저장되는 경로입니다.
여러 개의 경로값을 배열 형태로 입력이 가능하기 때문에 한 서버에서 여러 디스크에 저장할 수 있습니다.
디폴트 값: 엘라스틱서치 설치 경로/data
path.logs: "<경로>"
엘라스틱 서치 실행 로그 파일이 저장되는 경로입니다.
실행중인 시스템 로그는 <클러스터명>.log 형식의 파일로 저장되며, 날짜가 변경되면 날짜가 추가됩니다.
디폴트 값: 엘라스틱서치 설치 경로/logs
bootstrap.memory_lock: true
엘라스틱서치가 사용중인 힙 메모리 영역을 타 java application이 사용하지 못하도록 점유하는 설정입니다.
true를 권장합니다.
network.host : <ip주소>
엘라스틱 서치가 실행되는 서버의 ip 주소입니다.
디폴트 값 : 127.0.0.1
개발 모드: 주석 처리 or 루프백
운영 모드: IP 주소 / 부트스트랩 체크가 활성화됩니다.
해당 값은 서버 내부와 외부 주소를 모두 지정할 수 있습니다.
만약 내부/외부망의 주소를 다르게 설정할 시 아래 값으로 구분 가능합니다.
network.bind_host : 내부망
network.publish_host: 외부망
해당 값 설정에 사용되는 또 다른 변수 값입니다.
_local_ : 127.0.0.1(루프백 주속) 과 같습니다. 즉, Default값과 같습니다.
_site_ : 로컬 네트워크 주소로 설정, 실 클러스터 구성 시, 자주 사용됩니다. 서버의 네트워크 주소가 변경되더라도,
실제 설정 파일은 변경되지 않기에 관리가 편리합니다.
_global_: 외부 네트워크에서 바라보는 서버의 주소입니다.
http.port : <포트 번호>
엘라스틱서치가 클라이언트와 통신하기 위한 Http 포트를 설정합니다.
포트가 이미 사용중인 경우 9200~9299 사이의 값을 차례대로 사용합니다.
디폴트 값: 9200
transport.port: <포트 번호>
엘라스틱 서치 노드들끼리 서로 통신하기 위한 tcp 포트를 설정합니다.
포트가 이미 사용중인 경우 9300~9399 사이의 값을 차례대로 사용합니다.
디폴트 값: 9300
discovery.seed.hosts: ["<호스트-1>", "<호스트-2>", ...]
클러스터 구성을 위해 바인딩 할 원격 노드의 IP 또는 도메인 주소를 배열 형태로 입력합니다.
주소만 적는 경우 디폴트로 9300~9305 사이의 값을 검색합니다.
tcp 포트가 이 범위 밖에 설정 된 경우 포트번호 까지 같이 적어줘야합니다.
디스커버리: 원격에 있는 노드들을 찾아 바인딩 하는 과정
cluster.initial_master_nodes : ["<노드-1>", "<노드-2>"]
클러스터가 최초 실행될 때 명시된 노드들을 대상으로 마스터 대상으로 마스터 노드를 선출합니다.
cluster.initial_master_nodes 옵션은 7.0이상 부터 추가된 기능입니다.
6.x 이전 버전에서는 최소 마스터 후보노드를 지정하기 위해 다음 옵션 사용하였습니다.
discovery.zen.minimum_master_nodes
7.0 버전 부터는 최소 마스터 후보 노드의 크기가 능동적으로 변경됩니다.
노드의 역할과 설정
엘라스틱 서치의 노드들은 각 역할이 구분되어있습니다.
각 노드들이 서로 다른 역할을 하도록 클러스터 구성이 가능합니다.
아래 설정들을 통해 각 노드의 역할이 부여되며, 아래 값들의 디폴트 값은 true입니다.
특정 값들을 false 설정하여 각 노드들의 역할을 구분지을 수 있습니다.
node.master : true
마스터 후보(master eligible) 노드 여부를 설정합니다.
false 일 시, 마스터 후보에서 제외됩니다.
모든 클러스터는 하나의 마스터 노드를 가지고, 마스터 노드 다운 시, 마스터 후보에서
한 노드를 마스터 노드로 부여합니다.
node.data : true
해당 노드에 엘라스틱 서치의 데이터를 저장할 지 여부입니다.
node.ingest: true
데이터 색인시 전처리 작업인 ingest pipeline 작업의 수행이 가능한지 여부입니다.
node.ml : true
해당 노드가 머신러닝 작업을 수행 할 수 있는지 여부입니다.
감사합니다.
'BigData > ElasticSearch' 카테고리의 다른 글
ElasticSearch) 엘라스틱서치 기본 사용법 (0) | 2024.08.16 |
---|---|
ElasticSearch) 엘라스틱서치 jvm.options (0) | 2024.08.16 |
ElasticSearch) max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 에러 해결 (0) | 2024.08.16 |
ElasticSearch) CentOS7 엘라스틱 서치 7.5.1 설치 (0) | 2024.08.16 |