Elasticsearch 설치하기 (RPM)
개요
다음 운영 환경에서 Elasticsearch
를 설치한다.
- OS: CentOS 8(Virtualbox)
Java 설치
먼저 Java 11
을 설치한다. 최신 Elasticsearch
의 경우, 별도 Java
설치 없이도 운영할 수 있긴 하지만, 보다 안정적인 운영을 위해서 설치해둔다. 다음 명령어로 설치할 수 있다.
$ sudo yum install java-11-openjdk-devel.x86_64 -y
이후 터미널에 java --version
명령어 입력시 다음 문구가 출력된다면 정상적으로 설치된 것이다.
$ java --version
openjdk 11.0.12 2021-07-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.12+7-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.12+7-LTS, mixed mode, sharing)
Elasticsearch 설치
이제 RPM
기반으로 Elasticsearch
를 설치한다. 먼저 터미널에 다음을 입력하여 GPG-KEY
를 임포트한다.
$ sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
그 후, /etc/yum.repos.d
경로에 elasticsarch.repo
파일을 다음 명령어로 생성한다.
$ sudo tee /etc/yum.repos.d/elasticsarch.repo << EOF
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
EOF
그 다음 yum install
명령어로 Elasticsearch
를 설치한다.
$ sudo yum install --enablerepo=elasticsearch elasticsearch -y
이렇게 하면 Elasticsearch 7.15
가 설치 된다.
Elasticsearch 실행 및 TIP
이제 서비스 데몬으로써 실행시킬 수 있다. 다음 명령어를 입력한다.
$ sudo systemctl start elasticsearch
$ sudo systemctl enable elasticsearch
Synchronizing state of elasticsearch.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable elasticsearch
Created symlink /etc/systemd/system/multi-user.target.wants/elasticsearch.service → /usr/lib/systemd/system/elasticsearch.service.
그 후 서비스 데몬의 실행이 정상적으로 되었는지는 systemctl status
와 curl
로 확인할 수 있다.
$ sudo systemctl status elasticsearch
● elasticsearch.service - Elasticsearch
Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2021-09-29 12:33:54 UTC; 31s ago
Docs: https://www.elastic.co
Main PID: 37602 (java)
Tasks: 67 (limit: 2746)
Memory: 312.3M
CGroup: /system.slice/elasticsearch.service
├─37602 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encod>
└─37767 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller
Sep 29 12:33:18 es-master systemd[1]: Starting Elasticsearch...
Sep 29 12:33:54 es-master systemd[1]: Started Elasticsearch.
$ curl localhost:9200
{
"name" : "es-master",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "TOevKIVwShq7f8y192NuxQ",
"version" : {
"number" : "7.15.0",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "79d65f6e357953a5b3cbcc5e2c7c21073d89aa29",
"build_date" : "2021-09-16T03:05:29.143308416Z",
"build_snapshot" : false,
"lucene_version" : "8.9.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
설치된 Elasticsearch
에서 뭔가 커스텀을 하고 싶다면, /etc/elasticsearch/
안의 파일들을 확인하는 것이 좋다.
$ sudo ls -l /etc/elasticsearch/
total 40
-rw-rw----. 1 root elasticsearch 199 Sep 29 12:32 elasticsearch.keystore
-rw-rw----. 1 root elasticsearch 2755 Sep 16 03:12 elasticsearch.yml
-rw-rw----. 1 root elasticsearch 3176 Sep 16 03:12 jvm.options
drwxr-s---. 2 root elasticsearch 6 Sep 16 03:16 jvm.options.d
-rw-rw----. 1 root elasticsearch 19093 Sep 16 03:12 log4j2.properties
-rw-rw----. 1 root elasticsearch 473 Sep 16 03:12 role_mapping.yml
-rw-rw----. 1 root elasticsearch 197 Sep 16 03:12 roles.yml
-rw-rw----. 1 root elasticsearch 0 Sep 16 03:12 users
-rw-rw----. 1 root elasticsearch 0 Sep 16 03:12 users_roles
elasticsearch.yml
은 설정 파일이다. 여기서 어지간한 설정은 다 한다고 보면 된다. jvm.options
은 Elasticsearch
실행 시, JVM 옵션을 전달하여, 시스템에 맞게 최적화하여 운영할 수 있다.
마지막으로 로그는 다음과 같이 확인할 수 있다.
$ sudo journalctl -fu elasticsearch
-- Logs begin at Wed 2021-09-29 12:00:33 UTC. --
Sep 29 12:33:18 es-master systemd[1]: Starting Elasticsearch...
Sep 29 12:33:54 es-master systemd[1]: Started Elasticsearch.
journalctl
은 서비스 데몬이 출력하는 로그를 확인할 수 있는 명령어이다. 더 자세한 로그는 /var/log/elasticsearch/
밑에 있는 파일들을 확인하는 것이 좋다.
$ sudo ls -l /var/log/elasticsearch/
total 592
-rw-r--r--. 1 elasticsearch elasticsearch 20521 Sep 29 12:34 elasticsearch.log
-rw-r--r--. 1 elasticsearch elasticsearch 0 Sep 29 12:33 elasticsearch_audit.json
-rw-r--r--. 1 elasticsearch elasticsearch 774 Sep 29 12:34 elasticsearch_deprecation.json
-rw-r--r--. 1 elasticsearch elasticsearch 512 Sep 29 12:34 elasticsearch_deprecation.log
-rw-r--r--. 1 elasticsearch elasticsearch 0 Sep 29 12:33 elasticsearch_index_indexing_slowlog.json
-rw-r--r--. 1 elasticsearch elasticsearch 0 Sep 29 12:33 elasticsearch_index_indexing_slowlog.log
-rw-r--r--. 1 elasticsearch elasticsearch 0 Sep 29 12:33 elasticsearch_index_search_slowlog.json
-rw-r--r--. 1 elasticsearch elasticsearch 0 Sep 29 12:33 elasticsearch_index_search_slowlog.log
-rw-r--r--. 1 elasticsearch elasticsearch 41546 Sep 29 12:34 elasticsearch_server.json
-rw-r--r--. 1 elasticsearch elasticsearch 278604 Sep 29 12:39 gc.log
-rw-r--r--. 1 elasticsearch elasticsearch 2021 Sep 29 12:33 gc.log.00