CentOS7 에서 ElasticSearch 설치 및 설정하기

Dope
Webdev TechBlog
Published in
3 min readSep 1, 2021

서론

CentOS7 환경에서 ElasticSearch 를 설치하고 설정하는 방법에 대해서 배워보겠습니다.

ElasticSearch 설치

ElasticSearch 설치는 공식 홈페이지를 통해서 설치 가능 합니다. 설치 후 원하는 디렉터리에 tar.gz 압축을 풀어줍니다.

ElasticSearch 설정

ES_JAVA_HOME 설정

$ vi .bashrcES_JAVA_HOME="/elastic/elasticsearch-7.13.2/jdk"
export ES_JAVA_HOME

OPEN FILE 설정

  • OPEN FILE 개수 확인
    — $ ulimit -a
  • OPEN FILE 개수 설정
    — $ vi /etc/security/limits.conf
    — 전체 USER 에게 같은 설정을 사용하기 위해 * 사용
# 생략* hard nofile 64000 → 이 부분 추가
* soft nofile 64000 → 이 부분 추가
# End of file

MAX_MAP_COUNT 설정

  • root 권한 으로 실행
    - MAX_MAP_COUNT 확인
    — sysctl -p
    - MAX_MAP_COUNT 수정
    — sysctl -w vm.max_map_count=262144
    — vi 형식으로 수정하기
$ vi /etc/sysctl.conf
$ sysctl -p
vm.max_map_count = 262144

메모리 설정

Elasticsearch 는 기본적으로 시스템 메모리의 절반 을 사용하게 되므로 시스템 메모리 부족 현상이 발생할 수 있다.

기본값으로 1기가 또는 4기가를 추천한다.

  • config/jvm.options 수정
    — vi jvm.options
-Xms4g
-Xmx4g

외부접속허용 설정

외부접속허용 설정은 상황에 따라 해도되고 안해도 된다.

Elasticsearch는 기본적으로 설치된 서버에서만 통신이 가능하게 설정되어있다. WAS 랑 ES 가 분리되어있어서 외부에서 접속을해야 하는 경우에는 설정이 필요하다. 한 서버안에 WAS 랑 ES 가 같이 있는 경우에는 설정이 필요 없다.

  • root 권한
    - 방화벽 확인
    — netstat -antp | grep 9200
    - 방화벽 해제
    — firewall-cmd — permanent — zone=public — add-port=9200/tcp

Elasticsearch 의 config 디렉터리에서 elasticsearch.yml 파일을 수정한다.

  1. network host
    — 0.0.0.0 으로 설정해서 외부접속을 허용해준다.
  2. http.port
    — Default host : 9200
    — 원하는 포트번호로 변경해도 된다.
  3. cluster.name
    — 원하는 클러스터 이름을 설정하면 된다.
  4. node.name
    — Ex. node-1
  5. discovery.seed_hosts
    — 기존에는 [“host-1”] 이런식으로 되어있는데, ES 가 설치된 해당 서버의 IP 를 적으면 된다.
  6. cluster.initial_master_nodes
    — 기존에는 [“node-1”, node-2"] 이런식으로 되어있는데, node 를 하나만 설정했으면 위에서 설정한 노드의 이름만 적어주면 된다.

--

--

Dope
Webdev TechBlog

Developer who is trying to become a clean coder.