코딩마을방범대

[ELK] ELK 스택(Elasticsearch, Kibana, Beats, Logstash) 개념 정리 본문

💡 백엔드/ELK

[ELK] ELK 스택(Elasticsearch, Kibana, Beats, Logstash) 개념 정리

신짱구 5세 2024. 8. 29. 08:58
728x90

 

 

 

ELK 스택

  • Elasticsearch, Logstash, Kibana의 세 가지 인기 있는 프로젝트로 구성된 스택을 의미하는 약어
    (그냥 Elasticsearch라고도 불림)
  • 로그를 집계하고 이를 분석하며 애플리케이션과 인프라 모니터링 시각화를 생성하고, 빠르게 문제를 해결하며 보안 분석할 수 있는 능력을 제공
  • 로그 분석, 문서 검색, 보안 정보 및 이벤트 관리(SIEM), 관찰성 등 광범위한 문제를 해결하는 데 사용되며, 검색 및 분석 엔진, 데이터 모으기 및 시각화를 제공

 


 

작동 방법

  1. Logstash: 데이터를 수집 및 변환하고 올바른 대상으로 전송
  2. Elasticsearch: 수집된 데이터를 인덱싱하고, 분석하고, 검색
  3. Kibana: 분석 결과를 시각화

 

 

 

 


 

 

 

 

 

 

 

 

Elasticsearch

  • 분산형 RESTful 검색 및 분석 엔진
    (대량의 데이터를 실시간으로 검색하고 분석하는 데 최적화)
  • 로그 분석, 전체 텍스트 검색, 보안 인텔리전스, 비즈니스 분석 및 운영 인텔리전스 사용 사례에 일반적으로 사용

 


 

이점

  • 신속한 가치 실현
    간단한 REST 기반 API, 간단한 HTTP 인터페이스를 제공하고 스키마 없는 JSON 문서를 사용해 빠르게 애플리케이션을 구축할 수 있음
  • 고성능
    - 분산 성질로 인해 대량 볼륨의 데이터를 병렬로 처리할 수 있어 쿼리에 일치 항목을 빠르게 찾을 수 있음
    - 유한 상태 변환기를 통한 역 인덱스를 구현하고, 숫자 및 위치 데이터 저장을 위해 BKD tree를 구현하였으며, 분석을 위해 열 저장을 구현함
    - 매초당 수많은 양의 이벤트를 처리할 수 있으며, 클러스터에서 인덱스와 쿼리 배포를 자동화하여 보다 원활한 시스템 운영을 지원
  • 무료 도구 및 플러그인
    - Elasticsearch는 유명 시각화 및 보고서 도구인 Kibana가 통합되어 제공됨.
    - Beats 및 Logstash와의 통합도 제공하여 소스 데이터를 쉽게 전환하고 Elasticsearch 클러스터에 로드할 수 있음.
    - 언어 분석기 및 제안자 등 다양한 오픈 소스 Elasticsearch 플러그인을 사용하여 애플리케이션에 풍부한 기능을 추가할 수도 있음.
  • 분산 아키텍처
    - 데이터는 여러 노드에 분산 저장되어 확장성과 고가용성을 제공
    - 클러스터 간 복제를 사용해, 두번째 클러스터가 핫 백업으로 작동할 수 있음
  • 쉬운 애플리케이션 개발
    Java, Python, PHP, JavaScript, Node.js, Ruby 및 기타 여러 다양한 언어에 대한 지원을 제공

 


 

관리 기능

Security - 사용자 별로 기능에 대한 적절한 액세스를 부여할 수 있음
- SSL/​TLS 암호화를 통해 노드 간, HTTP, Elastic Stack 클라이언트 간 통신 트래픽 전송을 보호할 수 있음
- IP 필터링을 통해 승인되지 않은 호스트의 클러스터 침입 또는 통신을 방지할 수 있음
- 모든 시스템과 사용자 활동 기록을 손쉽게 유지할 수 있도록 지원(감사 로그)
모니터링 클러스터 상태, 라이센스 만료 여부, 기타 메트릭 등 클러스터의 변경 사항에 대한 알림을 자동으로 받을 수 있음
경보 - 컨텍스트를 사용한 앱 내 경보 생성 가능
- Kibana 관리 탭 내의 경보 및 조치 섹션에 가서 중앙 위치에 있는 모든 경보를 조회하고 검색하고 필터링 가능
Elasticsearch SQL - 분산된 문서 저장소이기 때문에 한 비트도 건너뛰지 않고 수십억 줄의 데이터를 처리할 수 있음
- CLI, REST 엔드포인트, ODBC 또는 JDBC를 통해 SQL 쿼리를 전송하고 빠른 속도로 풀스텍 검색을 수행할 수 있음
- Elasticsearch SQL 쿼리 구문을 사용하여 Canvas에서 인포그래픽 스타일의 생생한 프레젠테이션 생성 가능

 

 


 

사용 사례

로그 및 이벤트 데이터 분석 시스템 로그, 애플리케이션 로그 등을 수집하고 분석하는 데 널리 사용
웹사이트 검색 웹 애플리케이션에서 사용자에게 검색 기능을 제공하는 데 사용
데이터 시각화 Kibana와 함께 사용하여 데이터를 시각적으로 분석하고 대시보드를 구성할 수 있음

 

 

 

 

 


 

 

 

 

 

 

 

Kibana

  • Elasticsearch와 함께 사용되는 오픈 소스 데이터 시각화 도구
  • 로그 데이터나 시계열 데이터의 시각화, 대시보드 생성, 데이터 분석에 사용
  • 히스토그램, 선형 그래프, 원형 차트, 열 지도, 내장 지리 공간적 지원과 같은 강력하고 사용하기 쉬운 기능을 제공

 


 

 

이점

  • 대화형 차트
    시간 창을 동적으로 드래그하고 특정 데이터 하위 집합을 확대하거나 축소하며 데이터에서 실천 가능한 인사이트를 추출하기 위해 보고서를 드릴다운할 수 있음
  • 매핑 지원
    데이터의 지리적 정보를 제일 위에 두고 결과를 지도에 시각화하는 계층화 작업을 원활하게 수행할 수 있음
  • 사전 구축된 집계 및 필터
    사전 구축된 집계 및 필터를 사용하여 히스토그램, 상위 N개 쿼리, 추세와 같은 다양한 분석을 실행할 수 있음
  • 쉽게 액세스 가능한 대시보드
    대시보드와 보고서를 쉽게 설정하고 다른 사람에게 공유할 수 있음
드릴다운
문제를 여럿으로 세분화하면서 분석하는 기법

 

 

 

 

 


 

 

 

 

 

Logstash

  • 오픈 소스 데이터 수집 및 처리 도구로, 주로 로그 데이터를 수집, 변환, 저장하는 데 사용
  • grok을 이용해 비구조적 데이터에서 구조를 도출하여 IP 주소에서 위치 정보 좌표를 해독하고, 민감한 필드를 익명화하거나 제외시키며, 전반적인 처리를 손쉽게 해줌

 


 

이점

  • 다양한 입력을 지원
     로그, 메트릭, 웹 애플리케이션, 데이터 저장소 및 다양한 AWS 서비스에서 모두 지속적으로 스트리밍되는 방식으로 손쉽게 수집할 수 있음
  • 데이터 이동 과정에서의 구문 분석 및 변환
    1. grok을 통해 비정형 데이터에서 구조 도출 
    2. IP 주소에서 위치 좌표 해독 
    3. PII 데이터의 익명화, 민감한 정보 필드 완전 제외 
    4. 데이터 소스나 형태, 스키마에 상관없이 전체적으로 손쉬운 처리

 

 

 

 

 


참고사이트

ELK 스택이란 무엇인가요?

AWS Elasticsearch란 무엇인가요?

 

 

 

 

728x90