제가 실무에서 ELK를 실행시키는 것에 어려움이 있었기에 게시글로 준비해 봤습니다. 한 번 이해하고 설정해 놓으면 복잡하게 설정하지 않아도 쉽게 로그를 수집할 수 있기 때문에 직접 실행해 보시길 추천하겠습니다. 해당 게시글은 처음에 ELK Stack의 쓰임새를 이해하는 것부터 시작해서 Logstash와 Elasticesearch, Kibana의 이미지를 받고 실행하는 것을 알아보겠습니다.
[ ELK Stack의 이해 ]
ELK Stack은 Elasticsearch, Logstash, Kibana를 묶어서 부르는 말입니다. 이 세 가지 오픈 소스들은 데이터 분석 및 시각화를 위해서 많이 사용되는데 주로 어플리케이션에서 나온 로그들을 취합하여 웹으로 확인할 때 사용합니다.
간단하게 ELK Stack에 대해 설명하면 아래와 같습니다. 자세한 설명은 aws 웹 페이지(https://aws.amazon.com/ko/what-is/elk-stack/)를 참고해주세요.
- Elasticsearch: 로그와 같은 대량의 텍스트 데이터를 신속하게 인덱싱 하고 검색할 수 있습니다.
- Logstash: 데이터를 수집 하고 다른 저장소(Elasticsearch)로 전송합니다.
- Kibana: Elasticsearch에서 인덱싱 한 데이터를 시각화해 주는 웹 인터페이스입니다.
[ 프로젝트 폴더 구조 ]
- elk

- elasticsearch/
- config/
- elasticsearch.yml
- Dockerfile
- kibana/
- config/
- kibana.yml
- Dockerfile
- logstash/
- config/
- logstash.yml
- pipeline
- logstash.conf
- Dockerfile
- .env
- docker-compose.yml
- 각 'config/'디렉터리에 위치한 yml은 설정 파일로 elasticsearch/kibana/logstash의 동작을 조정할 수 있습니다.
- 각 Dockerfile은 elasticsearch/kibana/logstash를 이미지로 빌드하기 위한 설정파일입니다.
- logstash/pipeline/logstash.conf은 Logstash의 데이터 처리 방식을 정의하는 데 사용합니다.
- .env파일은 Dockerfile과 docker-compose.yml에서 사용하는 환경 변수 파일입니다.
- docker-compose.yml은 elasticsearch/kibana/logstash 각 컨테이너의 설정과 서비스를 정의합니다.
- .yml파일과 .conf는 추후 docker-compose.yml파일에서 볼륨 매핑(호스트 시스템의 파일 또는 디렉터리를 Docker 컨테이너 내부의 특정 경로에 연결)을 설정하겠습니다. 추가로 설정하고 싶은 파일이 있다면 추가 매핑하시면 됩니다.
[ Docker 설치 확인 ]
Docker에 ELK Stack를 올려서 사용할 것이니 우선 아래의 명령어를 입력하여 Docker의 버전을 확인하도록 하겠습니다.
docker -v
저는 "Docker version 24.0.2, build cb74dfc" 을 사용하고 있습니다. 만약 설치되어있지 않다면 Docker(https://docs.docker.com/)를 설치 후 실행해 주세요.
다음 게시글에서는 Logstash와 Elasticesearch, Kibana의 이미지를 받고 설정해 보겠습니다.
https://dungdung-developer.tistory.com/13
[Docker] ELK 스택을 Docker로 실행하기 (2)
전 게시글에서는 프로젝트의 폴더와 필요한 파일을 확인했습니다. 이번 게시글에서는 직접 elasticsearch/kibana/logstash의 설정파일을 작성하겠습니다. 시작하기 전에 제가 참고한 github 링크입니다
dungdung-developer.tistory.com
'Docker' 카테고리의 다른 글
| [Docker] ELK 스택을 Docker로 실행하기 - 2 (0) | 2024.02.04 |
|---|