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