[TIL] 241230 ELK

MONA·2024년 12월 30일

나혼공

목록 보기
50/92

ELK

Elasticsearch, Logstash, Kibana의 약자
로그 데이터 처리 및 시각화를 위한 오픈소스 도구들의 스택

이 세 도구들은 각각의 역할을 수행하며 함께 강력한 데이터 검색, 분석 및 시각화 환경을 제공함

ELK의 구성 요소

Elasticsearch

분산형 검색 및 분석 엔진

특징

  • JSON 형식으로 데이터를 저장함
  • Apache Lucene 기반으로 구축되었으며, 고성능 검색과 분석 기능을 제공
  • 대규모 데이터를 분산 환경에서 처리할 수 있어 확장성이 뛰어남

주요 기능

  1. 분산 처리

    • 데이터를 샤드 단위로 나눠 저장하고, 복제본을 생성해 고가용성, 안정성 보장
  2. 검색 기능

    • Full-Text Search와 Structured Search를 지원
    • Boolean, Fuzzy, Range, Wildcard 등 다양한 검색 쿼리를 작성할 수 있음
  3. 데이터 분석

    • Aggregation(집계) 기능을 통해 데이터를 요약하고 분석함
  4. RESTful API

    • HTTP RESTful API를 통해 데이터를 저장, 검색, 관리할 수 있음

사용 사례

  • 로그 데이터 저장 및 분석
  • 전자 상거래의 제품 검색 기능
  • 실시간 데이터 분석

Logstash

데이터 수집 및 처리 도구

특징

  • 다양한 소스(파일, 데이터베이스, 클라우드 서비스 등)에서 데이터를 수집하고 이를 Elasticsearch에 적합한 형식으로 변환해 전송함
  • 플러그인 기반의 아키텍처로 유연한 데이터 처리 및 변환이 가능함
  • 필터링, 변환, 형식화 등의 데이터 처리 작업을 수행할 수 있음

주요 기능

  1. 입력 플러그인(Input Plugins)

    • 다양한 소스에서 데이터를 수집함
    • 파일, 데이터베이스, Kafka, Beats, HTTP ...
  2. 필터

    • 데이터를 변환하거나, 특정 조건에 따라 데이터를 필터링함
    • Grok(패턴 매칭), Mutate(데이터 수정), Date(시간 변환) ...
  3. 출력 플러그인(Output Plugins)

    • 데이터를 Elasticsearch, 파일, 데이터베이스 등으로 전달
  4. 파이프라인

    • 입력->필터->출력의 데이터 처리 과정을 정의한 워크플로우

사용 사례

  • 로그 데이터의 정규화 및 변환
  • 실시간 데이터 스트림 처리
  • 데이터 전처리 작업(필터링, 변환 등)

Kibana

데이터 시각화 및 대시보드 도구

특징

  • Elasticsearch에 저장된 데이터를 시각화하거나 검색 쿼리를 실행해 결과를 대화형 차트, 그래프, 지도 등으로 표현할 수 있음
  • 사용자 친화적인 UI 제공

주요 기능

  1. 대시보드

    • 실시간 데이터를 시각화하는 사용자 정의 대시보드를 생성할 수 있음
    • 다양한 위젯(그래프, 차트, 테이블 등)을 조합해 대시보드를 구성함
  2. Discover

    • Elasticsearch 데이터를 검색하고 탐색할 수 있는 기능을 제공함
    • 필터링 및 쿼리 실행이 가능
  3. Visualize

    • 데이터 기반으로 차트, 그래프 등을 생성하여 시각화함
  4. Alerting, Monitoring

    • 특정 조건에 따라 경보를 설정하고, 클러스터 상태를 모니터링할 수 있음
  5. Canvas, Maps

    • Canvas: 사용자 지정 보고서를 만들 수 있음
    • Maps: 지도 기반 데이터를 시각화함

사용 사례

  • 시스템 상태 대시보드 생성
  • 로그 및 메트릭 데이터 시각화
  • 비즈니스 데이터 분석 및 보고서 작성

ELK의 주요 용도

  1. 로그 관리

    • 애플리케이션, 서버, 네트워크 장치의 로그 데이털르 실시간 수집, 분석
    • 로그 데이터에서 문제를 빠르게 발견하고 해결하는데 도움
  2. 모니터링 및 분석

    • 시스템 성능 및 애플리케이션 동작에 대한 모니터링
    • 메트릭 및 로그 데이터를 통합해 문제 해결과 최적화에 활용
  3. 보안 및 규정 준수

    • 침입 탐지 및 감사 로그 분석
    • 보안 이벤트를 모니터링, 이상 탐지 지원

ELK의 데이터 흐름

  1. 데이터 수집(Logstash)

    • 다양한 소스에서 데이터를 수집하고 필요에 따라 변환 및 필터링하여 Elasticsearch에 전달
  2. 데이터 저장 및 검색(Elasticsearch)

    • 데이터를 저장하며, 빠른 검색 및 집계 쿼리 지원
  3. 데이터 시각화(Kibana)

    • Elasticsearch에 저장된 데이터를 쿼리하고 시각화해 대시보드를 만듦

장점과 한계

장점

  1. 오픈소스: 무료 사용, 커스터마이징 가능
  2. 확장성: 대규모 데이터를 처리할 수 있음
  3. 다양한 데이터 지원
  4. 강력한 시각화 도구

한계

  1. 설정이 복잡함
  2. 리소스 요구량: 대규모 데이터 처리 시 많은 하드웨어 리소스를 필요로 함
  3. 실시간 처리: 실시간 메트릭 처리에는 Prometheus 같은 도구가 더 적합할 수 있음

타 서비스와의 비교

  1. 비용

    • ELK는 오픈소스라 비용 효율적
    • 상용 솔루션(Splunk, Datadog)은 비용이 발생하지만 기술 지원과 고급 기능을 제공
  2. 확장성

    • 대규모 데이터 처리에는 ELK나 Splunk가 적합할 수 있음
  3. 유지 관리

    • ELK는 운영과 유지 관리가 필요한 반면, Datadog 같은 SaaS는 설정이 간단함
  4. 목적

    • 로그 중심(ELK, Gaylog)
    • 메트릭 중심(Prometheus + Grafana)

로그 기반 처리와 메트릭 기반 처리

데이터를 수집, 분석, 활용하는 방식에서 차이가 있음

로그 기반 처리

정의

  • 로그: 시스템, 애플리케이션, 네트워크에서 발생하는 이벤트의 기록
  • 로그는 정밀한 이벤트 세부 정보를 포함하며, 텍스트 기반(ex: JSON, Plain Text, XML)으로 저장됨

특징

  • 구체적인 정보 제공

    • 로그는 시스템에서 발생한 특정 이벤트, 오류 또는 요청의 세부 정보를 제공함
    • ex) HTTP 요청 로그(응답 시간, 상태 코드, 요청 경로 등), 애플리케이션 에러 로그 등등
  • 무제한 데이터

    • 로그는 이벤트마다 생성되므로, 데이터 크기가 제한없이 증가할 수 있음
  • 형식 다양성

    • 애플리케이션마다 로그의 형식이 다르며, 텍스트 기반으로 저장됨
    • 수집 및 분석 전엔 전처리(Parsing)나 변환이 필요함

장점

  • 디버깅 및 문제 해결에 유용함: 시스템에서 발생한 세부 이벤트를 기록하기 때문에 문제 원인을 정확히 파악하는데 도움이 됨
  • 세밀한 분석: 특정 API 요청의 동작이나 오류 발생 시점 확인 등 세밀한 분석이 가능

단점

  • 리소스 소비: 로그 데이터는 크기가 크고 처리량이 많아질 수 있어 저장 및 처리 비용이 증가함
  • 실시간 분석이 어려움: 많은 로그 데이터를 실시간 처리하려면 높은 처리 능력이 요구됨

사용 사례

  • 애플리케이션 디버깅
  • 보안 이벤트 분석
  • 사용자 행동 추적

메트릭 기반 처리

정의

  • 메트릭: 시스템이나 애플리케이션의 숫자로 표현되는 상태 정보
  • CPU 사용률(%), 메모리 사용량(GB), HTTP 요청 응답 시간(ms)

특징

  • 정량적인 데이터

    • 숫자로 표현되며 time series 데이터로 저장됨
    • ex) 초당 요청 수(QPS), 에러율(%), 네트워크 트래픽(MB/s) ...
  • 샘플링

    • 일정 시간 간격으로 측정된 데이터를 저장하며, 특정 이벤트보다는 상태 변화의 트렌드를 파악하는 데 중점이 있음
  • 구조적 형식

    • 메트릭은 간단하고 정형화된 데이터 형식을 가지며, 전처리 없이 바로 분석에 사용할 수 있음

단점

  • 세부 정보 부족: 이벤트의 세부 정보를 포함하지 않기에 문제 발생 시 원인을 정확히 파악하기엔 어려움
  • 이벤트 발생과의 연관성 부족: 이벤트 자체보다는 상태 변화를 관찰 가능

사용 사례

  • 시스템 상태 모니터링: CPU, 메모리, 디스크 I/O, 네트워크 트래픽
  • 서비스 성능 분석: HTTP 응답 시간, 성공/실패 비율
  • 알림 및 경보: 특정 메트릭 임계값 초과 시 경보 발송

결론

로그와 메트릭은 상호보완적으로 사용된다.

로그: 문제가 발생했을 때 원인을 파악하기 위한 세부 정보를 제공
메트릭: 시스템 상태를 모니터링해 문제가 발생하기 전에 경고를 발송

  1. 메트릭 기반 모니터링 도구(prometheus)가 CPU 사용량 급증을 탐지하고 경보를 보냄
  2. 로그 기반 도구(ELK)가 해당 시간대에 실행된 프로세스를 분석해 CPU 사용량 급증 원인을 파악함
profile
고민고민고민

0개의 댓글