[ELK] ELK Stack 기본 개념

Q·2023년 3월 3일
1

ELK

목록 보기
1/10

ELK Stack 이란?

1. ELK Stack의 구성 원리

ELK는 위 그림처럼 세 가지 기술로 구성된다.

  • Elasticsearch 로그 저장 및 검색
  • Logstash 로그 수집 엔진
  • Kibana 로그 시각화 및 관리

1. Data Processing (Logstash)

  • 서버 내의 로그, 웹, 메트릭 등 다양한 소스에서 데이터를 수집하여 입력
  • 데이터 변환 및 구조 구축
  • 데이터 출력 및 송신
    L = Logstash
    • 다양한 소스로부터 데이터를 수집하고 전환하여 원하는 대상에 전송할 수 있도록 하는 오픈 소스 데이터 수집/변환 도구
    • 사전 구축된 필터와 200개가 넘는 플러그인에 대한 지원으로 데이터 원본이나 유형에 관계 없이 데이터 수집 가능
    • 다양한 소스(DB, csv 등)의 로그 또는 트랜잭션 데이터를 수집, 집계, 파싱하여 Elasticsearch로 전달

2. Storage (Elasticsearch)

  • 데이터 저장
  • 데이터 분석
  • 데이터 관리
    E = Elasticsearch
    • Apache Lucene에 구축되어 오픈 소스로 배포된 검색 및 분석 엔진
    • JSON 기반의 분산형 검색 및 분석 엔진
    • Logstash로부터 받은 데이터를 검색 및 집계를 하여 필요한 관심 있는 정보를 획득

3. Visualize (Kibana)

  • Dashboard를 통한 데이터 탐색
  • 팀원들과 공유 및 협업하는데 사용 가능
  • 엑세스 제어 (Access Control) 사용 가능
    K = Kibana
    • 로그 및 이벤트 검토에 사용하는 데이터 시각화 및 탐색 도구
    • Elasticsearch의 빠른 검색을 통해 데이터를 시각화 및 모니터링
    • 확장형 사용자 인터페이스로 데이터를 구체적으로 시각화(≒ oracle db의 sqlplus와 흡사한 기능)

2. ELK Stack의 장점

- 가격

  • ELK는 Elastic이라는 회사에서 제공하는 오픈소스이다.
  • 별도로 AWS EC2 등의 인스턴스에 사용한다면 관련 비용이 들어가긴 하겠지만,
  • ELK 자체로만은 무료이기 때문에 다른 시스템에 비해 가격적인 측면에서 장점을 가진다.

- 접근성 & 사용성

  • ELK는 오픈소스를 내려받아 설치하는 것으로 구축이 완료된다.
  • 그 외의 별도의 추가적인 개발 과정이 필요없기 때문에 접근성이 뛰어나다.
  • 또 그 사용이 다른 유사 시스템들에 비해 쉬운 편이다.

- 속도

  • ELK중 데이터 보관 및 분석 역할을 담당하는 Elasticsearch는 거의 실시간 (Real-Time)에 가깝게 데이터를 처리할 수 있다.

- 유연성

  • ELK는 각자의 기능을 담당하는 세가지의 모듈은 붙여서 만든다.
  • 그렇기 때문에 그 기능만 담당할 수 있다면 얼마든지 모듈을 유연하게 변경할 수 있다.
    예를 들어서, 굳이 Logstash를 쓰지 않아도 데이터 수집 역할만 할 수 있다면 경우에 따라 다른걸로 대체가 가능하다.

3. ELK의 변화, 최근 동향

ELK는 트렌디해 보이지만 생각보다 그 역사가 길다.
꾸준히 관심을 받으며 Elastic 회사는 ELK의 세가지 모듈을 발전시키는 것 외에도, 크게 두 가지 변화를 시도했다.

  • Beats 의 도입


    기존의 ELK에서의 큰 문제점 중 하나는 Logstash였다.
    데이터 수집의 역할을 맡고 있는 Logstash는, 원하는 형태로의 데이터 입출력 변환 기능까지 맡고 있었기 때문에 그 오버헤드가 컸다.

    많은 사용자들의 요구사항을 받아들인 Elastic 회사는, 오로지 데이터의 수집만을 담당하는 경량화된 모듈 Beats를 도입했다.

    Beats는 한 가지를 이르는 말이 아니며 위와 같이 수집하고자 하는 데이터의 유형별로 다른 모듈이 존재한다.

  • Cloud 기반의 Elasticsearch 도입

    최근 IT 업계에서 제일 핫한 분야는 아무래도 클라우드가 아니지 싶다.
    큰 규모의 회사들은 기존 On-Premise 기반의 서비스들을 클라우드 기반으로 마이그레이션하기 위해 발빠르게 움직이고 있다.

    ELK 또한 이런 흐름에 맞게 Cloud 기반의 Elasticsearch를 도입했다.

4. Filebeat를 도입한 최근 ELK

마지막으로 Filebeat를 도입한 최근 ELK 구조를 알아 보겠다

  • 로그를 생성하는 서버들에 Filebeat를 설치하고, 로그를 집계할 서버에 ELK를 설치한다.
  • Filebeat에서 LogStash로 로그를 전송하고 LogStash에서 한번 필터링을 거친 로그들이 ElasticSearch에 저장된다.
  • 저장 된 로그는 Kibana를 통해서 시각화하여 볼 수 있다.

참고

profile
Data Engineer

0개의 댓글