포스트

[Data Engineering] ELK란?

ELK가 무엇인지 정리해보았다

[Data Engineering] ELK란?

ELK Stack

elk

  • E (Elasticsearch) : 검색 및 분석 엔진
  • L (Logstash) : Data 처리 Pipeline 역할
  • K (Kibana) : 데이터 시각화

Logstash

logstash

Logstash는 실시간 파이프라인 기능을 가진 오픈소스 데이터 수집 엔진입니다. Logstash는 서로 다른 소스의 데이터를 탄력적으로 통합하고 사용자가 선택한 목적지로 데이터를 정규화할 수 있습니다. 다양한 고급 다운스트림 분석 및 시각화 활용 사례를 위해 모든 데이터를 정리하고 대중화(democratization)합니다.

강점

  • 다양한 소스에서 데이터를 수집하여 변환한 후 자주 사용하는 저장소로 전달하는 기능
  • 플러그형 파이프라인 아키텍처
    • 파이프라인을 구성하는 각 요소들 전부 플러그인 형태
    • 다양한 입력, 필터, 출력을 믹스매치하고 조정하면서 파이프라인에서 조화롭게 운용
  • 커뮤니티에서 확장 가능하고 개발자에게 편리한 플러그인 에코시스템
    • 200여 개 플러그인 사용 가능, 또한 직접 플러그인을 만들어 제공할 수 있는 유연성
  • 성능
    • 자체적 내장 메모리, 파일 기반의 큐를 통해 안전성이 높고 처리속도가 빠름
    • 벌크 인덱싱 및 파이프라인 배치 크기 조정을 통한 병목현상을 방지, 성능 최적화 가능
  • 안정성
    • Elasticsearch의 장애 상황에 대응하기 위한 재시도 로직이나 오류가 발생한 Document를 따로 보관하는 Dead-Letter-Queue를 내장

Pipeline

pipeline

  • Input, Output은 필수, Filter는 Option.
  • 입력 플러그인은 소스의 데이터를 사용하고, 필터 플러그인은 사용자가 지정한 대로 데이터를 수정하며, 출력 플러그인은 목적지에 데이터를 기록

input

input

  • 외부에서 데이터를 받아오는 영역
  • 사용하는 플러그인
    • file : UNIX명령어인 tail -0F 처럼 파일시스템에서 파일을 읽음
    • syslog : 514포트를 통해 syslog 메시지를 읽어오고 RFC3164 포맷에 따라 구분
    • redis : redis 채널과 redis 목록을 모두 사용하여 redis 서버로부터 읽음
    • beats : Beats에서 보낸 이벤트를 처리
    • jdbc : JDBC 데이터를 통해 이벤트를 생성

*Input plugin Ref. https://www.elastic.co/guide/en/logstash/current/input-plugins.html

Filter

filter

  • 입력 받은 데이터를 가공, 조건에 대한 가공
  • 사용하는 플러그인
    • grok : grok패턴을 사용해 메세지를 구조화된 형태로 분석
    • mutate : 필드 이름 변경, 제거, 수정 등을 변환
      • gsub : 가장 상단에서 grok에 보낼 메세지를 미리 전처리할 작업이 있을 떄 사용
    • date : 문자열을 지정한 패턴의 날짜형으로 변경경

*Filter plugin Ref. https://www.elastic.co/guide/en/logstash/current/filter-plugins.html

Output

output

  • 입력과 필터를 거친 데이터를 Target 대상으로 보내는 단계
  • 사용하는 플러그인
    • elasticsearch : 시계열, 비시계열 데이터 세트 모두 전송 가능
    • file : 파일에 output데이터를 저장
    • Kafka : Kafka Topic에 데이터를 전송

*Output plugin Ref. https://www.elastic.co/guide/en/logstash/current/output-plugins.html

Kibana

kibana

  • Kibana는 Elasticsearch 데이터를 시각화하고 탐색할 수 있도록 설계된 분석 및 시각화 플랫폼
  • 주요 기능
    • 대시보드 및 시각화: 차트, 그래프, 지도 등 다양한 형식으로 데이터를 시각화
    • Elastic Stack 통합: Elasticsearch와 긴밀하게 연동되며, 로그 및 메트릭 데이터를 분석
    • 보안 및 관리: 데이터 접근 권한을 제어하고, 사용자 관리 기능을 제공합니다.
    • 개발자 도구: API 및 개발자 도구를 활용하여 맞춤형 분석 및 확장
    • 알림 및 머신러닝: 데이터 이상 탐지 및 알림 기능을 지원하여 운영 문제를 신속하게 해결

 

참고자료

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.