Ubuntu 16.04.6에서 Elasticsearch 5.6.16 설치하기

사전 요구사항

Elasticsearch를 설치하기 전에 Java가 사전에 설치되어 있어야 합니다. Java 설치 및 설정에 관한 자세한 내용은 관련 문서를 참고하세요.

1. Elasticsearch 5.6.16 다운로드

https://www.elastic.co/cn/downloads/past-releases/elasticsearch-5-6-16

elasticsearch-5.6.16.tar.gz 파일을 다운로드합니다.

2. 파일 전송 및 디렉토리 생성

다운로드한 파일을 Ubuntu 서버의 /apps/es/ 디렉토리로 전송합니다. 해당 디렉토리가 없다면 먼저 생성합니다.

mkdir -p /apps/es

3. 압축 해제

tar zxvf elasticsearch-5.6.16.tar.gz

4. 전용 사용자 및 그룹 생성

Elasticsearch는 root 권한으로 실행할 수 없으므로, 전용 사용자와 그룹을 생성해야 합니다. 다음과 같은 명령어로 설정합니다.

groupadd esgroup
useradd -m esuser -g esgroup
chown -R esuser:esgroup /apps/es/elasticsearch-5.6.16

5. 데이터 및 로그 디렉토리 생성

Elasticsearch가 사용할 데이터와 로그 디렉토리를 생성하고 권한을 설정합니다.

# 데이터 디렉토리 생성
mkdir /data

# 권한 변경
chown -R esuser:esgroup /data/

# esuser 사용자로 전환
su - esuser

# 데이터와 로그 디렉토리 생성
cd /data
mkdir -p es/data
mkdir -p es/logs

# root 사용자로 복귀
su - root

6. Elasticsearch 설정

설정 파일을 편집합니다.

vi /apps/es/elasticsearch-5.6.16/config/elasticsearch.yml

설정 파일에 다음 내용을 추가합니다. 주의: 콜론(:) 뒤에 공백이 필요합니다.

# 클러스터 이름
cluster.name: my-application

# 노드 이름
node.name: node-1

# 데이터 저장 디렉토리 (여러 경로는 쉼표로 구분)
path.data: /data/es/data

# 로그 디렉토리
path.logs: /data/es/logs

# 외부 접근을 위한 네트워크 바인딩 주소
network.host: 192.168.215.10

# 리스닝 포트
http.port: 9200

설정을 저장하고 편집기를 종료합니다.

7. Elasticsearch 실행

생성한 전용 사용자로 전환하여 Elasticsearch를 실행합니다.

cd /apps/es/elasticsearch-5.6.16/bin/
su - esuser -c "./elasticsearch"

백그라운드에서 실행하려면 다음 명령어를 사용합니다.

su - esuser -c "./elasticsearch -d"

8. 서비스 확인

브라우저 또는 curl 명령어로 Elasticsearch 서비스에 접근합니다.

curl http://192.168.215.10:9200/

문제 해결

오류 1: 파일 디스크립터 부족

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

프로세스에서 사용할 수 있는 파일 디스크립터 수가 부족합니다. root 사용자로 /etc/security/limits.conf 파일을 편집합니다.

vi /etc/security/limits.conf

파일 끝에 다음 내용을 추가합니다.

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

오류 2: 가상 메모리 영역 부족

[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

시스템의 vm.max_map_count 파라미터 값이 너무 작습니다. root 사용자로 다음 명령어를 실행합니다.

sysctl -w vm.max_map_count=655360
sysctl -a | grep "vm.max_map_count"

설정이 적용되면 esuser로 다시 전환하여 Elasticsearch를 정상적으로 실행할 수 있습니다.

태그: elasticsearch ubuntu Installation linux elastic stack

8월 5일 20:23에 게시됨