데이터베이스/ElasticSearch

Start Elasticsearch with docker

Ash_jisu 2024. 3. 3. 16:11

Elasticsearch

정의

ElasticSearch는 아파치 루씬 기반 검색인진으로 문서 검색, 지도 위치 검색, 머신 러닝 기반 검색,
로그분석등 다양한 용도로 활용되고 있다. 이런 검색 관련 데이터 처리시 사용이유는 여러 노드에 분산하여 구성함으로써 데이터의 가용성을 높이고 성능을 향상 시킬수 있다

 

역인덱싱

기본적으로 ElasticSearch는 데이터 저장시 이를 색인화한다. 이후에 역 인덱싱을 통해 검색을 빠르고 효율적으로

수행한다. 쉽게 말하면 책 뒤에 순서대로 적혀있는 단어와 해당 단어의 위치 적혀있는 것을 예시로 들면 쉬울 것이다.

 

Kibana

키바나는 ElasticSearch와 함께 사용되는 데이터 시각화 및 관리 도구이다. 키바나를 사용하면 ElasticSearch에서 수집된 데이터를 시각적으로 분석하고 이해할 수 있습니다. 대시보드, 차트, 그래프 등을 통해 데이터를 직관적으로 표현할 수 있습니다.


Docker를 통해 Elasticsearch 시작을 위한 세팅

싱글 노드실행 

docker run --name es01 --net elastic -p 9200:9200 -it -m 1GB docker.elastic.co/elasticsearch/elasticsearch:8.12.2

 

다중 클러스터 및 키바나 추가해서 실행

.env파일 설정과 compose.yml파일 필요

파일은 원하는 폴더에 생성하면 된다(추후에 실행할때 이 폴더에서 docker compose up -d해줘야함)

참고로 아래 파일 그대로 하게 되면 https로 되니 보안 관련된 지식이 없고 간단한 로컬 테스트시에 사용하는 경우는

xpack.security.http.ssl.enable = false로 설정해주면 된다

 

.env

아래 링크 코드 참고

https://github.com/elastic/elasticsearch/blob/8.12/docs/reference/setup/install/docker/.env

compose.yml

아래 링크 코드 참고

https://github.com/elastic/elasticsearch/blob/8.12/docs/reference/setup/install/docker/docker-compose.yml

 

 

생성된 컨테이너 제거(docker ps를 통해서 실행된 이미지가 종료된 것을 확인하고 진행필요)

# Remove the Elastic network
docker network rm elastic

# Remove Elasticsearch containers
docker rm es01
docker rm es02
docker rm es03

# Remove the Kibana container
docker rm kib01

 


Docker를 통한 실행 과정

터미널에서 진행

cd /path your compose.yml file folder

## docker container 생성 및 실행
docker compose up -d

## 현재 실행중인 docker파일 확인
docker ps

 

웹 페이지를 통한 확인

하단 창이 뜨게되면 .env파일에서 설정했던 아이디와 비번을 입력해준다

localhost:9200 이동시 로그인 창
로그인 후 결과

 

localhost:5601로 들어가게되면 다음과 같이 kibana페이지를 볼 수 있다

이후에 Dev Tools에서 쿼리를 통해 데이터를 조회하기도 가능하고 시각적으로도 볼수 있다


출처

- Install Elasticsearch with Docker | Elasticsearch Guide [8.12] | Elastic

- https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

- 검색엔진이 데이터를 다루는 법 김종민