마인크래프트 프로젝트를 진행하면서 다양한 로그들이 쌓였는데 이를 ELK를 활용해 실시간으로 분석하려고 했다. 하지만 한번도 사용해보지않은 ELK환경을 구축하는데 어려움을 겪었고 , 다음 프로젝트에도 사용하기 위해 이참에 제대로 공부를 해보려고 마음먹었다. 공부는 완전 기초부터 하기 위해 '엘라스틱 스텍 개발부터 운영까지'라는 책을 도서관에서 빌려왔으며 페이지수가 상당히 많아 블로그 포스팅을 하면서 천천히 공부해볼 생각이다. 공부가 끝났을때는 웹,서버등에서 쌓이는 다양한 로그들을 실시간으로 분석할 수 있는 능력을 갖추는것이 목표이다.
엘라스틱 스택이란 데이터 수집, 분석, 검색, 시각화를 위한 오픈 소스 소프트웨어 모음이다. 대표적으로 ELK라고 불리는 프로세스, beats등이 있으며 E는 elastic , l은 logstach , K는 kibana를 뜻한다. 각각의 특징은 아래와 같다.
Elasticsearch는 스키마 없이 데이터를 저장할 수 있는 NoSQL 데이터베이스이다. 중심적인 데이터 저장 및 검색엔진을 지원하며 다양한 형식의 데이터를 저장하고 빠르게 검색할 수 있도록 하는 기능 제공한다. 여기서 NOSQL데이터베이스는 SQL을 사용하지 않는 데이터베이스를 의미한다. 이는 관계형 데이터베이스(예를들면 mysql,postgresql등)과 다르며 빠르고 확장 가능한 성능을 제공하는 경우가 많다. Elasticsearch는 NoSQL 데이터베이스 종류중에서 문서 기반 데이터베이스에 속한다.
Elasticsearch는 대용량 데이터 빠른 검색과 집계가 가능하고 보안 이벤트 분석,로그 통합 분석,에플리케이션 성능 분석등 다양하게 활용 가능하다는 장점이 있고 , 단점이라고 하면 DSL쿼리 사용해야하는데 조금 어렵다
다양한 데이터 소스에서 데이터를 수집하고 Elasticsearch로 전송하는 데 사용되는 도구이다. 데이터를 동적으로 변환, 필터링,데이터 소스 통합등 흔히 말하는 '전처리'를 수행해준다. 별도의 코딩없이 간단한 설정만으로 로그 가공하며 확장가능한 다양한 플러그인 또한 있다.
Beasts는 로그스태시랑 비슷한데 Logstach보다 가볍다. 따라서 복잡한 이벤트를 가공하지 않을때는 각 장비 로그등을 빠르게 수집 가능하다. 일반적으로 비츠에서 각 서비스 호스트 정보 수집하고 로그 스태시에서 가공하고 엘라스틱서치로 전송하는 프로세스를 많이 사용한다.
lasticsearch 데이터를 시각화하고 분석하는 데 사용되는 웹 기반 도구이다. 다양한 차트, 그래프, 테이블 등을 통해 데이터를 시각화하고 대시보드 구성도 가능하다.
이제 본격적으로 윈도우에 초기 세팅을 하는 과정을 적어보겠다. 이 세팅은 최신 버전인 8.12.2를 기준으로 세팅했으며 책을 집필한 시점보다 elastic stack 버전이 많이 업그레이드 되었기 때문에 7.x버전과는 다른점들이 있었다. 이는 구글링을 통해 해결했다.
https://www.elastic.co/kr/downloads/elasticsearch
https://www.elastic.co/kr/downloads/kibana
엘라스틱스택을 사용하기 위한 기본적인 세팅을 진행했다. 다음 포스팅에서는 본격적으로 엘라스틱서치 용청과 응답 , 인덱스와 도큐먼트 정의 , 키바나 콘솔 사용법등을 다뤄볼 예정이다. 또 다른 기술에 익숙해지는 그날까지 !