엘라스틱서치:: Configuring Elasticsearch
🙉

엘라스틱서치:: Configuring Elasticsearch

Created
Jun 25, 2024 01:02 AM
Last edited time
Last updated July 2, 2024
Tags
ElasticSearch
Language
URL

Intro::

엘라스틱서치 공식문서 Configuring Elasticsearch에 대한 간단 정리본입니다.
 

Configuring Elasticsearch

엘라스틱서치는 실행 중인 클러스터에서 Cluster update settings API를 통해 대부분의 설정을 변경할 수 있습니다. 설정파일들은 노드에 대한 정보, 클러스터에 합류하기 위한 설정 등을 포함하고 있어야 합니다.

Config files location

엘라스틱 서치는 다음과 같은 세가지 설정파일들을 가지고 있습니다.
  • elasticsearch.yml: 엘라스틱서치 설정
  • jvm.options: 엘라스틱서치 JVM 설정
  • log4j2.properties: 엘라스틱서치 로깅 설정
이 파일을은 config 디렉토리에 존재하며, 설치 방법에 따라(아카이브 배포, 패키지 배포) 기본위치가 달라집니다.
 
아카이브 배포에서 $ES_HOME/config 위치가 기본 config 디렉토리 경로입니다. ES_PATH_CONF 환경변수를 변경하여 config 디렉토리 위치를 변경할 수 있습니다.
ES_PATH_CONF=/path/to/my/config ./bin/elasticsearch
 
패키지 배포들에서 /etc/elasticsearch 위치가 기본 config 디렉토리 경로입니다. ES_PATH_CONF 환경변수를 변경하여 config 디렉토리 위치를 변경할 수 있습니다. 하지만 쉘에서 설정 하는것 만으로는 충분하지 않습니다. /etc/default/elasticsearch/etc/sysconfig/elasticsearch 에서 ES_PATH_CONF=/etc/elasticsearch로 수정해야 합니다.

Config file format

설정파일은 YAML 형식입니다. 다음은 데이터와 로그 디렉토리 경로를 수정하는 예제입니다.
path: data: /var/lib/elasticsearch logs: /var/log/elasticsearch
설정은 다음과 같이 압축될 수 있습니다.
path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch
YAML에서는 스칼라가 아닌 값의 형식을 시퀀스로 지정할 수 있습니다.
discovery.seed_hosts: - 192.168.1.10:9300 - 192.168.1.11 - seeds.mydomain.com
흔하지는 않지만 스칼라가 아닌 값의 형식을 배열로 지정할 수도 있습니다.
discovery.seed_hosts: ["192.168.1.10:9300", "192.168.1.11", "seeds.mydomain.com"]

Environment variable substitution

${…} 와 같은 형식은 환경변수로 대체될 것입니다. 예시는 다음과 같습니다.
node.name: ${HOSTNAME} network.host: ${ES_NETWORK_HOST}
환경변수 값들은 간단한 문자열이어야 합니다. , 로 구분되어진 문자열은 엘라스틱서치에서 리스트로 제공되어질 것입니다. 예시로 엘라스틱 서치는 다음과 같은 문장을 ${HOSTNAME} 환경변수로 받아 리스트로 분리할 것입니다.
export HOSTNAME="host1,host2"

Cluster and node setting types

클러스터 및 노드 설정은 구성 방식에 따라 분류할 수 있습니다

Dynamic

cluster update settings API를 통해 운영중인 클러스터의 동적 설정을 구성하거나 변경할 수 있습니다. 시작되지 않았거나 종료된 노드에서 elasticsearch.yml을 사용하여 로컬로 동적 설정을 구성할 수도 있습니다.
cluster update settings API를 사용하여 수행한 업데이트는 클러스터가 다시 시작될 때마다 적용되는 영구적이거나 클러스터가 다시 시작되면 초기화되는 일시적일 수 있습니다. API를 사용하여 일시적 또는 영구 설정에 null 값을 할당하여 재설정할 수도 있습니다.
여러 방법을 사용하여 동일한 설정을 구성하는 경우, Elasticsearch는 다음과 같은 우선순위에 따라 설정을 적용합니다:
  1. Transient setting
  1. Persistent setting
  1. elasticsearch.yml setting
  1. Default setting value
예시로 transient 설정은 persistent 설정이나 elasticsearch.yml 설정을 덮어씌울 수 있습니다. 하지만 elasticsearch.yml 설정에서의 변경은 transient 설정이나 persistent 설정을 덮어씌울 수 없습니다.

Static

정적 설정은 시작되지 않았거나 종료된 노드에서만 elasticsearch.yml을 사용하여 구성할 수 있습니다.
정적 설정은 클러스터의 모든 관련 노드에서 설정해야 합니다.
 
 

References::

Loading Comments...