[ELK Stack] 1. CentOS에 Elastic Search 설치

So yeong Choe·2022년 1월 31일
0

ELK stack

목록 보기
1/2
post-thumbnail

본 문서는 CentOS7을 기준으로 작성되었다.

📌 1. JDK 설치

엘라스틱 서치는 JVM 위에서 구동되기 때문에 jdk 설치가 선행되어야 한다.

본인의 OS에 jdk가 설치되어 있는지 확인한 뒤 설치하자.

jdk가 설치되어 있다면 STEP 1은 생략해도 된다.

#jdk 설치 확인
javac -version

#설치 가능한 jdk 버전 확인
yum list java*jdk-devel

#jdk 설치
yum install java-11-openjdk-devel.x86_64

#설치 확인
javac -version

🪵 실행로그

#jdk 설치확인(미설치)
$ javac -version
-bash: javac: command not found
 
#설치 가능한 jdk 버전 확인
$ yum list java*jdk-devel
Loaded plugins: fastestmirror, langpacks, versionlock
Determining fastest mirrors
Available Packages
java-1.6.0-openjdk-devel.x86_64                                                                                1:1.6.0.41-1.13.13.1.el7_3                                                                               base
java-1.7.0-openjdk-devel.x86_64                                                                                1:1.7.0.261-2.6.22.2.el7_8                                                                               update
java-1.8.0-openjdk-devel.i686                                                                                  1:1.8.0.262.b10-0.el7_8                                                                                  update
java-1.8.0-openjdk-devel.x86_64                                                                                1:1.8.0.262.b10-0.el7_8                                                                                  update
java-11-openjdk-devel.i686                                                                                     1:11.0.8.10-0.el7_8                                                                                      update
java-11-openjdk-devel.x86_64                                                                                   1:11.0.8.10-0.el7_8                                                                                      update
java-latest-openjdk-devel.x86_64                                                                               1:14.0.2.12-1.rolling.el7
 
#jdk 설치
$ yum install java-11-openjdk-devel.x86_64
 
#설치 확인
$ javac -version
javac 11.0.8

📌 2. JAVA_HOME 설정

jdk만 설치한 채로 엘라스틱 서치를 구동하려고 하면 아래와 같은 에러를 만나게 된다.

could not find java in bundled jdk at /home/deploy/Downloads/elasticsearch-7.9.2/jdk/bin/java

자바 환경변수가 설정되어 있지 않아 jdk 경로를 찾지 못하고 있다.

JAVA_HOME 환경변수를 jdk가 저장된 경로로 지정해주자.

JAVA_HOME 변수가 제대로 설정되어 있다면 STEP 2는 생략해도 된다.

2-1) jdk 경로 확인

#JAVA_HOME 확인
echo $JAVA_HOME

#javac 경로 확인
which javac

#javac 경로를 이용하여 jdk 경로 확인
#본인 javac 경로를 입력하자. 예시를 그대로 복붙하지 않도록 주의!
readlink -f /usr/bin/javac

javac 경로는 서버마다 다를 수 있다. 본인의 javac 경로를 입력하도록 하자.

🪵 실행로그

#JAVA_HOME 확인
#아무것도 출력되지 않으면 환경변수가 설정되어 있지 않은 것
$ echo $JAVA_HOME
 
#javac 경로 확인
$ which javac
/usr/bin/javac
 
#javac 경로를 이용하여 jdk 경로 확인
#본인 javac 경로를 입력하자. 예시를 그대로 복붙하지 않도록 주의!
$ readlink -f /usr/bin/javac
/usr/lib/jvm/java-11-openjdk-11.0.8.10-0.el7_8.x86_64/bin/javac

readlink 명령어의 결과 중 /bin/javac 앞까지의 경로를 JAVA_HOME 변수에 할당하면 된다. 위의 예시에서는 아래가 jdk 경로가 된다.

/usr/lib/jvm/java-11-openjdk-11.0.8.10-0.el7_8.x86_64

2-2) JAVA_HOME 적용

변수를 등록한 설정 파일을 연다.

sudo vim /etc/profile

본인의 jdk경로를 JAVA_HOME 변수에 할당한다. 예시를 복붙하지 않도록 주의!

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.8.10-0.el7_8.x86_64 > /etc/profile

다시 shell 창으로 나와 설정파일을 즉시 적용해준다.

source /etc/profile

2-3) JAVA_HOME 재확인

JAVA_HOME이 정상적으로 적용된 것을 확인할 수 있다! 👏

$ echo $JAVA_HOME
/usr/lib/jvm/java-11-openjdk-11.0.8.10-0.el7_8.x86_64

📌 3.ElasticSearch 설치

드디어 엘라스틱서치를 설치할 수 있다. 😂

엘라스틱서치는 공식 홈페이지에 설치 방법이 자세히 나와있어서, 공식 홈페이지를 참고하는 편이 간단하다.

🔗 www.elastic.co/guide/en/elasticsearch/reference/7.9/rpm.html#rpm-repo


필자는 수동으로 RPM 설치를 수행했다.

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-x86_64.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-x86_64.rpm.sha512
shasum -a 512 -c elasticsearch-7.9.2-x86_64.rpm.sha512
sudo rpm --install elasticsearch-7.9.2-x86_64.rpm

💁‍♀️ Option) systemd를 사용하면 손쉽게 엘라스틱 서치를 구동하거나 중단시킬 수 있다.

#systemmd 설정
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service
 
#ElasticSearch 구동
sudo systemctl start elasticsearch.service
 
#ElasticSearch 중지
sudo systemctl stop elasticsearch.service

엘라스틱 서치를 구동한 뒤, 간단한 명령어를 통해 제대로 올라와있는지 확인해보자.

curl -XGET 'localhost:9200'

엘라스틱 서치의 정보를 성공적으로 반환한다.👍

{
  "name" : <호스트명>,
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : <>,
  "version" : {
    "number" : "7.9.2",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : <>,
    "build_date" : "2020-09-23T00:45:33.626720Z",
    "build_snapshot" : false,
    "lucene_version" : "8.6.2",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

어떤 프로젝트든 환경 세팅이 가장 어려운 법.
이제부터는 즐겁게 엘라스틱 서치를 사용할 일만 남았다.
아마도...

profile
IT 공부하는 블로그

0개의 댓글