Copy & Run

ELK 설치가 실패하는 흔한 원인 세 가지와 해결

일부러 설정을 깨뜨려 실패를 재현하고, 로그에서 원인을 찾아 고치는 순서를 익힙니다. 설치 단계마다 자주 겪는 오류를 미리 겪어 봅니다.

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

추가 케이스 - 흔한 설치 실패 재현·해결 (약 15분)

실패를 일부러 만들어 증상과 해결을 익힙니다. 세 케이스 모두 실제로 재현되는 것만 담았습니다. 각 케이스는 먼저 Elasticsearch를 내린 뒤 진행합니다.

kill $(cat /tmp/es.pid)
until ! curl -sf -o /dev/null http://127.0.0.1:9200; do sleep 2; done

재현할 때는 화면에서 오류를 바로 보기 위해 -d 없이 앞단에서 기동합니다(Ctrl+C로 중단).

sudo -u elasticsearch env ES_PATH_CONF=/etc/elasticsearch \
  /usr/share/elasticsearch/bin/elasticsearch

케이스 1 - 힙을 너무 작게 잡음

  • 재현: printf -- "-Xms64m\n-Xmx64m\n" > /etc/elasticsearch/jvm.options.d/heap.options 후 기동.
  • 증상: java.lang.OutOfMemoryError: Java heap space 로 기동 도중 종료.
  • 진단: 기동 로그 마지막 줄에 OutOfMemoryError가 그대로 찍힙니다.
  • 해결: printf -- "-Xms1g\n-Xmx1g\n" > /etc/elasticsearch/jvm.options.d/heap.options 로 되돌립니다.
  • 함께 알아둘 것: 반대로 호스트 메모리보다 크게(예 -Xms16g) 잡으면 오류 없이 기동이 끝나지 않고 멈춥니다. 힙은 호스트 여유의 절반 이하로, 최소=최대로 잡습니다.

케이스 2 - 설정 파일에 같은 키가 두 번

  • 재현: C-2의 sed 삭제를 건너뛴 상태를 흉내 냅니다. echo "xpack.security.enabled: true" >> /etc/elasticsearch/elasticsearch.yml 후 기동.
  • 증상: 기동 즉시 실패. SettingsException: Failed to load settings from [elasticsearch.yml] Caused by: XContentParseException: [96:23] Duplicate field 'xpack.security.enabled'
  • 진단: 오류 메시지의 [줄:칸] 이 중복된 위치를 그대로 알려 줍니다.
  • 해결: 중복된 줄을 지웁니다. sed -i '$d' /etc/elasticsearch/elasticsearch.yml

케이스 3 - 이미 떠 있는데 또 기동

  • 재현: Elasticsearch가 떠 있는 상태에서 기동 명령을 한 번 더 실행합니다.
  • 증상: failed to obtain node locks, tried [/var/lib/elasticsearch] / LockObtainFailedException: Lock held by another program: /var/lib/elasticsearch/node.lock
  • 진단: 같은 데이터 경로를 두 프로세스가 함께 쓸 수 없습니다. ps -ef | grep [e]lasticsearch 로 이미 떠 있는지 확인합니다.
  • 해결: 중복 실행을 하지 않습니다. 다시 띄워야 하면 kill $(cat /tmp/es.pid) 로 내린 뒤 기동합니다.

케이스를 마치면 정상 상태로 되돌리고 확인합니다.

sudo -u elasticsearch env ES_PATH_CONF=/etc/elasticsearch \
  /usr/share/elasticsearch/bin/elasticsearch -d -p /tmp/es.pid > /dev/null 2>&1
until curl -sf -o /dev/null http://127.0.0.1:9200/_cluster/health; do sleep 3; done
curl -s "http://127.0.0.1:9200/_cat/indices/logs-*?h=index,docs.count&s=index"
글쓴이 최경호
Copy & Run

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

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

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

과정 보기교육 문의