검색에어 대한 유사도 스코어를 기반으로 한 정렬을 제공 -> 복잡한 문자열 컨텐츠에서 검색할 때 효과적
분산시스템
노드 간 복제 기능
REST API 이용 => 별도의 드라이버 라이브러리가 없어도 됨
단점
시스템 리소스를 많이 사용
DSL 쿼리 사용 => JOIN 어려우므로 반정규화를 기본으로 모델링이 필요함
인덱스가 불변의 자료구조 => 수정 및 삭제의 비용이 큼
키바나
시각화와 엘라스틱서치 관리 도구
로그스태시
이벤트 수집과 정제를 위한 도구
데이터 수집과 가공 기능 제공
분석하기 쉬운 형태로 정제 및 다양한 플랫폼으로 내보낼 수 있음
엘라스틱서치의 인덱싱 성능을 최적화 하기 위한 배치처리와 병렬처리 가능
영속적 큐를 사용하여 이벤트의 처리 최소 1회 전송 보장
부하 상황에서 안정성을 보장
비츠
엣지단에서 동작하는 경량 수집 도구
엘라스틱스택의 용도
전문 검색 엔진
용어단위로 분석해 인덱싱하며 이를 기반으로 검색을 수행하는 역인덱싱 기법이 활용됨
로그 통합 분석
패턴을 기반으로 원문을 가공해 정형회된 수치를 추출하여 인덱싱하여 다양한 방식의 로그분석에 활용됨
손쉬운 교차 분석이나 연관 분석이 가능 => 인덱스 패턴을 이용해 한번에 여러 인덱스에서 동시에 조회 가능
보안 이벤트 분석
애플리케이션 성능 분석
머신 러닝
차별점
근본은 검색엔진이기 때문에 빠르게 검색 및 집계하는데 최적화 => 더 많은 리소스 사용 => 일반 데이터베이스로 사용하기엔 무리가 잇음
저장된 데이터를 수정, 삭제하는 것은 비효율적 => 이미 발생한 데이터는 변하지 않는 시계열 데이터 유형을 다루기에 좋음
시계열 데이터란? 시계열 데이터란 일정한 시간동안 수집 된 일련의 순차적으로 정해진 데이터 셋의 집합
schema 자동 생성
인터페이스? REST API
샤딩 분산저장
다양한 데이터 유형에 대한 빠른 검색/집계
트랜잭션, JOIN 미지원
스터디 후기
ELKStack을 DB처럼 사용하지 말라는 얘기는 다른 회사 차원에서 나오는 얘기인 듯 싶다. 기존에 토이 플젝을 하면서 ELKStack을 로그를 저장하는 DB처럼 사용한 것이 아쉬웠었는데, 이러한 방식으로 사용하는 경우가 종종 있는 듯 싶다.
filebeat, logstash를 elasticsearch가 아닌 다른 것들과 연동하여 사용하는지도 궁금했는데, 사용할 수는 있으나 연동 측면(사용성?!) 등등에서 대부분 elasticsearch를 사용한다.
데이터 저장 기간 등에 대한 이야기도 나왔는데, 이 부분은 책을 끝까지 읽어봐야할 것 같다. DB에서도 데이터를 어떠한 주기로 관리하는지 영구 저장하는지 궁금했는데 elasticsearch가 아닌 RDB는 어떻게 관리하는지 좀 궁금하다.
보통 인프라 팀이 있는 경우, elasticsearch에 대한 샤드?! 클러스터링 관리는 해주는 듯 싶다. 이 부분도 elasticsearch가 어떻게 노드 관리가 되는지까지 읽어봐야 좀 더 이해되지 않을까 싶다.
로그 관리를 보면 대부분 그라파나, 프로메테우스로 시각화를 하는 경우가 많다고 생각했다. 키바나를 사용하여 시각화하는 것과 어떤 차별점이 가지는지 좀 궁금했다. 보통 시계열 데이터(로그 등)에 대해서는 그라파나를 통해 시각화를 하는 것 같고, 키바나는 로그성이 아닌 트랜잭션이나 데이터 조합?!, 쿼리 등등을 해줄 수 있는 장점이 있다. 모두 시각화도구이기는 하나 시각화해주는 특성이 조금 다른데 초점이 맞춰져 있고 목적이 다른데 있는 도구라는 생각이 들었다.
2장은 윈도우 설치라서 elasticstack 설치를 안 했는데, 3장 이후 실습 하려면 환경구성이 필요하겠다!