본문 바로가기
💻 개발 이야기/ELK Stack

[ELK] 초심자를 위한 Elasticsearch, Logstash, Kibana를 Docker로 실행하기

by Jinseong Hwang 2023. 8. 20.

 

안녕하세요. 황진성입니다.

 

지난 글에서 ELK Stack에 대한 간단한 설명과 설치/실행하는 방법에 대해 전해드렸는데, 이번글에서는 도커 컨테이너를 활용해서 ELK를 실행하는 방법을 전해드리려 합니다.

 

아래 프로젝트를 활용합니다.

https://github.com/deviantony/docker-elk

 

GitHub - deviantony/docker-elk: The Elastic stack (ELK) powered by Docker and Compose.

The Elastic stack (ELK) powered by Docker and Compose. - GitHub - deviantony/docker-elk: The Elastic stack (ELK) powered by Docker and Compose.

github.com

 

컨테이너 방식을 사용하는 이유

지난 글에서는 Elasticsearch 7 버전을 사용했고, 로컬에 설치해서 실행하는 것을 보여드렸습니다. 현재 제 로컬 PC에는 JDK 11만 설치되어 있고, Elasticsearch 7버전은 JDK 11에서 잘 동작합니다. 하지만 Elasticsearch의 최신 버전인 8 버전을 사용하고 싶다면 JDK 17+이 반드시 필요합니다. 로컬에 JDK 17을 설치하는 것에 거부감을 느낀다면, 독자님도 이 방식을 사용해 보시길 권해드립니다.

 

여기 에서 확인할 수 있습니다.

Elasticsearch의 각 버전별로 어떤 JDK Vender, Version과 호환되는지 한 눈에 보기 어렵게(?) 나와있습니다.

 

Docker 설치 확인하기

먼저 docker와 docker-compose가 설치되어 있어야 합니다.

  • docker18.06.0이거나 그 이후 버전이어야 하고,
  • docker-compose1.28.0이거나 그 이후 버전이야 합니다.

 

버전 확인을 해보기 위해서는 터미널에서 아래와 같이 `-v`를 붙여서 입력하면 됩니다.

실행 결과. (저는 docker:24.0.5 / docker-compose:2.20.3 으로 확인되네요)

 

실습하기

먼저 위 프로젝트를 다운로드(git clone) 받습니다.

$ git clone https://github.com/deviantony/docker-elk.git

 

이후 프로젝트에서 제공되는 환경 설정을 진행합니다.

몇 분 걸릴 수 있다고 겁주고 있지만, 저는 1분 안에 끝났습니다.

$ docker-compose up setup

실행 결과 상단. 주르륵 계속 나옵니다.

 

그러고 나서 docker-compose.yml 에 정의된 대로 컨테이너를 실행합니다.

$ docker-compose up -d

실행 결과

 

끝났습니다! 너무 간단한가요?

 

localhost:9200에 접속해서 Elasticsearch 클러스터가 잘 실행됐는지 확인해 봅시다.

http://localhost:9200

그랬더니 ID/PW를 입력하라고 나오네요. 프로젝트의 .env 파일에 보면 ID: elastic / PW: changeme 라고 나옵니다. 입력해 주면 클러스터 정보가 정상적으로 출력되는 것을 확인할 수 있습니다.

http://localhost:9200

 

Kibana도 동일하고, ID/PW를 입력하면 정상적으로 접속 가능합니다.

http://localhost:5601

 

맺음말

저도 로컬에서 실행하고 실습하느라 불편한 점이 한두 개가 아니었는데, 지인분 소개로 알게 되어 써봤는데 너무 좋더라고요. ELK 초심자분들, 일단 실행시켜서 이것저것 만져봐야 직성이 풀리는 분들 조금 더 쉽게 설치하고 실습해 봤으면 좋겠습니다. 모두 파이팅!!

 


 

2023.10.19 추가

 

해당 프로젝트의 README를 유심히 읽어보니 아래와 같은 문구가 있습니다.

https://github.com/deviantony/docker-elk#how-to-disable-paid-features

그대로 쓰면 유료 Trial 버전으로 사용되다가, 나중에 뭔가 막힌다는 것 같습니다. 두번째 방식으로 basic 버전으로 바꿔주도록 합시다.

 

먼저 elasticsearch 디렉토리에 있는 elasticsearch.yml 파일을 편집기로 열어줍니다.

vim elasticsearch/config/elasticsearch.yml

 

파일을 열어보니 위쪽에 X-Pack 관련 설정 정보가 보입니다.

Before
After

type을 `basic`으로 바꿔주고, security.enabled 를 `false`로 변경해줍니다.

이렇게 사용하면 라이센스 문제 없이 오래 사용하실 수 있습니다!