[ELK] 초심자를 위한 Elasticsearch, Logstash, Kibana를 Docker로 실행하기
안녕하세요. 황진성입니다.
지난 글에서 ELK Stack에 대한 간단한 설명과 설치/실행하는 방법에 대해 전해드렸는데, 이번글에서는 도커 컨테이너를 활용해서 ELK를 실행하는 방법을 전해드리려 합니다.
아래 프로젝트를 활용합니다.
https://github.com/deviantony/docker-elk
컨테이너 방식을 사용하는 이유
지난 글에서는 Elasticsearch 7 버전을 사용했고, 로컬에 설치해서 실행하는 것을 보여드렸습니다. 현재 제 로컬 PC에는 JDK 11만 설치되어 있고, Elasticsearch 7버전은 JDK 11에서 잘 동작합니다. 하지만 Elasticsearch의 최신 버전인 8 버전을 사용하고 싶다면 JDK 17+이 반드시 필요합니다. 로컬에 JDK 17을 설치하는 것에 거부감을 느낀다면, 독자님도 이 방식을 사용해 보시길 권해드립니다.
여기 에서 확인할 수 있습니다.
Docker 설치 확인하기
먼저 docker와 docker-compose가 설치되어 있어야 합니다.
- docker는 18.06.0이거나 그 이후 버전이어야 하고,
- docker-compose는 1.28.0이거나 그 이후 버전이야 합니다.
버전 확인을 해보기 위해서는 터미널에서 아래와 같이 `-v`를 붙여서 입력하면 됩니다.
실습하기
먼저 위 프로젝트를 다운로드(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 클러스터가 잘 실행됐는지 확인해 봅시다.
그랬더니 ID/PW를 입력하라고 나오네요. 프로젝트의 .env 파일에 보면 ID: elastic / PW: changeme 라고 나옵니다. 입력해 주면 클러스터 정보가 정상적으로 출력되는 것을 확인할 수 있습니다.
Kibana도 동일하고, ID/PW를 입력하면 정상적으로 접속 가능합니다.
맺음말
저도 로컬에서 실행하고 실습하느라 불편한 점이 한두 개가 아니었는데, 지인분 소개로 알게 되어 써봤는데 너무 좋더라고요. ELK 초심자분들, 일단 실행시켜서 이것저것 만져봐야 직성이 풀리는 분들 조금 더 쉽게 설치하고 실습해 봤으면 좋겠습니다. 모두 파이팅!!
2023.10.19 추가
해당 프로젝트의 README를 유심히 읽어보니 아래와 같은 문구가 있습니다.
그대로 쓰면 유료 Trial 버전으로 사용되다가, 나중에 뭔가 막힌다는 것 같습니다. 두번째 방식으로 basic 버전으로 바꿔주도록 합시다.
먼저 elasticsearch 디렉토리에 있는 elasticsearch.yml 파일을 편집기로 열어줍니다.
vim elasticsearch/config/elasticsearch.yml
파일을 열어보니 위쪽에 X-Pack 관련 설정 정보가 보입니다.
type을 `basic`으로 바꿔주고, security.enabled 를 `false`로 변경해줍니다.
이렇게 사용하면 라이센스 문제 없이 오래 사용하실 수 있습니다!