[엘라스틱서치] 필수 옵션 설정하기 (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