코딩마을방범대
[ELK] ELK 스택(Elasticsearch, Kibana, Beats, Logstash) 개념 정리 본문
728x90
ELK 스택
- Elasticsearch, Logstash, Kibana의 세 가지 인기 있는 프로젝트로 구성된 스택을 의미하는 약어
(그냥 Elasticsearch라고도 불림) - 로그를 집계하고 이를 분석하며 애플리케이션과 인프라 모니터링 시각화를 생성하고, 빠르게 문제를 해결하며 보안 분석할 수 있는 능력을 제공
- 로그 분석, 문서 검색, 보안 정보 및 이벤트 관리(SIEM), 관찰성 등 광범위한 문제를 해결하는 데 사용되며, 검색 및 분석 엔진, 데이터 모으기 및 시각화를 제공
작동 방법
- Logstash: 데이터를 수집 및 변환하고 올바른 대상으로 전송
- Elasticsearch: 수집된 데이터를 인덱싱하고, 분석하고, 검색
- Kibana: 분석 결과를 시각화
Elasticsearch
- 분산형 RESTful 검색 및 분석 엔진
(대량의 데이터를 실시간으로 검색하고 분석하는 데 최적화) - 로그 분석, 전체 텍스트 검색, 보안 인텔리전스, 비즈니스 분석 및 운영 인텔리전스 사용 사례에 일반적으로 사용
이점
- 신속한 가치 실현
간단한 REST 기반 API, 간단한 HTTP 인터페이스를 제공하고 스키마 없는 JSON 문서를 사용해 빠르게 애플리케이션을 구축할 수 있음 - 고성능
- 분산 성질로 인해 대량 볼륨의 데이터를 병렬로 처리할 수 있어 쿼리에 일치 항목을 빠르게 찾을 수 있음
- 유한 상태 변환기를 통한 역 인덱스를 구현하고, 숫자 및 위치 데이터 저장을 위해 BKD tree를 구현하였으며, 분석을 위해 열 저장을 구현함
- 매초당 수많은 양의 이벤트를 처리할 수 있으며, 클러스터에서 인덱스와 쿼리 배포를 자동화하여 보다 원활한 시스템 운영을 지원 - 무료 도구 및 플러그인
- Elasticsearch는 유명 시각화 및 보고서 도구인 Kibana가 통합되어 제공됨.
- Beats 및 Logstash와의 통합도 제공하여 소스 데이터를 쉽게 전환하고 Elasticsearch 클러스터에 로드할 수 있음.
- 언어 분석기 및 제안자 등 다양한 오픈 소스 Elasticsearch 플러그인을 사용하여 애플리케이션에 풍부한 기능을 추가할 수도 있음. - 분산 아키텍처
- 데이터는 여러 노드에 분산 저장되어 확장성과 고가용성을 제공
- 클러스터 간 복제를 사용해, 두번째 클러스터가 핫 백업으로 작동할 수 있음 - 쉬운 애플리케이션 개발
Java, Python, PHP, JavaScript, Node.js, Ruby 및 기타 여러 다양한 언어에 대한 지원을 제공
관리 기능
Security | - 사용자 별로 기능에 대한 적절한 액세스를 부여할 수 있음 - SSL/TLS 암호화를 통해 노드 간, HTTP, Elastic Stack 클라이언트 간 통신 트래픽 전송을 보호할 수 있음 - IP 필터링을 통해 승인되지 않은 호스트의 클러스터 침입 또는 통신을 방지할 수 있음 - 모든 시스템과 사용자 활동 기록을 손쉽게 유지할 수 있도록 지원(감사 로그) |
모니터링 | 클러스터 상태, 라이센스 만료 여부, 기타 메트릭 등 클러스터의 변경 사항에 대한 알림을 자동으로 받을 수 있음 |
경보 | - 컨텍스트를 사용한 앱 내 경보 생성 가능 - Kibana 관리 탭 내의 경보 및 조치 섹션에 가서 중앙 위치에 있는 모든 경보를 조회하고 검색하고 필터링 가능 |
Elasticsearch SQL | - 분산된 문서 저장소이기 때문에 한 비트도 건너뛰지 않고 수십억 줄의 데이터를 처리할 수 있음 - CLI, REST 엔드포인트, ODBC 또는 JDBC를 통해 SQL 쿼리를 전송하고 빠른 속도로 풀스텍 검색을 수행할 수 있음 - Elasticsearch SQL 쿼리 구문을 사용하여 Canvas에서 인포그래픽 스타일의 생생한 프레젠테이션 생성 가능 |
사용 사례
로그 및 이벤트 데이터 분석 | 시스템 로그, 애플리케이션 로그 등을 수집하고 분석하는 데 널리 사용 |
웹사이트 검색 | 웹 애플리케이션에서 사용자에게 검색 기능을 제공하는 데 사용 |
데이터 시각화 | Kibana와 함께 사용하여 데이터를 시각적으로 분석하고 대시보드를 구성할 수 있음 |
Kibana
- Elasticsearch와 함께 사용되는 오픈 소스 데이터 시각화 도구
- 로그 데이터나 시계열 데이터의 시각화, 대시보드 생성, 데이터 분석에 사용
- 히스토그램, 선형 그래프, 원형 차트, 열 지도, 내장 지리 공간적 지원과 같은 강력하고 사용하기 쉬운 기능을 제공
이점
- 대화형 차트
시간 창을 동적으로 드래그하고 특정 데이터 하위 집합을 확대하거나 축소하며 데이터에서 실천 가능한 인사이트를 추출하기 위해 보고서를 드릴다운할 수 있음 - 매핑 지원
데이터의 지리적 정보를 제일 위에 두고 결과를 지도에 시각화하는 계층화 작업을 원활하게 수행할 수 있음 - 사전 구축된 집계 및 필터
사전 구축된 집계 및 필터를 사용하여 히스토그램, 상위 N개 쿼리, 추세와 같은 다양한 분석을 실행할 수 있음 - 쉽게 액세스 가능한 대시보드
대시보드와 보고서를 쉽게 설정하고 다른 사람에게 공유할 수 있음
드릴다운
문제를 여럿으로 세분화하면서 분석하는 기법
Logstash
- 오픈 소스 데이터 수집 및 처리 도구로, 주로 로그 데이터를 수집, 변환, 저장하는 데 사용
- grok을 이용해 비구조적 데이터에서 구조를 도출하여 IP 주소에서 위치 정보 좌표를 해독하고, 민감한 필드를 익명화하거나 제외시키며, 전반적인 처리를 손쉽게 해줌
이점
- 다양한 입력을 지원
로그, 메트릭, 웹 애플리케이션, 데이터 저장소 및 다양한 AWS 서비스에서 모두 지속적으로 스트리밍되는 방식으로 손쉽게 수집할 수 있음 - 데이터 이동 과정에서의 구문 분석 및 변환
- grok을 통해 비정형 데이터에서 구조 도출
- IP 주소에서 위치 좌표 해독
- PII 데이터의 익명화, 민감한 정보 필드 완전 제외
- 데이터 소스나 형태, 스키마에 상관없이 전체적으로 손쉬운 처리
참고사이트
728x90
'💡 백엔드 > ELK' 카테고리의 다른 글
[ELK] Docker로 ELK 스택 구축 시 실행 때마다 자동으로 사용자 설정하기 (0) | 2024.11.04 |
---|---|
[ELK] ELK에서 Logstash.conf 파일의 filter, input, output 블록 (0) | 2024.11.04 |
[ELK] ELK 역할 부여 및 권한 관리하는 방법 (0) | 2024.10.31 |
[ELK] ELK를 이용한 MySQL 로그 연동 방법 (0) | 2024.10.21 |
[ELK] 도커를 통해 ELK 구축한 후 Spring boot 로그와 연결하기 (0) | 2024.10.14 |