개발 & 데이터베이스/Elasticsearch

Docker 에 Elasticsearch, Kibana 설치 및 실행 방법

K.두부 2024. 1. 4. 23:05
반응형

Windows 환경에 직접 설치해서 사용해봤지만 에러도 많이 발생하고 Docker 로 진행했을 때가 훨씬 간편하고 쉬워서 Docker 설치를 추천드립니다.

 

https://www.docker.com/get-started/

 

Get Started | Docker

Get started with Docker Desktop and join millions of developers in faster, more secure app development using containers and beyond.

www.docker.com


 

Elasticsearch 다운로드

// download Elasticsearch in docker
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.3.3

// Elasticsearch 실행
docker network create elastic
docker run --name es01 --net elastic -p 9200:9200 -p 9300:9300 -it docker.elastic.co/elasticsearch/elasticsearch:8.3.3

 

Elasticsearch 실행 확인

docker ps

CONTAINER ID   IMAGE                                                 COMMAND                   CREATED         STATUS         PORTS                                            NAMES
efba94182aa5   docker.elastic.co/elasticsearch/elasticsearch:8.3.3   "/bin/tini -- /usr/l…"   3 minutes ago   Up 3 minutes   0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   es01

 

Elasticsearch 접속

curl http://localhost:9200
curl: (52) Empty reply from server

Elasticsearch 8.0 이상부터는 https://localhost:9200 으로 접속해야한다.

 

curl https://localhost:9200
curl: (60) schannel: SEC_E_UNTRUSTED_ROOT (0x80090325) - 신뢰되지 않은 기관에서 인증서 체인을 발급했습니다.
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

curl 명령어는 기본적으로 https 사이트의 SSL 인증서를 검증한다.

해결을 위해서 -k 옵션을 사용하면 SSL certificate 검증없이 연결할 수 있다.

 

curl -k https://localhost:9200
{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":["Basic realm=\"security\" charset=\"UTF-8\"","Bearer realm=\"security\"","ApiKey"]}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":["Basic realm=\"security\" charset=\"UTF-8\"","Bearer realm=\"security\"","ApiKey"]}},"status":401}

이번에도 오류는 자격 증명 누락 오류가 발생했다.

-u 옵션을 사용해서 user를 입력해줘야한다.

 

기본적으로 user는 elastic 이다.

 

curl -k https://localhost:9200 -u elastic
Enter host password for user 'elastic':

비밀번호를 입력하세요....

비밀번호는 Elasticsearch를 처음 실행했을 때 출력된다.

 

모르는 경우에는 docker desktop > Containers 메뉴에서 현재 실행하고 있는 Elasticsearch 를 들어간다.

 

 

Exec 메뉴에서 elasticsearch-reset-password -u elastic -a 를 입력하면 아래와 같이 새로운 패스워드를 제공한다.

 

패스워드 입력해서 들어가면 접속 성공.


 

Kibana 다운로드

// download Kibana in Docker
docker pull docker.elastic.co/kibana/kibana:8.3.3

// Kibana 실행
docker run --name kib01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.3.3

 

실행하고 1분 정도 뒤에 localhost:5601 로 접속하면 Token 입력하라고 한다.

 

토큰도 패스워드와 마찬가지로 Elasticsearch를 처음 실행했을 때 출력된다.

하지만 기억하는 사람은 없을거라고 예상된다.

 

토큰을 다시 생성하려면 아래와 같은 명령어를 입력하면 된다.

docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
eyJ2ZXIiOiI4LjMuMyIsImFkciI6WyIxNzIuMTguMC4yOjkyMDAiXSwiZmdyIjoiNjg3OTljYTdjMzE1MTYzZmMyNTE0M2NiYzgzMWE1NWQwMmNiM2ZhYTM2OTkxZmRhZjU4NWFlOWZhMTQ5MDM4OSIsImtleSI6IkZ2RzgxSXdCQmlLUDdma3JoR0ZMOngyckppbVNaUm5hNzFLcHJ0bUdnQVEifQ==

출력된 토큰을 입력하고 Configure Elastic 하면 이번엔 인증코드 6자리를 입력하라고 한다.

 

이건 docker desktop > containers 메뉴에서 Kibana 에 들어가면 확인할 수 있다.

Your verification code is: OOO OOO

 

인증코드 6자리까지 입력하면 접속 성공 !!!

 

반응형