ELK공부 - 엘라스틱 스택 개발부터 운영까지 (1)

HJ·2024년 3월 24일
1

시작

마인크래프트 프로젝트를 진행하면서 다양한 로그들이 쌓였는데 이를 ELK를 활용해 실시간으로 분석하려고 했다. 하지만 한번도 사용해보지않은 ELK환경을 구축하는데 어려움을 겪었고 , 다음 프로젝트에도 사용하기 위해 이참에 제대로 공부를 해보려고 마음먹었다. 공부는 완전 기초부터 하기 위해 '엘라스틱 스텍 개발부터 운영까지'라는 책을 도서관에서 빌려왔으며 페이지수가 상당히 많아 블로그 포스팅을 하면서 천천히 공부해볼 생각이다. 공부가 끝났을때는 웹,서버등에서 쌓이는 다양한 로그들을 실시간으로 분석할 수 있는 능력을 갖추는것이 목표이다.

Elastic stack?

엘라스틱 스택이란 데이터 수집, 분석, 검색, 시각화를 위한 오픈 소스 소프트웨어 모음이다. 대표적으로 ELK라고 불리는 프로세스, beats등이 있으며 E는 elastic , l은 logstach , K는 kibana를 뜻한다. 각각의 특징은 아래와 같다.

Elasticsearch

Elasticsearch는 스키마 없이 데이터를 저장할 수 있는 NoSQL 데이터베이스이다. 중심적인 데이터 저장 및 검색엔진을 지원하며 다양한 형식의 데이터를 저장하고 빠르게 검색할 수 있도록 하는 기능 제공한다. 여기서 NOSQL데이터베이스는 SQL을 사용하지 않는 데이터베이스를 의미한다. 이는 관계형 데이터베이스(예를들면 mysql,postgresql등)과 다르며 빠르고 확장 가능한 성능을 제공하는 경우가 많다. Elasticsearch는 NoSQL 데이터베이스 종류중에서 문서 기반 데이터베이스에 속한다.

Elasticsearch는 대용량 데이터 빠른 검색과 집계가 가능하고 보안 이벤트 분석,로그 통합 분석,에플리케이션 성능 분석등 다양하게 활용 가능하다는 장점이 있고 , 단점이라고 하면 DSL쿼리 사용해야하는데 조금 어렵다

Logstach

다양한 데이터 소스에서 데이터를 수집하고 Elasticsearch로 전송하는 데 사용되는 도구이다. 데이터를 동적으로 변환, 필터링,데이터 소스 통합등 흔히 말하는 '전처리'를 수행해준다. 별도의 코딩없이 간단한 설정만으로 로그 가공하며 확장가능한 다양한 플러그인 또한 있다.

Beats

Beasts는 로그스태시랑 비슷한데 Logstach보다 가볍다. 따라서 복잡한 이벤트를 가공하지 않을때는 각 장비 로그등을 빠르게 수집 가능하다. 일반적으로 비츠에서 각 서비스 호스트 정보 수집하고 로그 스태시에서 가공하고 엘라스틱서치로 전송하는 프로세스를 많이 사용한다.

kibana

lasticsearch 데이터를 시각화하고 분석하는 데 사용되는 웹 기반 도구이다. 다양한 차트, 그래프, 테이블 등을 통해 데이터를 시각화하고 대시보드 구성도 가능하다.

초기 세팅

이제 본격적으로 윈도우에 초기 세팅을 하는 과정을 적어보겠다. 이 세팅은 최신 버전인 8.12.2를 기준으로 세팅했으며 책을 집필한 시점보다 elastic stack 버전이 많이 업그레이드 되었기 때문에 7.x버전과는 다른점들이 있었다. 이는 구글링을 통해 해결했다.

다운 및 실행

https://www.elastic.co/kr/downloads/elasticsearch
https://www.elastic.co/kr/downloads/kibana
  1. 우선 위 사이트에서 엘라스틱 서치와 키바나를 먼저 다운받는다. 이후 원하는 위치에 압축을 풀어주고 해당 폴더 ./bin 경로에서 elasticsearch파일을 실행시켜준다. (참고로 cmd에서 해당 경로에 들어가서 elasticsearch.bat을 입력해도 작동한다) 필자의 경우 c드라이브 경로에 elasticsearch,kibana모두 압축을 풀어주었다.
  2. 다양한 메시지가 뜨면서 실행이 되는데 여기서 아이디와 비밀번호를 알려준다. 하지만 필자의 경우 아이디,비밀번호 메세지를 찾지 못했고 cmd창을 하나 더 열어서 아래와 같은 명령어로 비밀번호를 초기화 시켰다. 아이디는 기본적으로 elastic이다. 아이디와 비밀번호는 추후 정상적으로 웹사이트에 들어가졌을때 로그인을 위해 필요하다
  3. 주소창에 localhost:9200 에 들어간다. 9200은 elasticsearch의 기본 포트번호인데 필자의 경우 아래와 같이 들어가지지 않았다.

    이유는 http통신이라 안되는거였고 https://localhost:9200 로 접속했더니 아래와 같이 잘 되는것을 확인 할 수 있다.
  4. elasticsearch와 마찬가지로 아래와 같이 kibana.bat도 실행시켜준다. 이후 kibana의 기본 포트인 5601이 붙은 localhost:5601을 주소창에 입력해 들어간다.
  5. 웹 사이트에 로그인 하기위해 token이 필요하는데 elastcisearch처음에 실행시 30분간만 남아있는 토큰이 부여된다고한다. 필자는 찾지 못했기 때문에 token역시 초기화 시켜주었다.
  6. 토큰을 모두 복사해 입력하면 아래와 같이 인증코드가 온다. 이 인증코드도 웹사이트에 입력해주면 된다.
  7. 다음과 같이 home화면이 나오고 기본 라이센스가 자동으로 활성화 된다. 라이센스는 유료로 바꿀시 더 다양한 기능을 사용할 수 있다.
  • 참고로 반드시 elasticsearch를 먼저 실행시키고 kibana를 실행시켜야 한다. 이유는 kibana에서 하는 모든 작업들은 Elasticsearch과 연동이 되어있기 때문이다.

마무리

엘라스틱스택을 사용하기 위한 기본적인 세팅을 진행했다. 다음 포스팅에서는 본격적으로 엘라스틱서치 용청과 응답 , 인덱스와 도큐먼트 정의 , 키바나 콘솔 사용법등을 다뤄볼 예정이다. 또 다른 기술에 익숙해지는 그날까지 !

profile
데이터 공부 기록

0개의 댓글

관련 채용 정보