본문 바로가기

카테고리 없음

ELK (ElasticSearch, Logstash, Kibana) Stack

728x90

ELK 스택이 유명한 이유는 무엇입니까?

ELK 스택은 로그 분석 공간에서의 필요를 채워주기 때문에 유명합니다. 여러분의 IT 인프라가 점점 더 퍼블릭 클라우드로 이동할수록, 해당 인프라와 서버 로그, 애플리케이션 로그, 클릭스트림 프로세스를 모니터링하기 위해 로그 관리와 분석 솔루션이 필요합니다. ELK 스택은 개발자와 DevOps 엔지니어가 오류 진단, 애플리케이션 성능, 인프라 모니터링으로부터 값진 인사이트를 얻을 수 있도록 적은 비용으로 단순하면서도 강력한 로그 분석 솔루션을 제공합니다.

- 출처 : https://aws.amazon.com/ko/opensearch-service/the-elk-stack/

 

 

 

 

데이터 처리 관련 오픈소스 솔루션인 엘라스틱 서치(Elasticsearch) + 로그스태시(Logstash) + 키바나(Kibana)를 같이 연동하여 사용한다는 의미로, ELK 혹은 ELK 스택(ELK Stack), 엘라스틱 스택(Elastic Stack)이라고 한다.

 

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

 

 

ELK 솔루션에서 Beats 추가되면서 ELK Stack이라고 불린다.

 

Beats : 서버에 에이전트로 설치하여 다양한 유형의 데이터를 ElasticSearch 또는 Logstash에 전송하는 오픈 소스 데이터 발송자다.

기존의 ELK에서의 큰 문제점 중 하나는 Logstash였다.데이터 수집의 역할을 맡고 있는 Logstash는, 원하는 형태로의 데이터 입출력 변환 기능까지 맡고 있었기 때문에 그 오버헤드가 컸다. 많은 사용자들의 요구사항을 받아들인 Elastic 회사는, 오로지 데이터의 수집만을 담당하는 경량화된 모듈 Beats를 도입했다.

 

 

 

 

  • 강력한 유연성과 호환성
    엘라스틱 서치, 로그스태시, 키바나는 각각 데이터의 쿼리(검색), 수집, 시각화를 담당한다. 용도별로 분리하여 발전하는 솔루션이기에 구조적 안정성은 물론 다른 시스템과도 유연한 호환성을 가진다.
  • 자유 스키마
    JSON 방식의 Key-Value 형식의 데이터를 사용하므로 형식에 자유롭다.
  • 인덱스 와일드카드 지원
    관계형 데이터베이스로 치면 테이블(Table)에 해당하는 개념인 인덱스(Index)의 Union 또는 Join이 경우에 따라 와일드 카드(*) 표기 하나로 끝날 수도 있다.
  • 확장(Scale-out) 가능 데이터베이스
    처음부터 확장을 고려하여 만들어졌기 때문에, 여러대의 서버를 엮어서 성능 향상을 기대할 수 있는 클러스터 방식을 구성할 때 관계형 데이터베이스보다 상대적으로 관련 정보에 쉽게 접근이 가능하다.
  • 데이터 처리 절차를 '레거시 코딩'보단 개별 설정으로 가능
    데이터 처리 절차를 프로그래밍 언어를 이용한 코딩으로 명시한다면, 향후 유지보수가 용이하지 않고 불필요한 종속성이 높아지는 문제가 있지만 로그스태시(Logstash)를 포함하는 ELK 스택 구성 시 유연성 확보가 가능하다.
  • 사전에 준비된 시각화 도구와 부가기능
    데이터를 시각화하여 보여주기 위한 사용자 인터페이스(UI)를 내보낼 프로그램을 따로 작성하지 않아도, 이미 사전에 준비된 시각화 도구를 가진 키바나(Kibana)가 마우스 몇번 조작하면 거진 다 알아서 해준다. 그 외 데이터베이스 관리자를 위한 부가기능이 포함되어 있다.
  • 실시간 데이터 처리
    메시지 큐(Message Queue, MQ)와 결합하면 강력한 실시간(Realtime) 데이터 수집 및 처리 시스템이 된다.
  • 엘라스틱 서치의 버전 별 벌크(Bulk) 방법 차이를 완화엘라스틱 서치의 벌크(Bulk)는 관계형 데이터베이스에서 삽입(Insert)에 해당한다. 프로그래밍으로 직접 구현할 경우 엘라스틱 서치 버전 별 벌크 방법의 차이가 크기 때문에, 인터넷에 떠돌아다니는 튜토리얼만 보고 진행하기에는 오래된 자료도 많아 무리가 따를 수 있다. 로그스태시(Logstash)로 엘라스틱 서치를 다룬다면 이런 걱정은 하지 않아도 된다.
728x90
LIST