1. ELK Stack
- 간단히 E, L, K 라는 세 가지 제품을 조합하여 만든 오프소스 제품을 의미한다.
- ELK 와 Stack 에 대해 조금 더 알아보자.
1.1. ELK
- Elasticsearch, Logstash, Kibana 세 개의 머리글자를 따서 만든 용어다.
- 여기에 나중에 Beats가 추가되었고, 더 이상 ELK 라는 머리글자를 사용할 수 없기에
- 나중에는 Elastic Stack 이라는 용어가 쓰이기 시작했다.
1.2. Stack
- 기본적으로 사전에 정의된 스택(= 더미)의 의미로 사용된다.
- 여기에서는 아래 세네 가지 제품의 더미(= 조합)를 의미한다.
이미지 출처
2. Elasticsearch
- 쉽게
- 검색 엔진 (데이터 검색 및 분석을 위한 프로그램) 이다.
- 추가 설명
- 빈도, 인기도, 최근 결과 등 다양한 기준을 설정하여 원하는 데이터를 검색할 수 있다.
- 정형, 비정형, 위치정보, 메트릭 등 원하는 방법으로 정보를 검색할 수 있다.
- 데이터를 저장하고, 검색한다는 점에서 RDB와 컨셉이 유사하다 (사용 방식과 용어는 같지 않다).
- REST API 기반의 웹 인터페이스 위에서 동작하고, JSON 문서를 지원한다.
- 준실시간(near realtime)으로 동작한다.
- 문서를 색인화하는 시점부터 검색이 가능해지는 시점까지 약간의 대기 시간이 있다 (대개 1초)
- 루신을 기반으로 만들어진 검색 서버다.
- 루신: 자바로 작성된 풀 텍스트 검색(full text search) 소프트웨어를 말한다.
3. Logstash
- 쉽게
- 로그 및 다양한 데이터들이 통과하는 파이프 통로다. (아래 그림 참고)
- 참고) stash - 안전하게 숨기는 장소 (git stash 생각)
- 추가 설명
- Logstash 파이프라인에는 입력 → 필터 → 출력의 세 가지 단계가 있다. (아래 구성 파일 참고)
- 파이프에서는 인풋의 데이터를 -> 필터를 통해 가공한 후 -> 원하는 곳으로 흘려보낸다.
- 인풋(input)의 예: 파일, http, 레디스(redis), 카프카, 비츠(beats) 이벤트 등
- 다양한 플러그인이 지원되기 때문에 형식이나 복잡성과 관계 없이 데이터를 동적으로 수집, 변환, 전송할 수 있다.
- 예를 들면, 로그 이벤트를 수집하여 적절히 가공한 후 Elasticsearch 로 보낼 수 있다.
- 이때 가공(필터) 방식은 다양하게 선택할 수 있다.
- 출력 단계에서도 꼭 Elasticsearch가 아니라, 카프카, 메일 등 다양한 곳을 선택할 수 있다.
- 200개 이상의 플러그인 프레임워크를 사용할 수 있기 때문에, 입력, 필터, 출력을 자유롭게 설정할 수 있다.
이미지 출처
이미치 출처
4. Kibana
- 쉽게
- (Elasticsearch) 데이터를 시각화하기 위한 도구를 말한다.
- 추가 설명
- 온갖 데이터를 아래 이미지처럼 다양한 그래프(히스토그램, 막대그래프, 파이차트 등)로 표현할 수 있도록 지원한다.
이미치 출처
5. Beats
- 쉽게
- 단말 장치 데이터 수집기를 의미한다. (아래 그림 참고)
- 추가 설명
- Logstash와 Elasticsearch로 전송할 데이터를 단말 장치에서 수집한다.
- 모든 유형의 데이터를 수집하기 위해 다양한 수집기를 사용한다.
- Filebeat(경량 로그 수집기): 로그 및 파일을 수집, 전달한다.
- Metricbeat(경량 메트릭 수집기): CPU부터 메모리, Nginx 등 다양한 시스템 서비스 통계 정보를 수집, 전달한다.
- Packetbeat(경량 네트워크 데이터 수집기): 네트워크 트래픽의 흐름 정보 수집, 전달한다.
- Auditbeat(경량 감사 데이터 수집기)
- Winlogbeat(경량 Windows 이벤트 로그 수집기)
- Heartbeat(가동 시간 모니터링을 위한 경량 데이터 수집기)
- Functionbeat(클라우드 데이터를 위한 서버리스 수집기)
6. Elastic Stack 요약
- ELK + B 의 사용을 요약하면 다음과 같다.
- 로그를 생성하는 서버들에 B(Filebeat)를 설치하고, 로그를 집계할 서버에 ELK를 설치한다.
- Filebeat에서 Logstash로 로그를 전송하고, Logstash에서 필터링을 거친 로그들이 Elasticsearch에 저장된다.
- 저장된 로그는 Kibana를 통해 시각화된다.
- Filebeat 외에도 아래 Beats를 사용할 수 있다.
이미치 출처
7. References