Elastic search
Elasticsearch
Elasticsearch는 Apache Lucene( 아파치 루씬 ) 기반의 Java 오픈소스 분산 검색 엔진입니다.
Elasticsearch를 통해 루씬 라이브러리를 단독으로 사용할 수 있게 되었으며,
방대한 양의 데이터를 신속하게, 거의 실시간( NRT, Near Real Time )으로 저장, 검색, 분석할 수 있습니다.
Elasticsearch 사용처
Elasticsearch은 다양한 사용 사례에 이용될 수 있습니다.
-
애플리케이션 검색
-
웹사이트 검색
-
엔터프라이즈 검색
-
로깅과 로그 분석
-
인프라 메트릭과 컨테이너 모니터링
-
애플리케이션 성능 모니터링
-
위치 기반 정보 데이터 분석 및 시각화
-
보안 분석
-
비즈니스 분석
Elasticsearch 작동방식
로그, 시스템 메트릭, 웹 애플리케이션 등 다양한 소스로부터 원시 데이터가 Elasticsearch로 흘러들어갑니다.
데이터 수집은 원시 데이터가 Elasticsearch에서 색인되기 전에 구문 분석, 정규화, 강화되는 프로세스입니다.
Elasticsearch에서 일단 색인되면, 사용자는 이 데이터에 대해 복잡한 쿼리를 실행하고 집계를 사용해 데이터의 복잡한 요약을 검색할 수 있습니다.
Kibana에서 사용자는 데이터를 강력하게 시각화하고, 대시보드를 공유하며, Elastic Stack을 관리할 수 있습니다.
출처 https://www.elastic.co/kr/what-is/elasticsearch
Elasticsearch 인덱스
- Elasticsearch 인덱스는 서로 관련되어 있는 문서들의 모음
Elasticsearch는 JSON 문서로 데이터를 저장합니다.
Elasticsearch는 반전된 인덱스라고 하는 데이터 구조를 사용하는데, 이것은 아주 빠른 전체 텍스트 검색을 할 수 있도록 설계된 것입니다.
반전된 인덱스는 문서에 나타나는 모든 고유한 단어의 목록을 만들고, 각 단어가 발생하는 모든 문서를 식별합니다.
Logstash 사용처
데이터를 집계하고 처리하여 Elasticsearch 로 전송하는 역할
서버 사이드 오픈 소스 데이터 처리 파이프라인으로 사용자는 이를 이용해
다양한 소스에서 동시에 데이터를 수집하고, 이를 강화하고 변환한 다음, Elasticsearch에서 색인되도록 할 수 있습니다.
Kibana 사용처
시각화 및 관리 도구로서, 실시간 히스토그램, 선 그래프, 파이 차트, 지도 등을 제공합니다
Elasticsearch를 사용하는 이유
빠른 속도
거의 실시간 검색 플랫폼입니다. 이것은 문서가 색인될 때부터 검색 가능해질 때까지의 대기 시간이 아주 짧다는 뜻입니다. 이 대기 시간은 보통 1초입니다.
분산적
샤드라고 하는 여러 다른 컨테이너에 걸쳐 분산되며, 이 샤드는 복제되어 하드웨어 장애 시에 중복되는 데이터 사본을 제공합니다
광범위한 기능
속도, 확장성, 복원력뿐 아니라, Elasticsearch에는 데이터 롤업, 인덱스 수명 주기 관리 등과
같이 데이터를 훨씬 더 효율적으로 저장하고 검색할 수 있게 해주는 강력한 기본 기능이 다수 탑재
데이터 수집, 시각화, 보고를 간소화
데이터의 실시간 시각화를 제공하며, UI를 통해 애플리케이션 성능 모니터링(APM), 로그, 인프라 메트릭 데이터에 신속하게 접근가능
Reference
https://www.elastic.co/kr/what-is/elasticsearch