All of My Records

[Elasticsearch] 개발 환경 Settings :: WSL, Ubuntu, Elasticsearch, Kibana, Logstash 설치

by 캐떠린

AWS를 통해 배포할 프로젝트에 엘라스틱서치를 활용한 검색 기능을 넣을 예정이다. (내가 이수중인 국비 수업 과정명에도 '엘라스틱서치를 활용한' 이라고 적혀있기도 하고!)

 

이를 위해 Elasticsearch에 대해서 배워보자!

 

엘라스틱서치가 무엇인지에 대해서는 다음 포스트에서도 자세히 설명할 예정이라 아래에서는 간단하게 무엇인지만 설명하고 개발 환경 설치로 넘어가고자 한다.

 

엘라스틱서치(Elasticsearch)란?

  • Elasticsearch is a distributed, RESTful search and analytics engine capable of addressing a growing number of use cases. (엘라스틱서치는 분산형 RESTful 검색 및 분석 엔진이다.)
  • 속도 등의 이유로 주로 리눅스 계열에서 구동한다. → CentOS, Ubuntu 등
  • 그러나 리눅스 계열 외에 Windows, Mac OS 에서도 구동은 가능하다.

 

수업에서는 Ubuntu를 설치하여 이용할 예정!

 

Java를 한다면 Linux 환경을 벗어나기 힘들다! 따라서 Linux 얘기를 안 할 수가 없다.
- 윈도우(맥): 개발 환경
- 리눅스: 운영/테스트 환경(개발한 것을 리눅스에서 테스트 진행)

 

컴퓨터에 Ubuntu를 설치하는 4가지 방법

  1. 듀얼 부팅
  2. VMWare, VirtualBox 가상머신
  3. Docker
  4. WSL, Windows Subsystem for Linux

 

자, 그럼 WSL을 설치해보자!

 

WSL 설치하기

1. 시작 → 'Windows 기능 켜기/끄기' 검색

 

2. Linux용 Windows 하위 시스템, 가상 머신 플랫폼 체크 후, 확인 버튼 클릭

 

3. PC 재부팅하기

 

4. Microsoft Store → "Ubuntu" 검색 → Ubuntu 22.04.3 LTS 설치하기

 

5. 실행 → 오류 발생(Ubuntu Server 이기 때문에 터미널 창이 열린다.)

 

6. Windows PowerShell 관리자로 실행

 

7. 아래 명령어 3개 하나씩 실행하기

$ dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
$ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
$ Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

 

8. wsl_update_x64.msi 설치하기(하단 링크 클릭시 다운로드 됨)

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

 

9. 설치 후, PC 재부팅

 

10. Terminal 실행하여 WSL version 2로 변경하기

$ wsl --set-default-version 2

위의 명령어 입력 후

$ wsl -l -v

명령어 입력하여 현재 버전을 확인한다.

$ wsl --set-default-version 2 입력했음에도 버전이 변경되지 않은 상태

 

나의 경우 명령어를 입력했음에도 버전이 변경되지 않아서 아래 명령어를 추가로 실행해줬다.

$ wsl --set-version Ubuntu-22.04 2

$ wsl --set-version Ubuntu-22.04 2 명령어로 버전 변경 성공!

위 사진과 같이 버전이 2로 변경되었다!

 

여기서 잠깐!

위의 명령어를 입력했는데 만약 아래 사진과 같이 'Linux용  Windows 하위 시스템에 배포가 설치되어 있지 않습니다.' 라고 문구가 표출될 경우, 위에서 설치한 Ubuntu 22.04.3 LTS를 한번 실행해주면 배포가 설치되어 정상적으로 확인 가능하다!

 

11. WSL 실행(2번에서 다운로드 받은 Ubuntu 22.04.3 LTS)

  - username: ubuntu(내맘대로 설정)

  - password: java1234(내맘대로 설정)

 

여기서 또 잠깐!

만약 root계정(최고 관리자)으로 Ubuntu 접속이 된 상태라면? (더보기 참고)

위 사진과 같이 'root'가 표시되고 New UNIX username 입력창이 뜨지 않는 다면, 최고 관리자(root)로 들어간 상태라 초기화 후 Ubuntu 계정을 만들어야 한다.

더보기

1. 앱 및 기능 → 고급 옵션 → 초기화 진행

2. Terminal에서 $ wsl --unregister Ubuntu-22.04 명령어를 입력한다.

3. PC 재부팅

4. Ubuntu 실행 시, username 입력 창이 보인다!!!!! 

 

정상적으로 계정 생성 후 로그인을 진행했다면, 로그인 후 화면은 아래와 같다.

 

계정명@컴퓨터이름:~$

'~'의 역할
- 사용자 홈 디렉토리
- /home/ubuntu의 별칭

 

12. 이번엔 Terminal을 실행 후 아래 명령어를 입력하여 업데이트를 진행한다.

$ wsl --update

 

13. 다시 Ubuntu를 실행하여 패키지 업데이트를 진행하자.

$ apt-get update
명령어에는 2가지가 있다.
$ apt-get → 조금 더 오래되고 디테일한 명령을 내릴 수 있는 명령어
$ apt → 조금 더 최신 버전이며 간소화된 명령어
명령어의 결과는 동일하다.
나는 일단 수업 및 포스팅에서는 $ apt-get을 사용할 예정이다.

 

ubuntu라는 일반 계정은 업데이트와 같은 관리자 기능을 진행할 수 없다. 따라서 권한이 없다고 나온다.

 

$ sudo apt-get update

sudo 명령어를 앞에 추가해주면 해결된다!

 

sudo(Super User Do)란?

'지금 명령에 한해서 최고 관리자 권한으로 실행하겠습니다!' 라는 의미

 

update를 마치면 위 사진과 같은 상태가 된다.

 

14. Ubuntu에 JRE + JDK 설치하기

  엘라스틱서치가 자바로 만든 프로그램이기 때문에 Ubuntu에도 JDK 설치가 필요하다.

$ sudo apt-get install default-jre

 

위 명령어를 입력후, y 입력 시 JRE 설치가 완료된다!

$ java -version 명령어로 확인할 수 있다.

 

$ sudo apt-get install default-jdk

 

위 명령어를 입력후, y 입력 시 JDK 설치가 완료된다!

$ javac -version 명령어로 확인할 수 있다.

 

15. Elasticsearch 설치

$ curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch |sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg
$ echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

 

위의 과정은 Ubuntu가 Elasticsearch라는 프로그램을 모르기 때문에 '이 곳에 가면 Elasticsearch가 있으니까 너가 설치할 수 있도록 가서 체크좀 해줘' 라는 역할을 한다.

 

앞의 두개 명령어 입력 후에 업데이트 한번 해주고

$ sudo apt-get update

 

엘라스틱서치 다운로드 명령어를 입력해주자.

$ sudo apt-get install elasticsearch

 

16. Elasticsearch 설치 상태 확인 및 Ubuntu 시작 프로그램 등록

# Elasticsearch 상태 확인($ q : 빠져나오기)
$ systemctl status elasticsearch
# Elasticsearch 실행
$ sudo systemctl start elasticsearch
# Ubuntu 실행 시 자동으로 실행되도록 시작 프로그램으로 등록
$ sudo systemctl enable elasticsearch

$ systemctl status elasticsearch 명령어 입력 후 화면
$ sudo systemctl enable elasticsearch 명령어 입력 후 화면

 

여기서 또또 잠깐! 엘라스틱서치 설치 오류가 발생한다면? (더보기 참고)

System has not been booted with systemd as init system (PID 1). Cant' operate.

Failed to connect to bus: Host is down

더보기

WSL 시스템 프로세스가 systemd가 아닌 init으로 잡혀있는 경우 오류가 발생하며 엘라스틱서치 설치가 진행되지 않는다.

pstree 입력하여 현재 시스템 프로세스 확인 후
최상위 디렉토리(cd /)에서 sudo vim wsl.conf 입력 후 엔터
systemd=true 확인(나 같은 경우는 기존에 잘 입력되어 있어서 저장만 하고 나갔다.) 만약 따로 입력된 내용이 없다면 위와 같이 입력해주자.
esc키 누르고 :wq 입력하여 저장하고 나가기
정상 설치가 됨을 확인할 수 있다!

 

17. 하단 링크 접속을 통해 엘라스틱서치가 실행되었는지 확인이 가능하다. 엘라스틱 서치가 실행되지 않을 땐, 아래 사이트 접속이 불가하다.

http://localhost:9200/

 

18. Kibana 설치하기

# 패키지 업데이트
$ sudo apt-get update
# Kibana 설치
$ sudo apt-get install kibana
# Kibana 상태 확인
$ systemctl status kibana
# Kibana 실행
$ sudo systemctl start kibana
# Ubuntu 시작 프로그램으로 등록
$ sudo systemctl enable kibana

 

19. 하단 링크 접속을 통해 키바나가 실행되었는지 확인이 가능하다. 키바나가 실행되지 않을 땐, 사이트 접속이 불가하다.

http://localhost:5601

 

20. Logstash 설치하기

# 패키지 업데이트
$ sudo apt-get update
# Logstash 설치
$ sudo apt-get install logstash
# Logstash 상태 확인
$ systemctl status logstash

 

Logstash는 시작 프로그램에 등록하지는 않는다. 또한 상태 확인 시 dead 상태면 OK~!

Why? 항상 실행하는 프로그램이 아니라, 사용할 때만 실행하고 사용 종료 후에는 실행이 종료되는 프로그램이기 때문.

 

일단 엘라스틱서치를 사용하기 위한 기본적인 설정은 마친 상태이다. 추가 설정은 다음 포스트 중간 중간 과정에 추가되는 경우가 있으니 참고해주세요!

 

*글 작성에 참고한 내용: 학원 쌤의 열정적인 수업

* 글 작성에 참고한 포스트: https://parkkingcar.tistory.com/96

블로그의 정보

All of My Records

캐떠린

활동하기