새로 무언가 배우고 싶다면 어떻게 해야 할까요? 가장 간단하고 쉬운 방법은 공식문서를 찾아보는 거라고 생각해요. 여기에 더해서 모범사례 등과 같은 실 사용에서의 용례를 제공해준다면 더 좋겠지요? 특히나 요즘 새로 나오는 많은 기술들은 한글 공식문서도 제공하는 곳이 많아서 더욱 공부하기 수월한 것 같아요.

 

그런데 이 elasticsearch는 한글 공식 문서도 제공하지 않고 그나마 있는 영문 공식문서도 그 양이 워낙 방대하고 또 이런이런 순서로 공부해 보세요 하고 가이드도 제공하지 않아서 차근차근 하나하나 공부하기 더 어려운 것 같아요.

 

물론 튜토리얼도 제공하고 있지만 뭔가 2% 부족한 것 같고 Elastic Blog커뮤니티도 운영하지만 이러한 것들을 통해서는 elasticsearch에 대해 공부하기 쉽지는 않은 것 같아요

 

Elasticsearch는 꽤나 복잡한 기술이고 어디서부터 시작하는 게 좋을지 찾는 것도 힘들어요.

그래서 Elasticsearch 강의를 듣고 정리한 내용들을 다시 정리해봐요.

 

Elasticsearch란 무엇인가?

구글에서 Elasticsearch를 검색하면 분산형 검색 및 분석 엔진이라는 소개를 볼 수 있어요

 

우선 이 페이지 먼저 한 번 보고 올게요.

https://www.elastic.co/kr/what-is/elasticsearch

 

Elasticsearch는 무엇인가요?

Elasticsearch는 텍스트, 숫자, 위치 기반 정보, 정형 및 비정형 데이터 등 모든 유형의 데이터를 위한 무료 검색 및 분석 엔진으로 분산형 및 개방형을 특징으로 합니다. Elasticsearch는 Apache Lucene을 기

www.elastic.co

위 페이지에는 Elasticsearch는 무엇인지, 어디에 사용되는지, 어떻게 작동하는지, 왜 사용해야 하는지 등에 관한 내용이 잘 설명이 되어있어요.

 

인덱스라는 걸 역 인덱싱 해서 빠르게 검색하고 그 걸 통해서 분석도 하고 여러 가지 한다. 얼핏 보면 데이터베이스랑 뭐가 다른가? 하실 수 있는데 기존의 RDBMS와 elasticsearch의 차이점은 차차 알아보기로 해요.

 

그전에 elasticsearch에 대한 소개에서 elastic stack이라는 것도 나오고 logstash, kibana, beats와 같은 내용들이 나오는데 이 Elastic Stack은 무엇인지 한 번 보도록 할게요.

 

 

Elastic Stack이란 무엇인가?

 

Elastic Stack은 elasticsearch를 중심으로 흔하게 같이 쓰이는 여러 서비스들을 한데 모아서 부르는 이름이에요.

Elasticsearch를 본격적으로 공부하기 전에 Elastic Stack의 기타 다른 기술들을 간단하게 알아볼게요.

 

Kibana

Kibana는 Elasticsearch와 상호 연동해서 분석 및 시각화를 담당하는 서비스의 이름이에요. 흔히들 Elasticsearch의 Dashboard 혹은 Web Interface라고 불려요. Elasticsearch는 REST API를 지원하는데 Kibana 역시 이 REST API를 통해서 Elasticsearch에 질의하고 응답 값을 가지고 화면에 보여줘요.

 

자세한 사항은 아래 소개 페이지를 참고해주세요.

https://www.elastic.co/kr/what-is/kibana

 

Kibana는 무엇인가요?

Kibana는 Elastic Stack을 기반으로 구축된 무료 오픈 소스 프론트엔드 애플리케이션으로, Elasticsearch에서 색인된 데이터를 검색하고 시각화하는 기능을 제공합니다. Elastic Stack(이전에는 Elasticsearch, Lo

www.elastic.co

 

Logstash

Logstash는 Elastic Stack의 ETL(Extract, Transform, Load) Pipeline을 담당해요. 자료를 수집(Extract)하고 가공(Transform)해서 Elasticsearch나 다른 곳으로 적재(Load)하는 역할을 해요.

 

Logstash는 Inputs, Filters, Outputs 이렇게 3개의 스테이지로 구성돼요.

  • Inputs - files, logs, events 등과 같이 다양한 방법으로 data를 수집
  • Filters - Inputs에서 받은 data를 다양한 방법으로 형태로 가공
  • Outputs - Filters에서 가공된 데이터를 정의된 곳으로 적재

각 스테이지에는 각각 활용 가능한 plug-in들이 있는데 이미 만들어진 것을 가져다 쓸 수 있고 필요하다면 만들어서 쓸 수도 있어요.

 

하나의 Logstash에서 여러 개의 pipeline을 만들어서 운영할 수 있어요.

그리고 무슨무슨 mark-up language를 사용해요.

 

자세한 사항은 아래에서 확인해주세요

https://www.elastic.co/kr/logstash/

 

Logstash: 로그 수집, 구문 분석, 변환 | Elastic

Logstash(Elastic Stack의 일부)는 이 유연한 오픈 소스 콜렉션, 구문 분석 및 강화 파이프라인으로 모든 소스, 모든 형식의 데이터를 손쉽게 통합합니다. 무료 다운로드.

www.elastic.co

 

 

X-Pack

X-Pack은 Elasticsearch와 Kibana에 추가적인 기능을 제공해주는 패키지예요. 추가 가능한 기능들에는 아래와 같은

  • Elasticsearch와 Kibana에 인증과 권한 부여 기능 추가
  • Elastic Stack의 Performance monitoring
  • Alert 설정
  • Reporting 기능을 통해 PDF 생성
  • Kibana에 Machine Learning 기능 추가
  • SQL을 사용해 Elasticsearch를 조회할 수 있는 기능 추가

기능들이 있어요.

보다 자세한 사항은 아래 페이지를 한 번 읽어보세요

https://www.elastic.co/guide/kr/x-pack/current/xpack-introduction.html

 

소개 | Elastic Stack을 위한 X-Pack | Elastic

 

www.elastic.co

 

 

Beats

Beats는 경량 데이터 수집기로 logstash에 비해 아주 가볍기 때문에 데이터를 수집해야 하는 대상에 설치되어서 Logstash로 혹은 Elasticsearch로 데이터를 보내는 역할을 할 수 있어요.

Beats는 아래와 같이

  • Filebeat - 로그 파일
  • Metricbeat - 메트릭
  • Packetbeat - 네트워크 데이터
  • Winlogbeat - windows 이벤트 로그
  • Auditbeat - 감사 데이터
  • Heartbeat - 가동 시간 모니터링
  • Functionbeat - 서버를 사용하지 않는 수집기

Functionbeat는 이번에 새로 나온 거 같은데 클라우드에서 람다처럼 서버리스로 로그를 수집하는 beat인 거 같아요 이 것도 다음에 자세하게 알아볼게요.

 

Beats에 관한 자세한 보다 자세한 사항은 아래 페이지에서 확인해주세요

https://www.elastic.co/kr/beats/

 

Beats: Elasticsearch를 위한 데이터 수집기 | Elastic

로그, 네트워크, 인프라 데이터 등을 위한 수집기를 구축하기 위한 오픈 소스 플랫폼으로 Elasticsearch, Logstash, Kibana와 통합됩니다.

www.elastic.co

 

 

이렇게 정말 개괄적으로 Elasticsearch와 Elastic Stack에 대해서 알아봤는데 지금까지 내용이 잘 이해가 되지 않아도 전혀 괜찮아요. 앞으로 Elasticsearch에 대해서 깊게 알아가면서 추상 적이었던 부분들이 좀 더 구체적으로 와닿을 수 있도록 해봐요.