IT & 웹개발

Elastic Stack(ELK)으로 로그 수집 및 모니터링 구축하기

kkwako 2025. 3. 29. 18:32

1. Elastic Stack(ELK)란?

Elastic Stack(ELK)은 Elasticsearch, Logstash, Kibana 세 가지 주요 구성 요소로 이루어진 로그 수집 및 분석을 위한 강력한 솔루션입니다. Elastic Stack을 활용하면 애플리케이션 및 서버의 로그 데이터를 실시간으로 수집하고 분석하여 시스템의 가시성을 높이고 보안 및 성능 문제를 신속하게 파악할 수 있습니다.

최근에는 Beats라는 경량 데이터 전송 에이전트가 추가되면서, 보다 효율적인 로그 수집이 가능해졌습니다. Elastic Stack은 **클라우드 환경(AWS, Google Cloud, Azure)**뿐만 아니라 온프레미스 환경에서도 강력한 로그 분석 기능을 제공하여 DevOps 및 SRE(Site Reliability Engineering)에서 널리 사용됩니다.

이번 글에서는 Elastic Stack(ELK)을 활용하여 로그 수집 및 모니터링 시스템을 구축하는 방법을 단계별로 설명하겠습니다.

2. Elastic Stack 구성 요소

(1) Elasticsearch – 데이터 저장 및 검색 엔진

Elasticsearch는 분산형 검색 및 분석 엔진으로, 구조화된 데이터와 비구조화된 데이터를 모두 저장하고 검색할 수 있습니다. ELK에서 수집한 로그 데이터를 색인(Indexing)하여 빠르게 검색할 수 있도록 하는 핵심 요소입니다.

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

Logstash는 다양한 소스에서 로그 데이터를 수집하여 변환한 후 Elasticsearch에 저장하는 역할을 합니다.

  • 다양한 입력 플러그인(input plugins)을 지원하여 파일, 데이터베이스, API, 클라우드 서비스 등에서 데이터를 가져올 수 있습니다.
  • 필터(filter) 기능을 통해 불필요한 로그를 제거하거나, JSON, CSV 등의 형식으로 변환할 수 있습니다.
  • 출력(output) 기능을 활용하여 데이터를 Elasticsearch, 파일, 메시지 큐 등에 전달할 수 있습니다.

(3) Kibana – 데이터 시각화 및 모니터링

Kibana는 Elasticsearch에 저장된 데이터를 분석하고 시각화하는 도구입니다.

  • 대시보드 기능을 활용하면 로그 데이터를 차트, 그래프, 테이블 등의 형태로 쉽게 분석할 수 있습니다.
  • 경고(Alerting) 기능을 활용하면 특정 이벤트가 감지될 경우 Slack, 이메일, SMS 등으로 알림을 받을 수 있습니다.
  • **보안 설정(Security)**을 통해 **역할 기반 접근 제어(Role-Based Access Control, RBAC)**를 적용할 수 있습니다.

(4) Beats – 경량 로그 수집 에이전트

Beats는 로그 및 시스템 메트릭을 수집하여 Logstash 또는 Elasticsearch로 전송하는 가벼운 데이터 전송 도구입니다.

  • Filebeat: 로그 파일을 모니터링하여 수집
  • Metricbeat: 서버의 CPU, 메모리, 네트워크 사용량 등을 모니터링
  • Packetbeat: 네트워크 트래픽 분석
  • Winlogbeat: Windows 이벤트 로그 수집

3. Elastic Stack 구축 및 설정 방법

(1) Elasticsearch 설치 및 설정

먼저 Elasticsearch를 다운로드하고 실행합니다.

bash
복사편집
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.0.0-linux-x86_64.tar.gz tar -xzf elasticsearch-8.0.0-linux-x86_64.tar.gz cd elasticsearch-8.0.0 ./bin/elasticsearch

환경 설정 (elasticsearch.yml)

yaml
복사편집
cluster.name: my-cluster node.name: node-1 network.host: 0.0.0.0 http.port: 9200

Elasticsearch가 정상적으로 실행되었는지 확인합니다.

bash
복사편집
curl -X GET "localhost:9200"

(2) Logstash 설치 및 로그 수집 설정

Logstash를 설치한 후, logstash.conf 파일을 생성하여 입력(input), 필터(filter), 출력(output)을 설정합니다.

bash
복사편집
wget https://artifacts.elastic.co/downloads/logstash/logstash-8.0.0-linux-x86_64.tar.gz tar -xzf logstash-8.0.0-linux-x86_64.tar.gz cd logstash-8.0.0

logstash.conf 예제

yaml
복사편집
input { file { path => "/var/log/syslog" start_position => "beginning" } } filter { grok { match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:loglevel} %{GREEDYDATA:message}" } } } output { elasticsearch { hosts => ["http://localhost:9200"] index => "syslog-%{+YYYY.MM.dd}" } }

Logstash 실행:

bash
복사편집
./bin/logstash -f logstash.conf

(3) Kibana 설치 및 대시보드 구성

Kibana를 다운로드하고 실행합니다.

bash
복사편집
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.0.0-linux-x86_64.tar.gz tar -xzf kibana-8.0.0-linux-x86_64.tar.gz cd kibana-8.0.0 ./bin/kibana

웹 브라우저에서 Kibana 대시보드(http://localhost:5601)에 접속하여 로그 데이터를 시각화합니다.

(4) Filebeat을 사용한 로그 수집 자동화

Filebeat을 설치하고 로그 수집을 설정합니다.

bash
복사편집
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.0.0-linux-x86_64.tar.gz tar -xzf filebeat-8.0.0-linux-x86_64.tar.gz cd filebeat-8.0.0

Filebeat 설정 (filebeat.yml)

yaml
복사편집
filebeat.inputs: - type: log enabled: true paths: - /var/log/*.log output.elasticsearch: hosts: ["localhost:9200"]

Filebeat 실행:

bash
복사편집
./filebeat -e

4. Elastic Stack 활용 사례

(1) 서버 로그 분석 및 장애 탐지

  • Apache/Nginx 로그를 실시간으로 수집 및 분석하여 트래픽 패턴을 파악할 수 있습니다.
  • CPU, 메모리 사용량 등의 시스템 리소스를 모니터링하여 서버 과부하를 사전에 감지할 수 있습니다.

(2) 보안 이벤트 감지

  • 사용자 로그인 실패 기록을 분석하여 Brute Force 공격을 탐지할 수 있습니다.
  • 이상 트래픽을 감지하여 DDoS 공격을 실시간으로 대응할 수 있습니다.

(3) DevOps 및 애플리케이션 성능 모니터링

  • 애플리케이션의 오류 로그를 실시간으로 확인하고 문제를 즉시 해결할 수 있습니다.
  • CI/CD 파이프라인과 연동하여 배포 과정에서 발생하는 오류를 추적할 수 있습니다.

Elastic Stack(ELK)으로 로그 수집 및 모니터링 구축하기

 

5. 결론

Elastic Stack(ELK)은 강력한 로그 수집 및 분석 솔루션으로, 서버 및 애플리케이션 모니터링, 보안 이벤트 탐지, DevOps 환경 개선 등 다양한 분야에서 활용됩니다. 특히, Elasticsearch의 강력한 검색 기능, Logstash의 유연한 데이터 처리, Kibana의 직관적인 대시보드를 조합하면 효율적인 로그 관리 및 인사이트 도출이 가능합니다.

Elastic Stack을 활용하여 더 안정적이고 보안이 강화된 IT 시스템을 구축해 보세요!