01.엘라스틱 스택이란

deveopser·2022년 10월 24일

ElasticSearch

목록 보기
2/7

1.1 엘라스틱 스택의 구성요소

1) 엘라스틱 스택

  • 일반적인 빅데이터 파이프라인을 구성하기 위한 데이터 수집, 가공, 저장, 분석, 시각화에 필요한 모든 소프트웨어를 갖추고 있다.

2) 비츠와 로그스태시

  • 데이터를 수집하고 가공하는 역할을 맡음

3) 엘라스틱서치

  • 데이터를 저장하고, 분석하는 역할을 맡음

4) 키바나

  • 엘라스틱 서치에 저장된 데이터를 시각화하고 모니터링하는 역할을 맡음
    *필요에 따라서는 키바나를 제외한 엘라스틱 스택의 나머지 구성요소만으로도 개별적인 빅데이터 파이프라인의 일부로 사용될 수 있다.

1.1.1 엘라스틱서치: 분산 검색 엔진

1) 검색 엔진

  • 내부적으로 각 도큐먼트를 인덱싱하고 빠르게 검색하는 데 사용하는 기술로 우리는 검색 엔진을 이용해 서비스를 만들게 된다.

2) 엘라스틱서치

  • 모든 레코드를 JSON 도큐먼트 형태로 입력하고 관리함
  • 쿼리한 결과에 대해 일치하는 원본 도큐먼트를 반환한다.
  • 텍스트 외에도 숫자, 날짜, IP 주소, 지리정보 등 다양한 데이터 타입에 대해 최적화되어 있다.
  • 검색 엔진이면서 데이터베이스이기도 한다.
  • 일종의 NoSQL 데이터베이스라고 생각하면 훨씬 더 이해하기 편함

3) 엘라스틱서치의 장점
가) 텍스트 도규먼트의 경우 인덱싱 시점에 분석을 거쳐 용어 단위로 분해되고 역인덱스 사전을 구축한다.

  • 숫자나 키워드 타입의 데이터들은 엘라스틱서치 집계를 위해 집계에 최적화된 컬럼 기반 자료구조를 저장한다.
  • 최적화된 자료구조들을 바탕으로 병렬 처리나 분산 처리를 할 수 있다.
  • 충분한 크기의 엘라스틱서치 클러스터가 구성되어 있다면 데이터의 양과 무관하게 1초 이내의 응답 속도를 기대할 수 있다.
    나) NoSQL 제품보다 검색 기능과 성능이 뛰어남
  • 연관도(스코어링)에 따른 정렬
  • 검색어에 대한 유사도 스코어를 기반으로 한 정렬을 제공함
  • 복잡한 문자열 콘텐츠에서 검색을 수행할 때 효과적임
  • 다양한 스코어링 방법을 포함해 사용자가 정렬 방식을 다양하게 정의할 수 있다.
  • 아파치 루씬의 기능을 분산시스템으로 확장하며 성능, 유연성, 활용성 면에서 적극개선
    다) 엘라스틱서치 클러스터를 분산시스템으로 구성할 경우, 복수의 루씬 인스턴스를 병렬로 배치하고 분산 처리해 검색 속도를 무한히 확장할 수 있게 했다.
  • 노드 간 복제 기능을 통해 일부 노드가 다운되더라도 정상적으로 서비스를 지속할 수 있게 했다.
    라) 모든 통신을 REST API를 이용해 프로그래밍 언어와 무관하게 사용자가 쉽게 접근할 수 있습니다.

4) 엘라스틱서치의 단점
가) 저장공간이 크게 압축되지 않고 시스템 리소스를 많이 사용한다.
나) DSL쿼리를 채용하는데 JOIN쿼리가 사실상 어렵기 때문에 반정규화를 기본으로 모델링 해야 한다.
다) 인덱스가 불변의 자료구조이기 때문에 도규먼트를 수정하거나 삭제할 경우에 비용이 저렴하지 않다.

1.1.2 키바나: 시각화와 엘라스틱서치 관리 도구

1) 웹 브라우저나 curl 명령 등 친숙한 도구들을 이용해 기능을 활용할 수 있다.

  • REST API가 잘 설계된 제품이지만 복잡한 요청을 일일이 작성하면 불편합니다.
  • 하지만 키바나가 이문제를 해결해준다.

2) 엘라스틱 스택의 UI를 담당한다.
3) 대부분의 관리 기능, API를 실행할 수 있는 콘솔, 솔루션 페이지들, 그리고 스택의 각 구성요소들을 위한 모니터링 페이지 등이 키바나에 포함되어있다.
4) 화면배치도 쉽고, 실시간으로 업데이트할 수 있는 대시보드 기능이 있다.
5) 대시보드에서 실시간 모니터링이 가능하고 데이터 분석도 가능하다.
6) PPT만들듯 시각화를 구성할 수 있는 캔버스
7) 실시간으로 인덱싱되는 로그를 지속적으로 확인하고 검색할 수 있는 로그기능 제공
8) 애플리케이션의 성능 모니터링을 휘한 APM과 보안이벤트를 관제할 수 있는 SIEM 등 강력한 솔루션들이 포함되어 있다.
9) 키바나는 새로운 버전이 나올 때마다 많은 기능이 추가되는 편이다.

1.1.3 로그스태시: 이벤트 수집과 정제를 위한 도구

1) 데이터 수집과 가공 기능을 제공

  • 로그, 메트릭, 웹 애플리케이션 등 다양한 소스로부터 로그를 수집할 수 있다.
  • 필터 기능을 이용해 비정형이나 반정형 데이터를 분석하기 쉬운 형태로 정제가능
  • 엘라스틱서치 외에도 다양한 플랫폼으로 정제된 데이터를 내보낼 수 있다.
  • 형식에 무관하게 데이터를 동적으로 수집, 변환, 전송하는 구조로 되어 있다.
  • 비구조적인 데이터에서 구조를 도출하며, IP주소에서 위치 정보 좌표를 해독하고, 민감한 필드를 익명화하거나 제외시키는 등의 전반적인 작업을 쉽게 해준다.
  • 별도의 코딩 없이 간단한 설정만으로 로그 가공 기능
  • 커스텀 애플리케이션과 로그스태시를 조합해서 사용하는 경우도 있지만, 로그스태시만으로 구성하는 방식이 관리나 안정성 측면에서 장점이 많음
    2) 장점
  • 엘라스틱서치의 인덱싱 성능을 최적화하기 위해 배치 처리와 병렬 처리가 가능함
  • 영속적인 큐를 사용하여 현재 처리 중인 이벤트의 최소 1회 전송을 보장할 뿐만 아니라 유동적인 처리 방식으로 인해 수집 중인 데이터양이 급증하는 부하 상황에서도 안정성을 보장해줌
  • 공동체에서 유사한 요구사항을 해결한 다양한 사람들의 도움을 기대할 수 있음
  • 잘 알려진 제품들의 경우에는 이미 만들어진 플러그인이나 모듈을 활용할 수 있음

1.1.4 비츠: 엣지단에서 동작하는 경략 수집 도구

1) 로그스태시는 다양한 필터와 설정을 지원하는 만큼 무겁기 때문에 경량 수집도구인 비츠가 있다.
2) 각 비트는 로그 수집, 시스템 지표 수집 등 특정 목적에 최적화된 에이전트이다.
3) 가볍기로 유명한 고프로그래밍 언어로 작성되어있다.
4) 로그스태시 수준의 복잡한 이벤트 가공은 지원하지 않아 가볍다.
5) 각 서비스 호스트에 비교적 부담 없이 설치할 수 있다.
6) 각각의 장점을 활용하기 위해 비츠와 로그스태시를 혼합해 많이 사용한다.
7) 각 서비스 호스트의 정보를 수집하며. 로그스태시에서 이를 취합하고 가공해 엘라스틱서치로 전송하는 형태의 아키텍처가 많이 사용된다.

1.1.5 기타 솔루션

애플리케이션 성능 모니터링을 위한 APM, 보안 이벤트 분석을 위한 SIEM, 컨테이너나 다수의 서비스를 쉽게 모니터링하기 위한 인프라 모니터링 등의 솔루션이 포함되어 있다.

1.2 엘라스틱 스택의 용도

1.2.1 전문 검색 엔진

1) 전문

  • 단순한 문장부터 뉴스 기사나 논문 등의 다양한 글의 전체 내용을 의미함

2) 대상 도큐먼트가 많지 않다면 일반적인 관계형 DB의 LIKE 질의만으로도 충분히 검색이 가능하지만 도큐먼트 수가 조금만 늘어나도 인덱스의 도움이 없이 빠른 검색은 불가능에 가깝다.

3) 빠르고 정확하게 검색하기 위해 전문을 용어단위로 분석해 인덱싱해두고 이를 기반으로 검색을 수행하는 역인덱싱기법이 많이 활용된다.

4) 엘라스틱 스택은 쉽게 사용할 수 있게 온라인 문서를 제공

  • 특정단어를 검색하면 엘라스틱서치가 온라인 문서를 대상으로 검색 엔진을 통해 찾은 결과를 보여준다.
  • 엘라스틱 스택에는 용어 분석을 위한 다양한 언어별 분석기가 준비되어 있고, 유사도 스코어링을 위해서도 다양한 방법을 제공함

5) 엘라스틱서치에는 원문을 저장할 필요가 없기에 큰 용량을 차지하지는 않으면서도 빠른 섬색 성능을 기대할 수 있다는 장점이 있다.

6) 검색 엔진

  • 일반적인 도큐먼트 양이 다른 용도에 비해 많지 않기 때문에 상대적으로 작은 클러스터 크기로도 충분한 활용이 가능함
  • 레플리카 수를 늘려 동일 인덱스에 대한 검색 성능을 높일 수 있음

1.2.2 로그 통합 분석

1) 엘라스틱 스택은 여러 장비와 서비스에서 발생하는 로그들을 통합하고 검색하는 데 최적화된 솔루션이라고 할수 있음

  • 시스템과 호스트, 쿠버네티스, 아파치, 윈도우 같은 다양한 환경에서 생성되는 로그들을 빠르게 수집할 수 있고, 로그스태시는 다양한 필터를 통해 일원화된 형태로 가공해줌
  • 비츠를 사용하면 적은 리소스로 각 장비들의 로그들을 빠르게 수집할 수 있고,
  • 로그스태시는 다양한 필터를 통해 일원화된 형태로 가공해줌
  • 엘라스틱서치의 대용량 로그에 대한 빠른 인덱싱 성능과 텍스트 검색 능력은 여러 서비스 로그들을 통합해서 연관 분석을 지원함
  • 키바나의 로그 UI나 대시보드는 시계열로 발생하는 로그들을 직관적으로 실시간 모니터링할 수 있도록 도와줌

2) 로그 모니터링을 위한 엘라스틱 스택의 업무
가) 파일비트

  • 내장된 모듈을 이용해 별도의 설정 없이도 빠르게 로그를 수집할 수 있게 해줌
  • 파일비트의 모듈은 알려진 서비스들을 정제하기 위한 파이프라인 설정, 샘플 대시보드 등을 포함하소 있음
    나) 커스텀 애플리케이션에서 발생한 로그의 경우, 로그스태시의 필터 기능이나 엘라스틱서치의 수집 파이프라인 기능을 정제가 가능함
  • 패턴을 기반으로 원문을 가공해 반정형 텍스트 메시지로부터 정형화된 수치 등의 정보를 뽑아내어 인덱싱하면 훨씬 더 다양한 방식으로 로그 분석이 가능해짐
    다) 엘라스틱서치
  • 로그 원문의 빠른 검색 후 하이라이트가 가능함
  • 날짜, 수치 점위 조회, IP 대역 조회 등의 로그 분석시 큰 도움이 됨
  • 저장된 데이터들은 교차분석이나 연관 분석이 가능함
    (1) RDBMS와 다르게 엘라스틱서치는 인덱스 패턴을 이용해 한 번에 여러 인덱스에서 동시에 조회가 가능함
    (2) 복잡한 JOIN 쿼리 없이도 각기 다른 서비스에서 동시간대에 어떤 로그가 발생했는지 탐색하고 공통된 요소를 찾아 문제의 원인을 분석할 수 있게 해준다.
    (3) 비츠의 모듈을 사용할 경우, 엘라스틱에서 제공하는 ECS(Elastic Common Schema)구조에 맞추어 로그를 인덱싱함
    • 다른서비스들을 같은 스키마에 매핑함으로써 연관 분석을 용이하게 해줌

1.2.3 보안 이벤트 분석

1) SIEM(Security Information and Event Management), ESM(Enterprise Security Management) 솔루션

  • 조직 내에 속한 다양한 장비들로부터 보안 이벤트를 수집하고 분석할 수 있게 하려는 목적으로 만들어짐

2) 엘라스틱 SIEM

  • 비츠의 모듈을 이용해 어플리케이션, 엔드포인트, 인프라스트럭처, 클라우드, 네트워크 등 다양한 소스에서 수집한 이벤트를 기반으로 엔드포인트 활동, 인증 로그, DNS 트래픽, 네트워크 플로우에서 이상 징후, 불법적인 로그인 시도, 사용자 접근 패턴 등의 문제를 빠르게 찾아낼 수 있음

3) 엘라스틱 SIEM UI

  • 분석을 비롯한 고유한 탐지 규칙 관리 가능
  • 미리 빌드된 머시러닝 모델과 즉시 사용 가능한 알고리즘을 통해 알려지지 않은 위협도 밝혀낼 수 있음

1.2.4 애플리케이션 성능 분석

1) APM

  • 엘라스틱 스택의 어플리케이션 성능 모니터링 도구
  • 프로그래밍 언어별 에이전트를 통해 성능 지표 수집을 돕고 분석을 위한 UI 제공
  • 메트릭비트와 패킷비트를 사용하면 시스템을 비롯하여 연계된 다양한 서비스들의 성능 정보를 수집할 수 있게 도와줌
  • 다양한 경로로 수집된 정보들은 키바나에서 제공되는 UI를 통해 분석이 가능함
  • 컨테이너나 호스트 집합의 상태를 한눈에 확인할 수 있는 인프라 UI
  • 메트릭비트에서 모듈별로 제공하는 샘플 대시보드
  • 트랜잭션이나 오류 스택 트레이스 등을 빠르게 확인할 수 있는 APM UI
  • 인덱스 형태로 저장되어 일반적인 쿼리와 집계가 가능함
  • 키바나의 시각화와 대시보드 활용 가능
  • 사용자는 수집된 지표를 활용해 고유한 대시보드를 만들어 어플리케이션 특성에 따른 맞춤형 모니터링 가능
  • 로그 통합 분석과 사용할 경우, 문제 시점의 로그를 빠르게 확인하고 원인 파악 가능
  • Watcher, 머신러닝 등의 기능과 연계하면 장애나 이상 상황을 빠르게 파악하고 원인을 효과적으로 분석할 수 있음
  • 기본 제공 기능은 전문 솔루션에 비해 부족하지만 커스터마이징을 통해 최적화된 모니터링 솔루션을 구축할 수 있음
  • 제공 기능
  • 서비스 지도를 통한 서비스 연결 관계 파악
  • 트랜잭션의 분산 추적
  • 경보 기능을 사용한 즉각 대응
  • Java, node.js, PHP, .NET 같은 다양한 프로그래밍 언어 지원
  • 머신러닝을 사용한 비정상적인 응답 시간 탐지

1.2.5 머신러닝

  • 엘라스틱 스택에서 유료 라이선스를 구매할 경우, 사용할 수 있는 강력한 기능
  • 데이터를 엘라스틱서치에 넣은 다음에 비지도형 머신러닝 기법을 활용하여 데이터에서 패턴을 발견할 수 있음
  • 시계열 모니터링은 시간과 관련된 데이터에서 이상 징후를 탐지하고 과거 데이터를 기반으로 동향을 예측하게 도와줌
  • SIEM 통합, APM 통합, 로그 통합 부문에서 비정상적인 상황을 특별한 규칙 지정없이도 빠르게 발견할 수 있음

1.3 빅데이터 플랫폼의 일부로 동작하는 엘라스틱 스택

1.3.1 엔터프라이즈 데이터 버스인 카프카와 연동

1) 아파치 카프카

  • 분산 데이터 스트리밍 플랫폼
  • 대량의 데이터를 실시간으로 배포하는 데 최적화되어 있음

2) 카프카를 연계하여 비츠, 로그스태시, 엘라스틱서치와 통신하는 아키텍처

  • 비츠에서 수집한 각 장비의 이벤트를 카프카로 전송하여 이를 로그스태시로 다시 읽어들이거나 카프카에 저장된 다른 시스템의 이벤트를 엘라스틱서치로 읽어 들이는 등의 구성으로 사용됨
  • 카프카를 사용하면 엘라스틱서치의 인덱싱 성능이 순간적으로 충분하지 않거나 로그스태시나 엘라스틱서치의 불안정으로 정상적인 인덱싱이 불가능할 때도 데이터 유실이 방지됨
  • 타 시스템과 데이터 연계가 쉬워짐

1.3.2 하둡 생태계와 연동

엘라스틱 스택에서 es-hadoop 모듈을 사용하면 스파크에서 엘라스틱서치 API를 사용해 도큐먼트를 읽어 들이고 반대로 인덱싱하는 등 서로 상호작용할 수 있음

1.3.3 관계형 데이터 베이스와 연동

  • 로그 스태시는 JDBC 입력 플러그인, 필터 등 RDBMS와 연계할 수 있는 다양한 방법을 제공함

  • 기존의 RDBMS에 저장된 데이터를 인덱싱하거나 입력받는 이벤트에 정보를 주입하는 등 여러 용도로 사용됨

  • JDBC 입력 플러그인을 사용해 RDBMS에 저장된 데이터를 엘라스틱서치로 이전할 경우, RDBMS로 처리하기 어려운 집계도 빠르고 정확하게 처리함

  • 텍스트 데이터의 경우, 엘라스틱서치에서는 색인만 수행하고 원문을 저장하지 않게 설정하는 방식을 이용해 저장소 용량을 아껴 쓰면서 검색 엔진의 전문 검색 기능만 활용하는 경우도 있음

  • JDBC 필터를 사용할 경우, RDBMS에서 실 데이터를 불러와 매핑하는 용도로 이벤트 ID 형태로만 기록되는 정보를 활용할 수 있음

1.4 유사 제품과의 비교

1.4.1 엘라스틱서치의 유사 제품군

1) 엘라스틱서치와 그 밖의 데이터베이스 비교

2) 엘라스틱과 솔라(solr)
가) 엘라스틱

  • 스택의 다른 구성요소들의 도움을 받아 로그 분석, 모니터링, 위치 기반 데이터 분석과 시각화에 적합함
  • 월등히 많은 데이터 소스와 쿼리 DSL, 쿼리 파서를 지원하고 있어 데이터 수집과 분석에 유리함
  • 주키퍼(ZooKeeper)에 의존하지 않으므로 분산 환경 구축과 운영 측면에서 유리함
    나) 솔라(solr)
  • 루씬 기반
  • 정적 데이터를 처리하기에 적합함

1.4.2 로그스태시/비츠의 유사 제품군

1) 로그스태시와 비츠
가) 로그스태시

  • 상대적으로 무거움
  • 다양한 입력, 출력, 필터 플러그인을 갖추어 설정만으로 거의 모든 형태의 가공을 수행할 수 있음
    나) 비츠
  • 각 비트의 기능은 제한적인 대신 빠르고 가볍게 이벤트 수집 가능
    다) 로그스태시와 비츠를 조합하여 수집 대상으로부터 비츠를 이용해 빠르게 이벤트를 수집하고 로그스태시로부터 전달한 다음 가공을 거쳐 엘라스틱서치로 적재하는 방식으로 활용 가능

2) 플루언트디(Fluentd)

  • 로그스태시와 설정의 형태만 다를 뿐 기능상으로는 거의 동일한 역할을 수행함

1.4.3 키바나의 유사 제품군

1) 그라파나(Grafana)

  • 키바나보다 기능은 부족함
  • 데이터 소스로 엘라스틱서치 외의 다양한 시계열 데이터베이스를 활용할 수 있음
  • 실시간 모니터링에 초점을 둠

2) 태블로(Tableau)

  • 비즈니스 분석 도구
  • 엑셀이나 RDMBS, 기타 형식의 파일 등 주로 정적인 파일을 분석해 시각화할 때 많이 사용됨

3) 시각화 도구 비교

1.4.4 엘라스틱 스택의 유사 제품군

1) 스플렁크(Splunk)

가) 대용량 로그 분석을 위한 엔터프라이즈 제품
나) 엘라스틱 스택과 대응되는 제품
다) 전용 로그 수집기, 고유한 인덱싱 기술, 대시보드, 각 벤더들에서 제공하는 수많은 앱을 통해 로그를 쉽게 수집하고 시각화하는데 도움을 줌
라) 유료 옵션만 존재함
마) 장점

  • 제공되는 앱이 다양함
  • 수집기나 대시보드 등이 더 잘 만들어져 있음

출처: http://www.yes24.com/Product/Goods/103030516

profile
부끄럽게 공부하지말자.

0개의 댓글