미식가의 개발 일기

[Elasticsearch] 엘라스틱서치, 키바나 설치하기: Ubuntu(WSL), Docker 환경 본문

Elasticsearch

[Elasticsearch] 엘라스틱서치, 키바나 설치하기: Ubuntu(WSL), Docker 환경

대체불가 핫걸 2025. 7. 6. 16:15
 Elasticsearch는 다양한 방법과 경로를 통해 설치할 수 있는데요.
저는 Ubuntu(WSL) 기반으로 Docker를 이용해 설치했습니다. 

 

 

0️⃣ Ubuntu(WSL) + VSCode 환경 설정

※ 환경 설정이 필요한 분들은 아래 포스팅을 참고해주세요. 

 

Ubuntu(WSL) + VSCode 환경 설정

Windows 10/11 환경에서 Ubuntu WSL을 설치하고, VSCode와 연동하여 개발 환경을 최적화하는 과정을 단계별로 자세히 소개하겠습니다. Powershell 관리자 권한 실행 후 wsl 설치wsl --install Ubuntu 설치wsl --install

irreplaceablehotgirl.tistory.com

 

1️⃣ Docker 설정 

 

※ Docker 설치가 안 되어 있으시면 아래 링크에서 Docker Desktop을 설치해주세요.

 

Docker Desktop: The #1 Containerization Tool for Developers | Docker

Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.

www.docker.com

 

  • Docker Desktop > Settings > Resources > WSL Integration에서 Ubuntu 체크 후 Apply & restart

 

2️⃣ Elasticsearch 설치

 

  • 터미널에서 명령어를 차례대로 입력한다.
사용자 정의 네트워크 생성 
sudo docker network create --driver bridge myes # 네트워크 이름

 

Elasticsearch 실행 
sudo docker run -d --restart unless-stopped \
  --name es \
  -p 9200:9200 -p 9300:9300 \
  --network myes \
  -e "discovery.type=single-node" \
  -e "ES_JAVA_OPTS=-Xms2g -Xmx2g" \
  docker.elastic.co/elasticsearch/elasticsearch:8.17.2
sudo docker run -d --restart unless-stopped \  # 백그라운드 실행, 자동 재시작 
  --name es \  # 도커 컨테이너 이름 
  -p 9200:9200 -p 9300:9300 \  # 호스트 9200, 9300 포트를 컨테이너 9200, 9300 포트에 각각 매핑 (REST API, 클러스터 통신용)
  --network myes \  # 연결할 네트워크 
  -e "discovery.type=single-node" \  # 단일 노드 클러스터 모드
  -e "ES_JAVA_OPTS=-Xms2g -Xmx2g" \  # JVM 힙 메모리 최소/최대 크기를 2GB로 설정
  docker.elastic.co/elasticsearch/elasticsearch:8.17.2  # Elasticsearch 공식 8.17.2 버전 도커 이미지 지정

 

컨테이너 확인 
sudo docker ps

→ 해당 명령어를 수행했을 때 생성한 컨테이너 이름이 보인다면 성공

 

3️⃣ ES 암호 재설정 및 접속 

 

  • REST API 요청 시 필요한 암호 재설정이 필요하다.
ES 컨테이너 접속
sudo docker exec -it es /bin/bash
비밀번호 재설정 명령 
bin/elasticsearch-setup-passwords interactive

→ 해당 화면이 나오면 순차적으로 6자리 비밀번호를 입력해준다.

 

ES 접속
  • 로컬로 접속을 했고, 사용자 이름: elastic(기본 관리자), 비밀번호를 입력하면 접속되는 것을 확인할 수 있다.
  • Elasticsearch 8.x 버전부터는 보안이 기본적으로 활성화되어 있기 때문에 https로 접속해야 한다. 
https://[IP주소]:9200

 

💡 postman으로 접속

  • Auth Type > Basic Auth로 변경 후 Username, Password를 입력하고 Send를 보내면 잘 접속이 되는 것을 확인할 수 있다.

 

4️⃣ kibana 설치

 

※ kibana(키바나): Elasticsearch에서 수집·저장한 데이터를 시각적으로 탐색하고 분석할 수 있는 웹 기반 도구

sudo docker run -d --restart unless-stopped --name kb \
  --network myes \
  -p 5601:5601 \
  docker.elastic.co/kibana/kibana:8.17.2
sudo docker run -d --restart unless-stopped --name kb \ # 컨테이너 이름 
  --network myes \ # 연결할 네트워크 이름  
  -p 5601:5601 \ # 호스트 5601포트를 컨테이너 5601포트와 매핑 (Kibana UI 포트)
  docker.elastic.co/kibana/kibana:8.17.2

 

5️⃣ kibana 컨테이너 접속

sudo docker exec -it kb /bin/bash

 

kibana 접속 
  • 로컬로 접속을 했고, Elasticsearch 컨테이너 토큰값이 필요하다. 
http://[IP주소]:5601

 

Elasticsearch 컨테이너 토큰값 가져와서 입력 
sudo docker exec -it es /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
  • kibana verification 토큰값이 필요하다. 

 

 

kibana verification 토큰값 가져와서 입력 
sudo docker exec -it kb /usr/share/kibana/bin/kibana-verification-code
  • 토큰값까지 입력하면 해당 화면이 뜨고, es때와 마찬가지로 Username:elastic, Password를 입력하면 접속할 수 있다. 

 

📖 컨테이너 명령어

  • 실행중인 컨테이너 확인
sudo docker ps
  • 재시작
sudo docker restart container-name

 

  • 정지
sudo docker stop container-name

 

  • 제거
sudo docker rm container-name

 

 

 

 

반응형