ELK

ELK 란?

  • ELK 는 Elasticsearch, Logstash, Kibana 를 지칭한다
    • Elasticsearch
      • 아파치 루신 기반의 검색 및 분석 엔진
      • JSON 기반 분산형 RESTful 검색 엔진
      • Logstash 를 통해 수신된 데이터를 저장하는 역할
    • Logstash
      • 서버 사이드 데이터 처리 파이프라인
      • 여러 소스에서 동시에 데이터를 수집하여 변환한 후 Elasticsearch 에 전송한다
      • 데이터를 집계하고 처리한다 (Parse, Filter, Transform)
    • Kibana
      • Elasticsearch 에서 데이터를 시각화 한다
      • 다양한 차트, 테이블, 지도의 형태로 시각화 가능
      • 실시간으로 변하는 동적 대시보드 생성 가능
    • Beats
      • 서버에 설치하는 경량 데이터 수집기
    • X-Pack
      • 보안, 알림, 모니터링, 리포트, 그래프, 머신러닝 기능을 제공하는 확장 프로그램
      • Elasticsearch, Kibana 와 연결

ELK 장점

  • 유연성과 호환성이 좋다
  • 자유스키마 : JSON 방식의 Key-Value 형식의 데이터를 사용
  • 인덱스 와일드카드 지원
  • Scale-out 형태로 확장이 가능하다
  • 실시간 데이터 처리 가능

ELK 데이터 처리

ELK 사용 사례

  • 애플리케이션 검색
  • 웹사이트 검색
  • 엔터프라이즈 검색
  • 로깅과 로그 분석
  • 컨테이너 모니터링
  • 애플리케이션 성능 모니터링
  • 위치 기반 정보 데이터 분석 및 시각화
  • 보안분석
  • 비즈니스 분석

ElasticSearch 개념

  • Node : 데이터를 저장하고 인덱싱 및 검색 기능에 참여하는 서버
  • Cluster : Node 의 집합
  • Index : 유사항 특성을 갖는 문서들의 집합
  • Type : Index 내에 하나 이상의 Type 를 정의
  • Document : Index 를 생성할 수 있는 기본 정보 단위 (JSON)
  • Shards : Index 를 여러 조각으로 분할 (기본 4개)
  • Replicaiton : 장애 대응 고가용성 (기본 1개)

RDB vs Elasticsearch 용어 비교

  • Database = Index
  • Table = Type
  • Row = Document
  • Column = Field
  • Schema = Mapping
  • Index = Everything is indexed
  • SQL = Query DSL