Server/Docker

Docker 에서 elasticsearch, kibana 설치 (8.13.2)

juhpark 2024. 4. 15. 10:15
반응형

Docker에서 elasticsearch, kibana 이미지를 설치하기 위한 방법을 설명하고자 한다.

 

Elasticsearch  설치

 

도커환경구성 

먼저 docker desktop는 설치 되어 있다고 가정하고, 만약 Docker Desktop를 사용하고 있다면 최소 4GB의 메모리를 사용할 수 있도록 환경 설정을 해야 한다. ( Docker Desktop에서 환경설정 > 리소스에서 메모리 크기를 조정 )

 

 

도커 네트워트 환경 구성

Elasticsearch와 Kibana간의 통신을 위한 네트워크를 생성한다.

docker network create elastic

 

 

Elasticsearch  도커이미지 다운로드

Elasticsearch Docker 이미지를 다운로드 받는다. Docker Hub에는 현재(2024.04.15) 8.13.0버전이 등록되어 있으니 아래 명령어를 통해 최신 이미지를 다운로드 받는다.

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

 

 

Elasticsearch 컨테이너 실행

다음의 명령을 수행하면 사용자 패스워드와 등록 번호(enrollment token)이 출력됩니다.

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

# -m 옵션으로 컨테이너의 메모리를 설정하면 JVM크기를 따로 설정하지 않아도 됨
# 실행하고 백그라운드로 동작시키고 콘솔로 나오기 위해서는 Ctlr-P, Ctrl-Q를 차례로 눌러 빠져나온다

 

 

패스워드, 등록토큰 재생성 방법

위 명령에서 출력된 패스워드와 등록토큰은 처음 컨테이너가 실행될 때 한번만 출력되며, 혹 잊게 되면 다음의 명령을 통해 재생성 가능하다.

docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token  -s kibana

 

 

인증서 복사

SSL 인증을 위한 http_ca.crt 파일을 로컬PC로 복사한다.

docker cp es01:/usr/share/elasticsearch/config/certs/http_ca.crt .

# 인증서는 외부에서 curl 명령 등을 사용해서 접속할 때 사용할 수 있다.

curl --cacert http_ca.crt -u elastic:<PASSWORD> https://localhost:9200

 

 

추가노드를 실행하는 방법

추가 노드를 만들어 실행하기 위해서는 먼저 등록토큰(enrollment-token)을 생성해야 한다.

docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node

위에서 생성된 등록토큰(enrollment-token)은 30분간 사용가능하다.

 

두번째 노드 실행

docker run -e ENROLLMENT_TOKEN="<token>" --name es02 --net elastic -it -d -m 4GB docker.elastic.co/elasticsearch/elasticsearch:8.13.2

위 명령어의 name 만 변경하면 추가 노드를 더 실행 할수 있다.

 

키바나 설치

 

키바나 도커 이미지 다운로드

docker pull docker.elastic.co/kibana/kibana:8.13.2

 

 

키바나 컨테이너 실행하기

docker run --name kib01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.13.2

1. 키바나를 실행하면 터미널에 링크가 하나 출력된다. 키바나에 접속하기 위해서는 이 링크를 웹브라우저에서 오픈 한다.

2. 웹브라우저에는 Elasticsearch를 실행할 때 생성된 등록토큰(enrollment-token)을 입력하라는 화면이 표출될 것이다.

3. 이 등록토큰은 다음의 명령을 통해 재생성 가능하다.

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

4. 이후 로그인 화면에서 사용자는 elastic, 패스워드는 Elasticsearch를 실행할 때 생성된 패스워드를 입력한다.

5. 이 패스워드는 다음의 명령을 통해 재생성 가능하다.

docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

 

반응형