IMG-LOGO
공지사항 :

ELK Stack (Elasticsearch Logstash Kibana)

lmkfox - 2025-03-14 07:14:29 44 Views 0 Comment

ELK Stack이란?

ELK Stack은 Elasticsearch, Logstash, Kibana의 약자로, 로그 데이터를 수집, 저장, 분석, 시각화하는 오픈소스 로그 관리 솔루션이다. 대량의 로그 데이터를 효율적으로 처리하고, 검색 및 모니터링할 수 있도록 설계되었다. 최근에는 Elastic Stack이라는 이름으로 Beats 및 기타 추가 기능을 포함하는 개념으로 확장되었다.


1. ELK Stack의 구성 요소

1) Elasticsearch (검색 및 저장 엔진)

역색인(Inverted Index) 방식을 활용한 강력한 검색 기능 제공

• JSON 기반의 RESTful API 지원

• **수평 확장(Scaling out)**이 가능하여 대량의 데이터 처리에 유리

• ELK Stack의 데이터 저장소 역할을 하며, 빠른 검색을 지원

2) Logstash (데이터 수집 및 변환)

• 다양한 데이터 소스에서 로그를 수집하고 필터링 및 변환

파이프라인 구조를 사용하여 입력(Input) → 필터(Filter) → 출력(Output) 과정을 처리

• 구조화되지 않은 로그 데이터를 구조화된 형태(JSON)로 변환

• 다양한 플러그인 지원 (Syslog, Filebeat, Kafka 등)

3) Kibana (데이터 시각화)

• Elasticsearch에 저장된 데이터를 대시보드 및 차트로 시각화

• 실시간 데이터 분석 및 모니터링 기능 제공

• 로그 검색 및 필터링을 위한 강력한 UI 제공

4) Beats (추가 요소, 선택 사항)

• 경량 로그 수집 에이전트로, 특정 유형의 데이터를 수집하여 Logstash 또는 Elasticsearch로 전송

• 주요 Beats 종류

Filebeat: 파일 로그 수집

Metricbeat: 시스템 및 애플리케이션 메트릭 수집

Packetbeat: 네트워크 트래픽 모니터링

Winlogbeat: Windows 이벤트 로그 수집


2. ELK Stack의 동작 과정

1. 로그 데이터 수집

• Filebeat, Metricbeat, Logstash 등이 서버, 애플리케이션, 네트워크에서 로그 데이터를 수집

2. 로그 변환 및 필터링

• Logstash에서 데이터를 구조화하고 필요한 정보를 추출하여 JSON 형태로 변환

3. 데이터 저장 및 인덱싱

• 변환된 데이터가 Elasticsearch에 저장되고, 검색 가능한 형태로 인덱싱됨

4. 로그 분석 및 시각화

• Kibana를 통해 데이터를 검색, 필터링하고 대시보드에서 시각화


3. ELK Stack의 주요 기능 및 장점

1) 실시간 로그 분석

• 수집된 로그를 즉시 분석하고 빠르게 검색 가능

• 실시간 모니터링을 통해 장애 탐지 및 대응 가능

2) 확장성과 유연성

• 분산형 아키텍처로, 다량의 로그 데이터 처리 가능

• 필요에 따라 다양한 데이터 소스 및 출력을 연동 가능

3) 강력한 검색 기능

• Elasticsearch의 강력한 검색 기능을 활용하여 로그 데이터에서 필요한 정보를 신속하게 찾을 수 있음

4) 데이터 시각화

• Kibana를 통해 로그 데이터를 대시보드 형태로 표현하여 직관적인 분석 가능

5) 다양한 데이터 소스 지원

• 서버 로그, 애플리케이션 로그, 보안 이벤트, 네트워크 트래픽 등 다양한 데이터를 수집 및 분석


4. ELK Stack의 사용 사례

1) 서버 및 애플리케이션 로그 분석

• 서버 운영 로그를 수집하여 장애 원인 분석

• 애플리케이션 로그를 기반으로 성능 문제 및 에러 분석

2) 보안 및 SIEM(Security Information and Event Management)

• 보안 이벤트 및 네트워크 트래픽 모니터링

• 침입 탐지 시스템(IDS) 로그 분석

3) 클라우드 및 컨테이너 모니터링

• Kubernetes, Docker 등의 로그를 수집하여 클러스터 상태 모니터링

• AWS, GCP, Azure 등의 클라우드 로그 분석

4) DevOps 및 CI/CD 파이프라인 모니터링

• 빌드 및 배포 로그를 분석하여 실패 원인 추적

• 성능 모니터링을 통한 운영 효율화


5. ELK Stack 설치 및 설정

1) 기본 요구 사항

• 운영 체제: Linux (Ubuntu, CentOS 등)

• 필수 소프트웨어: Java (Elasticsearch 실행을 위해 필요)

2) Elasticsearch 설치 (Ubuntu 기준)

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt update
sudo apt install elasticsearch
sudo systemctl enable --now elasticsearch

3) Logstash 설치

sudo apt install logstash

Logstash 설정 파일 (/etc/logstash/conf.d/logstash.conf) 예시

input {
  beats {
    port => 5044
  }
}
filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
}
output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "logstash-%{+YYYY.MM.dd}"
  }
}
sudo systemctl start logstash
sudo systemctl enable logstash

4) Kibana 설치 및 실행

sudo apt install kibana
sudo systemctl enable --now kibana

• 브라우저에서 http://localhost:5601 접속 후 Kibana UI 접근


6. ELK Stack vs Graylog 비교

비교 항목

ELK Stack

Graylog

설치 및 설정

비교적 복잡함

상대적으로 간단함

로그 수집 방식

Logstash, Beats 사용

GELF, Syslog, Beats 지원

검색 및 분석

Kibana에서 강력한 분석 제공

Graylog UI에서 간편한 분석

확장성

대규모 데이터 처리에 적합

확장 가능하지만 ELK보다 유연성 낮음

알림 기능

기본 제공되지 않음 (추가 설정 필요)

기본적으로 제공


7. 결론

ELK Stack은 대규모 로그 데이터를 처리하고 분석하는 강력한 도구로, 서버 및 애플리케이션 모니터링, 보안 분석, DevOps 환경에서 널리 사용된다. 강력한 검색 및 시각화 기능을 제공하지만, 설치 및 설정이 비교적 복잡할 수 있다. Graylog와 비교했을 때 확장성이 뛰어나며, 특히 데이터 검색 및 분석 기능이 강력하다. 운영 환경에 맞춰 ELK Stack 또는 다른 로그 관리 시스템을 선택하는 것이 중요하다.


댓글