Notification
새로운 알림이 없습니다.

[ ELK ] What is ELK Stack?

 

ELK Stack


  • Agenda
    • What is ELK?
    • ELK Stack 
      • Features & Concepts
    • Architecture
      • Key Terms
        • ElasticSearch
        • Kibana
  • Summary
  • Reference
  • Next Actions



What is ELK?

ELK는 Elasticsearch, Logstash, Kibana의 약자로, 데이터 수집, 처리, 분석, 시각화를 위한 Open Source Software Stack입니다.

ELK 스택은 로그 분석, 애플리케이션 성능 모니터링, 보안 이벤트 분석 등 다양한 분야에서 활용됩니다.

ELK Stack

아래는 간단하게 ELK Stack의 각각 구성요소 및 기능에 대해 설명 해보겠습니다. 
  • Features & Concepts
    • Elastic Search(Storage) 
      • 실시간 검색 및 분석
        • ES는 Data를 실시간으로 색인화 하고 검색할 수 있는 기능 제공
        • 대규모 Dataset에서도 빠른 검색 및 분석이 가능
      • 분산형 Architecture
        • Data를 여러 Node에 분산하여 저장하고 처리
          • 확장성과 가용성을 보장
      • 다양한 검색 기능
        • 다양한 검색 기능을 제공하여 복잡한 쿼리를 수행하고 Data를 Filtering 및 집계 가능
    • Log Stash
      • 다양한 Data Source 지원
        • LogStash는 다양한 Data Source에서 Data 수집 가능
          • LogFile, DB, Messaging System등 다양한 Source에서의 Data 수집을 지원
      • Data 가공 및 정규화
        • Data를 가공하고 Filtering하여 필요한 형식으로 변환 가능
        • Data의 일관성을 유지 및 ES에서 색인화 할수 있는 형식으로 Data를 준비 할 수 있음
      • 실시간 Data 전송
        • Log Stash는 Data를 실시간으로 처리해서 ES 또는 다른 저장소로 전송 가능
        • 이를 통해 실시간 모니터링 및 분석이 가능
    • Kibana
      • 실시간 Monitoring
        • 실시간으로 Data를 Monitoring하고 Alert을 설정할수 있는 기능을 제공
        • System Status를 실시간으로 추적하고 문제를 빠르게 식별 가능
      • 시각적 데이터 탐색
        • Kibana는 ES에서 저장된 데이터를 시각적으로 탐색하는 기능 제공
        • 사용자는 직관적인 Dashboard 및 시각화 도구를 사용하여 Data를 탐색하고 분석 할 수 있음
      • Dashboard 및 Visualization 구축
        • Kibana는 사용자가 Data를 시각적으로 표현 할 수 있는 다양한 Chart 및 Graph를 제공
        • 사용자는 Data를 이해하고 insight를 도출 가능

Architecture

https://www.elastic.co/guide/en/logstash/current/deploying-and-scaling.html

다음은 ELK Stack의 Architecture입니다.

각각의 Components에 대한 설명은 위에 기재해두었습니다.
추가로 Beats가 사용된 이유는, 기존에 ES는 Data Processing을 LogStash가 담당하고있어 부하가 심하여 Elastic에서 별도로 Beats라는 Solution을 제공하기 시작하였습니다.

Beats(Metrics, Filebeat...)에도 여러가지 Components들이 있으며, Beats를 통해  다양한 종류의 Data를 수집하고 ES 또는 Logstash로 전송합니다. 주로 Log File, Metrics, Network Data등을 수집하는데 사용됩니다. 

Elastic Search

ES와 Kibana 에서 주로 사용되는 용어들에 대해 아래와 같이 Table 형태로 정리해봤습니다.

TermUsage
ClusterCluster는 데이터를 함께 보관하고 결합된 인덱싱 및 검색 기능을 제공
NodeNode는 Elastic Search의 Instance
IndexIndex는 유사한 특성을 가진 Document의 모음
ex: 고객 데이터, 제품 카탈로그, Indexing, Search, Update 및 Delete 작업을 수행하는것에 매우 유용함
Single Cluster에 많은 Index를 정의할수도 있음
DocumentIndex를 생성할 수 있는 기본 단위
JSON(Key:Value) 쌍으로 표현됨
'{"user":"es-jgz"}'
모든 Single Document는 Unique ID에 연결됨
Shard모든 Index는 Data를 분산할 수 있도록 여러 Shard로 분할 가능
Shard는 Index의 원자 부분으로, Node를 더 추가하려는 경우 Cluster에 배포 가능

Kibana

TermUsage
Free text searches특정 문자열이 문서 전체에 존재하는지 여부를 확인
Field-level searches지정된 필드(예: 제목, 본문) 내에 특정 문자열이 존재하는지 여부를 확인
Logical statements여러 검색 조건을 AND, OR, NOT 연산자를 사용하여 결합하여 원하는 결과 도출
Proximity searches두 용어가 지정된 거리 이내에 함께 나타나는지 여부를 확인
(예: "한국 서울" 검색 시 "한국"과 "서울"이 서로 몇 단어 이내에 있는지 확인)


Summary

  • Centralized logging System
    • Server또는 Application 문제를 파악하는데 유용함
    • ELK Stack은 Elastic Search, LogStash, Kibana라는 3가지 오픈소스 도구로 구성됨
      • Elastic Search : NoSQL DB
      • Logstash : Data 수집 Pipeline 도구
      • Kibana : Data 시각화 도구
    • 복잡한 설정으로 Migration시 Stack의 다양한 구성 요소를 관리하기 어려울수는 있음
ELK에 대한 짧은 소개를 작성하였고, ELK Stack을 Cloud(AWS, GCP...)위에 Docker 기반으로 구축하는 가이드를 작성할 계획입니다.

끝으로 이 포스팅을 보시는 분들이 관련 정보를 얻으시는데 도움이 되었으면 합니다.

ELK
Stan Cloud
Stan Cloud
An avid cloud engineering Fan
대화 참여하기
댓글 쓰기