Elastic Stack
원본 보기Elastic Stack
Elastic Stack은 Elasticsearch, Kibana, Elastic Agent, Logstash 등과 같은 오픈소스 제품들의 모음으로, 대규모 데이터를 수집, 저장, 검색 및 시각화하기 위해 함께 동작합니다. 이 페이지는 각 구성 요소를 설명하고 Elastic 배포 전반에서 이들이 어떻게 함께 작동하는지 설명합니다.
모든 Elastic 배포 및 프로젝트는 동일한 오픈소스 기반을 공유합니다:
- Elasticsearch: 인덱싱, 쿼리 및 분석을 처리하는 분산 데이터 저장소 및 검색 엔진.
- Kibana: 대시보드, 시각화 및 관리 도구가 있는 사용자 인터페이스.
사용 사례에 따라 Elasticsearch 및 Kibana와 함께 작동하는 더 많은 제품을 설치해야 할 수 있습니다(Elastic Stack 또는 ELK라고 함). 예를 들어:
- Elastic Agent: 데이터를 수집하고 Elasticsearch로 전달하는 경량 데이터 전송 도구.
- Logstash: 더 복잡한 ETL(추출, 변환, 로드) 파이프라인에 주로 사용되는 데이터 수집 및 변환 엔진.
Elastic Stack은 대규모 데이터 수집, 저장 및 탐색을 위한 제품들을 포함합니다:
이러한 제품들이 어떻게 함께 작동하는지 알아보려면 계속 읽어보세요.
모든 배포에는 Elasticsearch가 포함됩니다. Elasticsearch는 모든 Elastic 배포 및 솔루션의 중심에 있는 분산 검색 및 분석 엔진, 확장 가능한 데이터 저장소, 벡터 데이터베이스입니다. Elasticsearch 클라이언트를 사용하여 일반적인 프로그래밍 언어로 데이터에 직접 액세스할 수 있습니다.
Elasticsearch는 모든 유형의 데이터에 대해 거의 실시간 검색 및 분석을 제공하는 데이터 저장소이자 벡터 데이터베이스입니다. 구조화된 텍스트나 비구조화된 텍스트, 시계열(타임스탬프) 데이터, 벡터, 지리공간 데이터 등 어떤 데이터든 Elasticsearch는 빠른 검색을 지원하는 방식으로 효율적으로 저장하고 인덱싱할 수 있습니다. 또한 여러 쿼리 언어, 집계, 그리고 데이터 쿼리 및 필터링을 위한 강력한 기능들을 포함하고 있습니다.
Elasticsearch는 탄력적이고 확장 가능한 분산 시스템으로 구축되었습니다. 노드라고 불리는 하나 이상의 서버로 구성된 클러스터로 실행됩니다. Elasticsearch의 기본 저장 단위인 인덱스에 데이터를 추가하면, 데이터는 샤드라고 하는 조각들로 나누어져 클러스터 내 여러 노드에 분산됩니다. 이러한 아키텍처를 통해 Elasticsearch는 대용량 데이터를 처리할 수 있으며, 노드가 실패하더라도 데이터가 계속 사용 가능하도록 보장합니다. Elastic Cloud Serverless를 사용하는 경우, 고유한 Search AI Lake 클라우드 네이티브 아키텍처를 가지고 있으며 노드, 샤드, 복제본을 자동으로 관리해줍니다.
Elasticsearch는 또한 예측을 수행하고, 추론을 실행하며, LLM과 더 빠르게 통합할 수 있게 해주는 AI 기반 기능과 내장된 자연어 처리(NLP) 모델을 포함하고 있습니다.
Elasticsearch의 거의 모든 측면은 REST API를 통해 프로그래밍 방식으로 구성하고 관리할 수 있습니다. 이를 통해 반복적인 작업을 자동화하고 Elastic 관리를 기존 운영 워크플로우에 통합할 수 있습니다. 예를 들어, API를 사용하여 인덱스를 관리하고, 클러스터 설정을 업데이트하며, 복잡한 쿼리를 실행하고, 보안을 구성할 수 있습니다. 이러한 API 우선 접근 방식은 Infrastructure-as-Code 관행을 가능하게 하고 대규모 배포를 관리하는 데 기본이 됩니다.
Elasticsearch 데이터 저장소, 분산 아키텍처, API에 대해 자세히 알아보세요.
클라이언트는 Java, Ruby, Go, Python과 같은 인기 언어에서 Elasticsearch로 들어오고 나가는 API 요청과 응답을 관리하는 편리한 메커니즘을 제공합니다. 공식 클라이언트와 커뮤니티에서 기여한 클라이언트 모두 사용할 수 있습니다.
Elasticsearch 클라이언트에 대해 자세히 알아보기.
Kibana를 사용하여 Elasticsearch에 저장된 데이터를 탐색, 관리 및 시각화하고 Elastic Stack의 구성 요소를 관리하세요.
Kibana는 모든 Elastic 솔루션과 Serverless 프로젝트를 위한 사용자 인터페이스를 제공합니다. 데이터를 시각화하고 분석하며 Elastic Stack을 관리하고 모니터링하는 강력한 도구입니다. Elasticsearch를 Kibana 없이 사용할 수도 있지만, 대부분의 사용 사례에는 Kibana가 필요하며 Elastic Cloud Serverless를 포함한 일부 배포 유형을 사용하여 배포할 때 기본적으로 포함됩니다.
Kibana를 사용하면 다음을 수행할 수 있습니다:
- Discover를 사용하여 원시 데이터를 대화식으로 검색하고 필터링할 수 있습니다.
- 드래그 앤 드롭 환경을 제공하는 Lens와 같은 도구를 사용하여 차트, 그래프, 메트릭과 같은 사용자 정의 시각화를 구축할 수 있습니다.
- 시각화를 대화형 대시보드로 조합하여 정보에 대한 포괄적인 개요를 얻을 수 있습니다.
- 지리공간 분석을 수행하고 대시보드에 지도를 추가할 수 있습니다.
- 중요한 데이터 이벤트에 대한 알림을 구성하고 알림 및 케이스로 사건을 추적할 수 있습니다.
- 프로세서, 파이프라인, 데이터 스트림, 훈련된 모델 등과 같은 리소스를 관리할 수 있습니다.
각 솔루션이나 프로젝트 유형은 내장 대시보드와 AI 어시스턴트와 같은 Kibana의 사용자 정의 기능에 대한 액세스를 제공합니다.
Kibana는 또한 Elasticsearch API에 직접 요청을 보내고 응답을 확인할 수 있는 대화형 방법을 제공하는 Console과 같은 쿼리 도구를 갖고 있습니다. 안전한 자동 액세스를 위해 스크립트와 애플리케이션을 인증하는 API 키를 생성하고 관리할 수 있습니다.
Kibana로 데이터 탐색 및 분석에서 자세히 알아보세요.
검색하고, 시각화하고, 인사이트에 활용하기 전에 먼저 데이터를 Elasticsearch에 가져와야 합니다. 데이터 수집 방법은 여러 가지가 있습니다. 최적의 접근 방식은 데이터 유형과 특정 사용 사례에 따라 달라집니다. 예를 들어, Elastic Agent로 로그, 메트릭 및 기타 유형의 데이터를 수집하고 전송하거나 APM으로 상세한 성능 정보를 수집할 수 있습니다. 데이터가 저장되기 전에 변환하고 보강하려면 Elasticsearch ingest 파이프라인이나 Logstash를 사용할 수 있습니다.
어떤 수집 구성 요소를 사용할지 결정하려고 하시나요? Ingest: Bring your data to Elastic과 Ingest tools overview를 참조하세요.
Elastic Agent는 호스트에 로그, 메트릭 및 기타 유형의 데이터에 대한 모니터링을 추가하는 단일하고 통합된 방법입니다. 또한 보안 위협으로부터 호스트를 보호하고, 운영 체제에서 데이터를 쿼리하며, 원격 서비스나 하드웨어에서 데이터를 전달할 수 있습니다. 각 에이전트는 새로운 데이터 소스, 보안 보호 등을 위한 통합을 추가할 수 있는 단일 정책을 가지고 있습니다. 또한 Elastic Agent 프로세서를 사용하여 데이터를 정제하거나 보강할 수 있습니다.
모든 Elastic Agent의 상태를 모니터링하고, 에이전트 정책을 관리하며, Elastic Agent 바이너리나 통합을 업그레이드하려면 Fleet의 중앙 관리를 참조하세요.
APM은 애플리케이션 성능 모니터링 시스템입니다. 들어오는 요청에 대한 응답 시간, 데이터베이스 쿼리, 캐시 호출, 외부 HTTP 요청 등에 대한 상세한 성능 정보를 수집하여 소프트웨어 서비스와 애플리케이션을 실시간으로 모니터링할 수 있게 해줍니다. 이를 통해 성능 문제를 신속하게 정확히 파악하고 해결할 수 있습니다.
OpenTelemetry는 텔레메트리 데이터를 수집, 처리, 내보내기 위한 벤더 중립적인 관측 가능성 프레임워크입니다. Elastic은 Cloud Native Computing Foundation(CNCF)의 멤버이자 OpenTelemetry 프로젝트의 활발한 기여자입니다.
업스트림 OTel 개발 지원 외에도, Elastic은 Elastic Observability와 함께 작동하도록 특별히 설계된 Elastic Distributions of OpenTelemetry를 제공합니다.
EDOT을 사용하면 벤더 중립적인 계측을 사용하고 독점 에이전트 없이 표준화된 추적, 메트릭, 로그와 같은 네이티브 OTel 데이터를 스트리밍할 수 있습니다.
Beats 서버에 에이전트로 설치하여 Elasticsearch에 운영 데이터를 전송하는 오픈 소스 데이터 전송기입니다. Elastic은 로그, 메트릭, 업타임과 같은 다양한 유형의 데이터에 대해 별도의 Beats를 제공합니다.
Beats는 대부분의 사용 사례에서 Elastic Agent로 대체되었습니다. Elastic Agent를 사용하면 핵심 Beats 기능을 얻을 수 있을 뿐만 아니라 더 많은 추가 기능도 사용할 수 있습니다. 데이터 요구 사항에 따라 호스트에 여러 Beats 전송기를 설치해야 할 수도 있는 반면, 호스트에 설치된 단일 Elastic Agent는 여러 유형의 데이터를 수집하고 전송할 수 있습니다.
Ingest 파이프라인을 사용하면 Elasticsearch에 색인하기 전에 데이터에 대한 일반적인 변환을 수행할 수 있습니다. 하나 이상의 "processor" 작업을 순차적으로 실행하도록 구성하여 Elasticsearch에 저장하기 전에 문서에 특정 변경 사항을 적용할 수 있습니다.
Logstash는 실시간 파이프라인 기능을 갖춘 데이터 수집 엔진입니다. 서로 다른 소스의 데이터를 동적으로 통합하고 선택한 목적지로 데이터를 정규화할 수 있습니다. Logstash는 광범위한 입력, 필터, 출력 플러그인을 지원하며, 많은 네이티브 코덱이 수집 과정을 더욱 단순화합니다.
Elastic Stack을 설치할 때는 전체 스택에서 동일한 버전을 사용해야 합니다. 예를 들어, Elasticsearch 9.4.2를 사용하는 경우 Beats 9.4.2, APM Server 9.4.2, Elasticsearch Hadoop 9.4.2, Kibana 9.4.2, Logstash 9.4.2를 설치해야 합니다.
기존 설치를 업그레이드하는 경우, 9.4.2와의 호환성을 보장하는 방법에 대한 정보는 배포, 클러스터 또는 오케스트레이터 업그레이드를 참조하세요.
자체 관리 클러스터에 Elastic Stack을 배포하는 경우, 사용하려는 Elastic Stack 제품을 다음 순서로 설치하세요:
이 순서로 설치하면 각 제품이 의존하는 구성 요소가 제자리에 있게 됩니다.
프로덕션 환경을 배포하고 Elasticsearch에 신뢰할 수 있는 CA 서명 인증서를 사용할 계획이라면, Fleet와 Elastic Agent를 배포하기 전에 먼저 설정해야 합니다. 새로운 보안 인증서가 구성되면 모든 Elastic Agent를 다시 설치해야 하므로, 적절한 인증서를 준비한 상태에서 Fleet와 Elastic Agent를 설정하는 것을 권장합니다.