[ELK] ELK Stack 이란? 소개, 정의

holidenty·2021년 5월 14일
7

ELK

목록 보기
1/1
post-thumbnail

#    로그 수집 기술


로그 수집 기술이란 무엇일까?

나는 회사에서 일을 하기 전까지는 로그 수집에 대한 지식도, 관심도 가져본 적이 없다.

이전까지는 로그 기록에 대한 필요성도 느끼지 못했고, 그 자체도 많이 낯설었기 때문이다.
(어차피 개발하는 과정에서는 에러가 기본이기 때문이다.)

하지만 완성된 시스템을 안정적으로 운영하는 업무를 수행하다 보면, 로그 수집 기술만큼 필수적인게 없다는 생각이 든다.

만약 운영하고 있는 시스템에 장애가 발생한다면, 로그를 분석함으로써 발빠르게 대응할 수 있기 때문이다.

개발기야 프로젝트에 관계된 소수의 개발자들끼리 지지고 볶는 거지만, 운영기는 다르다.

운영기는 실제로 사용되는 서비스이기 때문에 짧은 몇분 몇초의 장애에도 정말 속이탄다.

내가 운영 업무를 진행하는 시스템에서도 이를 위해 로그 수집+모니터링 시스템만 3~4개를 사용하고 있다.

시스템이야 널리고 널렸고 회사마다 사용하는 것의 차이는 있겠지만,

어쨋든 IT 업계에서 개발 직군으로 일하게 된다면 반드시 마주치게 되고 익숙해져야 할 것이 이 로그 관련 기술이다.

이번 글에서는 그런 기술 중에서도 꽤나 트렌디하고 핫한 ELK 스택에 대해 알아보려고 한다.


#    ELK Stack 이란?


1.   ELK Stack의 구성 원리

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

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

물론 세 모듈은 각자의 독립된 기술이기 때문에 필요에 따라 일부만 써도 된다.

하지만 서로 호환이 잘되고 합쳤을 때 시너지가 좋기 때문에 같이 구축된다.

세 기술을 같이 쓰기 때문에 Stack 이라고 부르며, 일반적으로 구성되는 형태는 다음과 같다.

  1. Data Processing (Logstash)
    • 서버 내의 로그, 웹, 메트릭 등 다양한 소스에서 데이터를 수집하여 입력
    • 데이터 변환 및 구조 구축
    • 데이터 출력 및 송신
  1. Storage (Elasticsearch)
    • 데이터 저장
    • 데이터 분석
    • 데이터 관리
  1. Visualize (Kibana)
    • Dashboard를 통한 데이터 탐색
    • 팀원들과 공유 및 협업하는데 사용 가능
    • 엑세스 제어 (Access Control) 사용 가능

하지만 각자의 모듈을 유연하게 대체할 수 있는 만큼, 실제 구축되는 형태는 다양하다.

2.   ELK Stack의 장점

정말 간단하게 썼지만, ELK가 뭔지에 대해서는 감은 잡혔다.

매년 쏟아져 나오는 IT 기술, 그리고 그걸 줄자 대놓고 서로 장단점 비교하는게 중요한 IT 업계.

보통 그 다음으로 궁금해하는건.. "그래서 이게 왜 좋은건데? 뭐가 다른데?" 이다.


  •   가격

    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를 도입했다.


지금까지 로그수집 및 모니터링 기술인 ELK에 대해 간단히 알아봤다.

다음 글에서는 그 ELK를 직접 구축하는 과정에 대해서 알아본다.

profile
IT 지식 공간

0개의 댓글