본문 바로가기

엘라스틱 서치

엘라스틱서치 8.X 도커로 무작성 실행해보기

1. 개요

검색엔진으로 유명한 엘라스틱 서치(Elastic Search)를 도커로 실행해 볼 것입니다.

엘라스틱 서치 버전 8 부터 Security가 default로 설정되어 있기 때문에, 이전 버전과 달리 비밀번호를 설정해야 합니다.

이제부터 그 과정에 대해 설명하도록 하겠습니다.

💡 기본적으로 도커가 깔려있어야 합니다.

 

2. 실행하기

우선 엘라스틱 서치의 도커 이미지를 다운로드 받아야 합니다.

제가 다운로드 받은 버전은 가장 최신 버전인 8.7.0 입니다.

docker pull docker.elastic.co/elasticsearch/elasticsearch:8.7.0

 

다운로드 받은 이미지를 실행하는 코드는 아래와 같습니다.

# -p 9200:9200 -> 엘라스틱 서치에 접속하는 포트입니다.
# -p 9300:9300 -> 내부 노드가 통신하는 포트입니다.
# discovery.type=single-node -> 단일 노드로 실행하겠다는 의미입니다.
# docker.elastic.co/elasticsearch/elasticsearch:8.7.0 -> 실행할 엘라스틱 서치 이미지입니다.
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:8.7.0

 

7버전 까지는 기본적으로 http://localhost:9200으로 접속하면 됐습니다.

하지만, 8버전 부터 Security가 default로 설정되어 있어 SSH/TLS를 사용하도록 변경되었습니다.

즉, https://localhost:9200로 접속해야 합니다.

 

접속하면 아래와 같은 화면을 볼 수 있습니다.

 

기본 사용자 이름은 elastic 입니다.

기본 비밀번호는 chageme 입니다.

하지만, 저의 경우 위의 정보로는 접속할 수 없었습니다.

때문에, 비밀번호 변경을해야 했습니다.

 

 

비밀번호 변경을 하기 위해서는 실행중인 컨테이너에 접속해야 합니다.

우선 아래의 방법으로 도커 컨테이너의 ID를 확인해야 합니다.

docker ps

 

컨테이너 ID를 확인하고 아래의 명령어를 입력하면 컨테이너의 쉘에 접근할 수 있습니다.

docker exec -it '컨테이너ID' sh

 

쉘에 접근하셨으면 아래의 명령어로 비밀번호를 변경합니다.

비밀번호는 6자리 이상 이여야 합니다.

bin/elasticsearch-setup-passwords interactive

 

쉘을 빠져 나갑니다.

exit

 

실행중인 컨테이너를 재시작합니다.

docker restart '컨테이너ID'

 

변경된 비밀번호로 접근합니다.

 

정상적으로 접근된 것을 확인할 수 있습니다.

 

3. Postman으로 Alias만들어보기

엘라스틱 서치가 정상적으로 실행 되었으니 Postman으로 Alias를 만들어보겠습니다.

그냥 만들기만 하는거니 Alias가 무엇인지 몰라도 됩니다.

 

PUT 신호로 https://localhost:9200/my-logs-000000에 요청을 보냅니다.

 

 

엘라스틱 서치에 접속하기 위해서는 아이디비밀번호가 필요했었죠?

Postman에서도 해당 정보를 셋팅해야 하기 때문에 Authorization의 Basic Auth를 통해 해당 정보를 입력합니다.

 

Body에는 JSON으로 아래와 같이 입력하고 신호를 보내면 정상적으로 신호가 가는 것을 알 수 있습니다.

 

https://localhost:9200/_alias에 접속하면 생성한 Alias가 만들어진 것을 확인할 수 있습니다.