Elasticsearch는 자체적으로도 좋은 검색 및 분석 엔진이지만, 다양한 데이터를 Logstash를 통해 추출/가공하고, Beats를 통해 전송하며, Kibana를 활용해 시각화함으로써 Elastic Stack의 핵심 구성 요소들과 유기적으로 결합됩니다. 이로써 데이터의 수집부터 분석, 시각화까지의 전체 파이프라인이 통합되어, 보다 강력한 엔드 투 엔드 파이프 라인을 완성할 수 있습니다.
Beats
Beats는 다양한 외부 시스템에서 데이터를 수집하여 Elasticsearch로 전송하는 단일 목적 데이터 전송 도구(데이터 수집기)입니다. Filebeat, Metricbeat, Heartbeat 등 다양한 유형의 Beats를 통해 데이터를 수집할 수 있으며, 각 Beats는 특정한 목적에 맞춰 설계되어 있습니다. 예를 들어, Filebeat는 파일 기반 전송을 위해, Metricbeat는 시스템 성능 데이터(운영 체제 메모리, CPU 등)를 수집하는 데 사용됩니다. Beats 에이전트는 서버에 설치되어 데이터를 원본에서 수집하고, 이를 Elasticsearch으로 전송하는 역할을 합니다.
Logstash
Logstash는 다양한 형태의 데이터를 수집·처리한 후, 여러 대상으로 전송하는 데이터 처리 파이프라인 도구입니다. 파일, HTTP, JMS, S3, Kafka 등 수십 가지의 소스와 목적지를 지원하며, 수집한 데이터를 필터링, 변환, 강화하여 더욱 구조화된 형태로 만들어 줍니다. 파이프라인 아키텍처를 채택하고 있어, 수집된 모든 이벤트는 설정된 규칙에 따라 구문 분석 및 처리 과정을 거치게 됩니다. 이를 통해 데이터는 보다 정제되고 분석 및 검색에 최적화된 형태로 Elasticsearch 등으로 전송되어 검색 및 분석에 활용됩니다.
Kibana
Kibana는 쿼리 실행, 대시보드 구성, 시각화(그래프, 차트) 등 다양한 기능을 제공하는 다목적 웹 기반 콘솔로, Elasticsearch 데이터를 직관적으로 탐색하고 시각화할 수 있도록 도와줍니다. 드롭다운 및 집계 기능을 활용해 복잡한 쿼리 없이도 데이터를 시각화할 수 있으며, 실시간 모니터링에도 유용합니다. 하지만 Kibana 외에도 REST 클라이언트를 통해 직접 API를 호출할 수 있습니다. 예를 들어 Postman이나 각 언어의 클라이언트 라이브러리(Java, Python 등)를 사용해 Elasticsearch에 요청을 보낼 수 있습니다.