본문 바로가기

Monitoring/Elasticsearch

01. Elastic Stack

사용자가 서버로부터 원하는 모든 유형의 데이터를 가져와서 
실시간으로 해당 데이터를 검색, 분석 및 시각화 할 수 있도록 도와주는 Elastic의 오픈소스 서비스 제품을 말한다.
기존 Elastic Search + Logstash + Kibana를 같이 묶어 ELK(ELK Stack)라는 서비스명으로 제공했으나 
5.0.0 버전부터 Beats가 포함되어 Elastic Stack이란 이름으로 현재 서비스가 제공되고 있다.
 
 
 
Beats
 
경량 에이전트로 설치되어 데이터를 Logstash 또는 Elastic Search로 전송하는 도구
 
Logstash보다 경량화되어 있는 서비스이며 용도에 따라 
 
Filebeat, Metricbeat, Packetbeat, Winlogbeat, Heartbeat 등으로 구분한다.
 
- Packetbeat은 응용 프로그램 서버간에 교환되는 트랜잭션에 대한
 
정보를 제공하는 네트워크 패킷 분석기
 
- Filebeat는 서버에서 로그 파일을 제공
 
- Metricbeat은 서버에서 실행중인 운영 체제 및 서비스에서 메트릭을 주기적으로
 
  수집하는 서버 모니터링 에이전트
 
- Winlogbeat는 Windows 이벤트 로그를 제공
 
 
 
 
Logstash
 
다양한 플러그인을 이용하여 데이터 집계 및 보관, 서버 데이터 처리.
 
파이프라인으로 데이터를 수집하여 필터를 통해 변환 후 Elastic Search로 전송한다.
 
 
- 입력 : Beats, Cloudwatch, Eventlog 등의 다양한 입력을 지원하여 데이터 수집
 
- 필터 : 형식이나 복잡성에 상관없이 설정을 통해 데이터를 동적으로 변환
 
- 출력 : Elastic Search, Email, ECS, Kafka 등 원하는 저장소에 데이터를 전송
 
 
 
Elasticsearch
 
루씬 기반의 Full Text로 검색이 가능한 오픈소스 분석엔진이며 주로 REST API를 이용해 처리한다.
 
대량의 데이터를 신속하고 거의 실시간으로 저장, 검색 및 분석 할 수 있다.
 
 
 
 
Kibana
 
데이터를 시각화해주는 도구이다.
 
 
 
 
Common Architecture
 
E-commerce application 을 생각해 보자.
 
보통 데이터는 Relational database 에 저장된다.
 
누군가 웹 사이트에서 검색어를 입력하면 웹 응용 프로그램에 요청이 전송되며 
 
DB 에서 상품을 검색하여 사용자 브라우져로 응답을 보내게 된다.
 
 
만약 Elasticsearch 에도 기존 DB 와 마찬가지로 직접 연결한다면
 
Elasticsearch 에 저장하기 위한 Data Traslation 을 직접수행해야 하며 너무 많은 정보를 저장하게 된다.
 
 
 
적절한 정보만 저장하기 위해 만약 관심있는 부분이 Traffic 에 대한 확인 부분이라고 생각해 보자.
 
그렇다면 Metricbeat 을 사용해 서버에서 실행중인 운영 체제 및 서비스에서 메트릭을 주기적으로 수집하면 된다.
 
 
이후 비지니스가 성장함에 따라 구현해야 할 기능이 많이 생겼고 서버도 더 추가하였으며 
 
개발 팀이 커져 더 많은 코드를 개발하게 된다면 필연적으로 개발에 따라  버그가 발생할 위험이 커질것이다.
 
이런 경우라면 Filebeat 를 사용해 서버의 로그 정보를 저장하면 된다.
 
Filebeat 는 로그 파싱 , 스택 추적, 다중 회선 이벤트 처리등을 자동으로 해주므로 매우 편리하며
 
추가 구성이 필요하지 않다.
 
 
하지만 보통 문제는 단순히 서버의 응답에서만 발생하지 않으며
 
Windows Event 나 File 과 같은 Law Data 가 필요할 수 있다.
 
이벤트 처리를 중앙 집중화 하고 파싱과 필터링을 동시에 수행하고자 한다면
 
Logstash 를 사용해 이 작업을 수행할 수 있다.
 
 
 
Example
 
 
 
 
 
 
 
 
 

'Monitoring > Elasticsearch' 카테고리의 다른 글

06. Mapping  (0) 2020.01.17
05. Document  (0) 2020.01.17
04. Cluster  (0) 2020.01.17
03. Install  (0) 2020.01.17
02. Overview  (0) 2020.01.17