Copy & Run

Docker로 ELK 실습 서버 준비하기

빈 리눅스 컨테이너를 띄우고, 그 안에 ELK를 직접 설치할 준비를 합니다. 메모리와 포트 요구사항, 매일 시작과 종료 방법, 자주 겪는 문제도 함께 다룹니다.

글쓴이 최경호 · 실습 노트 · 2026-10-14 발행 · 2분 · 2026-08 확인

시스템 요구사항

  • 메모리: ES 힙 1GB + Kibana → Docker에 4GB 이상 할당 권장(16GB 노트북 OK)
  • 디스크: 10GB 이상 여유 (ELK 패키지 설치 용량이 큽니다)
  • 포트: 9200(Elasticsearch), 5601(Kibana), 5044(Logstash) - 다른 프로그램이 쓰고 있지 않은지 확인
  • 네트워크: Elastic 공식 저장소에서 패키지를 내려받습니다(사내망에서 막혀 있으면 네트워크 담당자에게 문의)

서버 띄우기

VS Code에서 실습 폴더를 열고 통합 터미널(Ctrl+`)에서:

cd handson/elk
docker compose up -d --build     # 빈 리눅스 서버 기동
docker compose exec elk bash     # 서버 접속 - 설치는 여기서부터

이 서버에는 ELK가 들어 있지 않습니다. 설치 절차는 Elasticsearch 설치 글 를 따릅니다.

  • handson/ 폴더 전체가 서버의 /labs 로 연결돼 있습니다. 내 PC에서 파일을 고치면 서버에 바로 반영됩니다.
  • 설치가 끝나면 Kibana 접속: http://127.0.0.1:5601 → Discover → 데이터 뷰 logs-* 생성(시간 필드 @timestamp).

샘플 데이터의 타임스탬프가 과거 날짜입니다. Discover 시간 범위를 그 날짜가 포함되도록 넓혀야 보입니다.

매일 시작·종료

상황 명령
오늘 실습 종료 docker compose stop - 설치·데이터 유지
다음 날 시작 docker compose start → 접속 후 ES·Kibana 다시 기동
설치 상태 백업 docker commit elk-lab-vm elk-lab:installed
서버 폐기 docker compose down - 설치한 ELK가 전부 사라집니다

과정 중에는 down 을 쓰지 않습니다. 마지막 날 정리할 때만 씁니다.

서버를 다시 켠 뒤 ES·Kibana를 올리는 명령(Elasticsearch 설치 글의 기동 절):

sudo -u elasticsearch env ES_PATH_CONF=/etc/elasticsearch \
  /usr/share/elasticsearch/bin/elasticsearch -d -p /tmp/es.pid > /dev/null 2>&1
sudo -u kibana env KBN_PATH_CONF=/etc/kibana \
  nohup /usr/share/kibana/bin/kibana > /tmp/kibana-start.log 2>&1 &

자주 하는 문제

증상 해결
apt-get update 가 NO_PUBKEY 서명 키를 키링에 넣고 signed-by 로 지정했는지 확인
ES 기동 실패(설정) Duplicate field 면 자동 보안 블록을 지우지 않은 것 - 설치 실패 사례 글의 케이스 2
ES 기동 중 종료(메모리) 힙을 최소=최대 1GB로. Docker 메모리 할당 4GB 이상
failed to obtain node locks 이미 떠 있는데 또 기동한 것. ps -ef | grep [e]lasticsearch 확인
내 PC에서 9200이 안 열림 http.host: 0.0.0.0 설정과 compose 포트 매핑 확인
Kibana 접속 지연 ES가 green 된 뒤 1~3분 더 기다립니다
Discover에 데이터 없음 시간 범위를 샘플 데이터 날짜가 포함되도록 넓힙니다. 데이터 뷰 시간 필드가 @timestamp 인지도 확인
다음 날 서비스 미기동 컨테이너를 start 해도 ES·Kibana는 자동으로 뜨지 않습니다(위 4절 명령)
설치한 게 사라짐 docker compose down 또는 compose 파일 수정 후 up 으로 컨테이너가 재생성된 것. elk-lab:installed 스냅샷으로 복구
글쓴이 최경호
Copy & Run

IT와 사이버보안 분야에서 15년 이상 일했고 AI, 클라우드, 개발, 보안을 주로 다룹니다. 교육에서 직접 쓰는 실습을 글로 정리합니다.

SIEM 관제 실습 (ELK) 과정의 일부입니다

이 실습은 교육에서 참가자마다 독립된 환경으로 진행합니다. 팀 교육으로 구성이 필요하면 문의해 주세요.

과정 보기교육 문의