리눅스에 ElasticSearch를 설치하는 법을 알아보자.

우선 ElasticSearch의 경우, Archieve로부터 압축 파일을 내려받거나, deb 패키지를 이용한 설치 방법이 있다.

오늘은 Archieve로부터 압축 파일을 내려 받는 방법을 알아보려한다.

$ cd /path/to/elasticsearch/be/installed
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.0-linux-x86_64.tar.gz
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.0-linux-x86_64.tar.gz.sha512 shasum -a 512 -c elasticsearch-7.15.0-linux-x86_64.tar.gz.sha512

우선 위 명령을 통해 압축파일을 내려받고, 유효성을 검사해보자. 만약 제대로 된 파일을 내려받았다면, tar를 이용해 압축을 풀어준다.

$ tar -xzf elasticsearch-7.15.0-linux-x86_64.tar.gz
$ cd elasticsearch-7.15.0/ # 그리고 폴더로 이동하면 끝

ElasticSearch 설정

ElasticSearch의 설정 파일은 폴더 내 [ /config/elasticsearch.yml ]파일이 담당하고 있다. 기본적인 설정은 아래와 같다.

network.host: 127.0.0.1        # 접속 허용 아이피. 전체 허용을 하려면 0.0.0.0 해주면 된다.
http.port: 9200                  # elasticsearch 포트.

node.name: node-1                                  # 내 노드 설정. 만약 다른 시드가 없다면, 해당 노드 이름을 마스터 노드로 설정해야 한다.
discovery.seed_hosts: ["127.0.0.1", "[::1]"]                     # 시드 설정. 시드로 설정할 주소를 적는다.
cluster.initial_master_nodes: ["node-1"]          # 마스터 노드 설정. 마스터 노드를 적는다.

xpack.security.enabled: true  # elasticsearch를 사용할 때 사용자 인증이 필요한지 설정한다.
xpack.security.transport.ssl.enabled: false  # ssl 사용 설정

ElasticSearch 유저 추가

ElasticSearch의 사용자 추가는 보안을 위해서 꼭 필요하고, 폴더 내 [ /bind/elasticsearch-users ]를 통해 관리할 수 있다.

$ elasticsearch-users useradd USER_ID -p USER_PW -r 권한
# 권한: user, admin, superuser

ElasticSearch 실행

ElasticSearch를 실행했을 때, 아이피를 127.0.0.1로 설정하면 아무 상관 없지만 외부 허용으로 실행에 실패할 수 있다.

...
bootstrap check failure [1] of [3]: max number of threads [2047] for user [실행계정] is too low, increase to at least [4096]
bootstrap check failure [2] of [3]: max virtual memory areas vm.max_map_count
[65530] is too low, increase to at least [262144]
bootstrap check failure [3] of [3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
...

따라서 추가적인 설정을 해줘야 한다.

[1]의 경우, 명령을 통해 우선 설정된 max user processes를 확인했을 때, 위 에러에 충족하지 않는다면 수정해줘야 한다.

$ ulimit -Sa
max user processes (-u) 2047
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
$ vi /etc/security/imits.conf
# limits.conf
* soft nproc 65536
* hard nproc 65536
* soft nofile 204800
* hard nofile 204800
실행계정 soft nproc 65536
실행계정 hard nproc 65536

[2]의 경우, 다음 명령어로 해결할 수 있다.

$ sysctl -w vm.max_map_count=262144

[3]의 경우, elasticsearch.yml에서 seed를 설정해주면 해결된다. 위 설정을 확인하자.

이제 elasticsearch를 재실행 했을 때 안된다면 혹시 모르니 시스템 재시작 후 실행해보자.

elasticsearch가 정상적으로 실행됐다면, 해당 주소로 접속이 잘 되는지 확인하면 끝

대몬으로 실행하는 방법

$ cd /path/to/elasticsearch/bin
$ elasticsearch -d -p PID

+ Recent posts