새소식

Data

ELK란?

  • -

ELK란?

데이터 처리 관련 오픈소스 솔루션인 Eleasticsearch, Logstash, Kibana를 같이 연동하여 사용하는 스택을 의미하는 약어

 

E = Elasticsearch

  • 분산 검색/분석 엔진으로 데이터를 색인해 빠르게 검색O
  • 로그 분석, 전체 텍스트 검색, 보안 인텔리전스, 비지니스 분석 및 운영 등에 사용됨

Elasticsearch 작동 방식

  • JSON 문서 형식의 데이터를 Logstash 같은 수집 도구나 API를 이용해 Elasticsearch로 전송할 수 있음
  • Elasticsearch는 자동으로 원래 문서를 저장하고 클러스터의 인덱스에 문서에 대한 검색 가능한 참조를 추가함
  • Elasticsearch API를 사용해 문서 검색/조회O
  • 시각화 도구인 Kibana를 Elasticsearch와 함께 사용해 데이터 시각화, 대화식 대시보드 구축O

Elasticsearch 이점

  • 오픈소스
  • 신속한 가치 실현
    • REST API, HTTP 인터페이스 제공
    • 스키마 없는 JSON 문서 사용
  • 고성능
    • Elasticsearch의 분산 성질로 인해 대량 볼륨의 데이터를 병렬로 처리할 수 있음
  • 무료 도구 및 플러그인
    • 시각화/보고서 도구인 Kibana가 통합되어 제공됨
    • Beats, Logstash와 통합도 제공해 소스 데이터를 쉽게 전환하고 Elasticsearch 클러스터에 로드할 수 있음
  • 실시간 분석
  • 전문(full text) 검색 엔진
  • 쉬운 애플리케이션 개발
    • Java, Python, PHP, Javascript, Node.js, Ruby 및 기타 여러 다양한 언어 대한 지원 제공
  • Multitenancy
    • Elasticsearch의 데이터들은 Index라는 논리적 집합 단위로 구성되고 서로 다른 저장소에 분산되어 저장됨
    • 서로 다른 인덱션들을 별도의 커넥션 없이 하나의 질의로 묶어 검색하고, 검색 결과들을 하나의 출력으로 도출할 수 있는 특성을 'Multitenancy'

 

L = Logstash

  • 데이터 수집 엔진
    • 다양한 소스에서 데이터 수집해 Elasticsearch 같은 다른 데이터 저장소에 전송O
  • 데이터 파이프라인 구축 위한 다양한 플러그인 제공
    • 사전 구축된 필터, 많은 플러그인에 대한 지원으로 데이터 소스/유형 관계 없이 쉬운 데이터 수집O
  • Elasticsearch의 데이터 파이프라인으로도 자주 사용됨
  • Logstash의 데이터 처리 과정
    • 입력(Inputs) -> 필터(Filters) -> 출력(Outputs)

Logstash 이점

  • 비정형 데이터 쉽게 로드
    • 시스템 로그, 웹 사이트 로그, 애플리케이션 서버 로그 등 다양한 데이터 소스에서 비정형 데이터를 쉽게 수집O
  • 사전 구축된 필터
    • 사용자가 일반 데이터 유형을 쉽게 전환해 Elasticsearch에 인덱싱하고 사용자 지정 데이터 전환 파이프라인을 구축하지 않고도 쿼리를 시작할 수 있음
  • 유연한 플러그인 아키텍처
    • 이미 Github에 수많은 플러그인이 있어 데이터 파이프라인을 사용자 지정하는데 필요한 플러그인이 구축되어 있을 수 있음
    • 요구 사항에 맞는 것이 없는 경우, 쉽게 직접 만들 수 있음

 

K = Kibana

  • Elasticsearch에서 저장된 데이터 시각화 위한 도구
  • 다양한 차트, 대시보드 생성해 데이터 시각화/분석O
    • 선형 그래프, 원형 차트, 지도, 히스토그램
  • Elasticsearch 쿼리 사용해 데이터 검색/필터링 기능 제공

Kibana 이점

  • 대화형 차트
    • 사용자가 대량의 로그 데이터를 대화형으로 탐색하는 데 사용할 수 있는 차트/보고서 제공
  • 매핑 지원
    • 지리 공간적 기능 포함되어 데이터의 지리적 정보를 제일 위에 두고 지도에 시각화하는 계층화 작업O
  • 사전 구축된 집계&필터
    • 몇 단계만으로 히스토그램, 상위 N개 쿼리, 추세 같은 다양한 분석 실행O
  • 쉽게 액세스 가능한 대시보드
    • 대시보드/보고서 쉽게 설정O, 다른 사람에게 공유O

Kibana's Menu

Discover

  • Elasticsearch에 색인된 소스 데이터들의 검색 위한 메뉴
  • 검색 창에 질의문 통해 데이터 검색/필터링
  • 검색된 데이터 원본 문서 확인, 보고 싶은 필드만 선택해 테이블 형태 조회O
  • Time Series(시계열) 기반의 로그 데이터 경우, 시간 히스토그램 그래프 통해 시간대별 로그 수도 표시됨

Visualize

  • aggregation 집계 기능 통해 조회된 데이터의 통계를 다양한 차트로 표현할 수 있는 패널 만드는 메뉴
  • 다양한 시각화 도구들 사용O, 여기서 만들어진 패널들을 조합해 대시보드 생성

Dashboard

  • Visualize 메뉴에서 만들어진 시각화 도구들을 조합해 대시보드 화면 만들고 저장, 불러오기 등 할 수 있음
  • 검색 창에 쿼리 입력 혹은 시각화 도구 클릭해 조회할 데이터들의 필터링O
  • URL로 대시보드를 다른 사람과 공유O, JSON 형식으로 내보내기/불러오기O

 

 

 

Beats

  • 경량화된 로그 수집기 도구
  • Libbeat, Packetbeat, Filebeat, Metricbeat, Winlogbeat 등이 있음
    • Filebeat는 수집한 로그 정보를 Logstash 또는 Elasticsearch에 수집한 metric 데이터 정보 전송O

 

 

 

ELK 스택의 동작 방식

출처 : 미엘린클라우드

1. Logstash가 데이터를 수집/변환하여 올바른 대상으로 전송

2. Elasticsearch는 수집된 데이터를 인덱싱, 분석, 검색

3. Kibana는 분석 결과를 시각화 함

 

  • 데이터 소스를 어디서 가져오는가? : 기존의 DB, 실시간 정보(로그 파일) 등
  • Elasticsearch에서는 데이터의 일관성 있는 처리가 필요함
    • 모든 데이터의 유형이 다르면 처리/분석 어렵고 의미가 없음
    • ELK에서 Logstash 이용해 정형화된 데이터로 분석하게 됨

 

 

 

ELK 스택의 기능

  • 로그 분석, 문서 검색, 보안 정보/이벤트 관리(SIEM), 관찰성 등 문제 해결에 사용됨
  • 방대한 로그 수집하고자 하는 대상으로 로그 수집O
  • 원하는 정보 필터/가공해 시각화 -> 데이터 정보수집/분석O
  • 임계치 설정 후 특정 임계치 한계 도달 시 알람 기능 활성화 해 경고 전달O

 

 

 

정리

  • Elasticsearch는 검색/분석 엔진으로 거대한DB와 같아 SQL 구문 형태로 빠른 검색이 가능함
    • NoSQL(NotSQL) : 데이터 수정보다는 데이터 생성/제거에 강화된 기능
  • Logstash는 필터링을 통해 로그/이벤트 수집
  • Kibana는 데이터/ 시각화/분석 도구

 

 

 

출처

https://myelincloud.com/elk-%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-elasticsearch-logstash-kibana/

https://aws.amazon.com/ko/what-is/elk-stack/

https://aws.amazon.com/ko/what-is/elasticsearch/

https://esbook.kimjmin.net/

'Data' 카테고리의 다른 글

Elasticsearch 인덱스 매핑 방법  (0) 2024.02.02
Elasticsearch 인덱스 생성&삭제  (1) 2024.02.02
Elasticsearch 구조  (0) 2024.02.02
Ubuntu 22.04에서 ELK - Elasticsearch, Kibana 설치  (0) 2024.01.30
REST API(RESTful API)  (0) 2024.01.30
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.