ELK 기본 개념

kangking·2024년 9월 9일

ELK

목록 보기
1/2

ELK

ELK는 ElasticSearch, Logstash, Kibana를 함께 사용하는 방법을 일컫는 용어이다.

이 3가지 툴은 검색 및 저장, 로그 수집 및 가공, 시각화 하는데 각각 특화 되어있어 다수의 서버를 통해 제공되는 현대 SW서비스에서 장애 대응 및 유지 보수, 개발 등 전 단계에서 유용하게 사용되고 있다.

ELK의 구성요소

  1. 대용량 데이터를 빠르고 효율적으로 분석할 수 있도록 설계된 분산형 검색 엔진

    • 인덱싱

    • 검색 알고리즘

    • 분산 처리

    • 데이터 분석

  2. Logstash

  3. Kibana

ELK 아키텍처

  • 각 서버에서 수집된 log데이터가 Logstash에 수집된다.

  • Logstash는 수집된 데이터를 구조화하고 ES에 저장한다.

  • ES는 자체 자료구조와 NoSQL이라는 특성을 통해 저장된 데이터의 빠른 검색 및 분석기능을 제공한다.

  • Kibana가 ES의 검색기능을 이용하여 저장된 데이터를 가져와 시각화한다.

ELK vs ELK Stack

결론적으로 둘의 차이는 Beats의 유무이다.

기존 ELK에서는 Logstash가 로그를 수집하고 구조화 하는등 작업에 오버헤드가 여지가 있었다.

이를 개선하기 위해 고안된 방법이 Beats로, 수집 대상 서버에 설치되어 수집 대상 로그에 맞춘 여러 타입의 Beat를 구조화하고 이를 Logstash나 ES에 전송하는 과정을 수행함으로써 ELK 스택의 강력한 퍼포먼스를 돕는다.

  • ELK Stack 아키텍처

ELK Stack의 장단점

장점

  • 강력한 검색 및 분석기능(ES)

  • 실시간 로그 수집 및 시각화를 통한 장애 대응 및 성능 분석의 용이함

  • 수평 확장이 가능해 데이터 증가 시 용량을 늘릴 수 있음

  • 오픈소스

단점

  • 초기 설정과 관리의 복잡함(4가지 도구에 대한 초기 설정과 관리가 필요)

  • 메모리와 CPU자원을 많이 소모하는 경향이 있어 관리에 주의가 필요함

  • 대량의 데이터를 인덱싱할 때 성능저하 가능성 및 스토리지 비용 발생 가능성

  • 무료 버전에서의 기본 보안기능 제한

엔진이란?

특정 작업이나 기능을 수행하는 핵심 구성요소, 또는 프로그램 모듈을 의미하며, 복잡한 시스템 내에서 중요한 역할을 담당한다.

  • 게임엔진:
    복잡한 물리법칙을 계산하고 게임 제작과 관련된 연산기능이 내재된 프로그램(Unitiy 등)

  • 검색엔진:
    검색에 필요한 각종 알고리즘 및 기능들이 내재된 프로그램

profile
하루하루 의미있게

0개의 댓글