Education*
Devops
Architecture
F/B End
B.Chain
Basic
Others
CLOSE
Search For:
Search
BY TAGS
linux
HTTP
golang
flutter
java
fintech
개발환경
kubernetes
network
Docker
devops
database
tutorial
cli
분산시스템
www
블록체인
AWS
system admin
bigdata
보안
금융
msa
mysql
redis
Linux command
dns
javascript
CICD
VPC
FILESYSTEM
S3
NGINX
TCP/IP
ZOOKEEPER
NOSQL
IAC
CLOUD
TERRAFORM
logging
IT용어
Kafka
docker-compose
Dart
ELK STACK 이론 / Elasticsearch, Logstash, Kibana
Recommanded
Free
YOUTUBE Lecture:
<% selectedImage[1] %>
J.phil
2022-12-24
2022-12-03
1584
## OVERVIEW 여러분들은 Developer 생활을 하면서 `LOG ANALYSIS` 용어를 들어본적이 있는가? 만약 여러분들이 서버 프로그래밍, 데이터 분석을 관련 일을 하고 싶다면 또는 여러분의 몸값을 ‘Dramatic Jump’ 하고 싶다면 ? 이 용어는 반드시 접할 단어이고 단언코 다양한 USECASE 들을 경험하면서 학습해나갈 영역이다. 가령, ‘User Activity', ‘Customer Shopping Pattern’, ‘Purchase History’, etc 등 이와같이 다양한 산업에서 또는 프로젝트에서 로그분석은 언제나 필요하다. 그렇다면 우리는 로그 분석을 위해 어떻게 시작해야할까? 확실하고 간단하나 다소 까다로운 터미널에서 리눅스 커맨드를 통해 Grep, Awk, 등 분석해도 좋다. 하지만 이럴 경우 내 경험상 배우는 것은 정말 많으나 ‘고진~~~~~감래’ 이다. (사실상, 처음 Startup 조인했을 때 해당 리눅스 커맨드로 로그 분석을 수 TB 까지 하면서 많은 Insight를 얻었던 기억이 난다) 우리는 항상 공사다망하고 바쁘고 돈도 벌어야하고 효율적으로 살고 싶어한다. 이런 여러분들을 위해? 한가지 방법을 제시하려고 한다. 자! `Elasticsearch` 를 사용하자. 그리고 기회된다면 독자들이나 청중들을 이해도를 높힐수 있는 시각화 TOOL `Kibana` 도 학습해보자. By the way, What is ELK STACK? ![ELK STACK](https://joinc-edu.s3.ap-northeast-2.amazonaws.com/joinc-posting/elastic-0.png) <br> --- <br> <br> # Elasticsearch <br> <br> ### 1. Definition > **A** highly scalable open-source **full-text search** and **analytics engine**. It allows you to **store, search, and analyze** big volumes of data quickly and **in near real time**. It is generally used as the underlying engine/technology that powers applications that have complex search features and requirements. > > > Elasticsearch is a search engine based on **Lucene.** > 만약 당신이 위 문장을 보고 자신의 누추한 영어 실력을 때문에 Google Translater OR Papago를 켰다면? 당장 꺼라! 그런 여러분들의 위해 중요 Keywords만 발췌하였고 그 부분만 기억해도 충분하다. <br> - 먼저 **analytics engine** (store, search, and analyze in near real time) 의미하는 바는 단어 그대로 *Database의 여러 범주중 하나라고 생각해도 무관하나*, 방대한 양의 데이터를 **저장, 검색, 분석**을 **거의 실시간**으로 할 수 있도록 도와주는 분석 엔진이다. <br> - 다음, **Lucene**도 이해를 돕기 위해 간단하게 살펴보자! > a free and open-source information retrieval software library, originally written completely in Java by Doug Cutting. > 사실 루씬은 모든 검색엔진의 시초이며, Inverted Index 를 이용하여 하둡의 창시사 ‘더그 커팅’이 고안한 Apache 오픈소스 기반 검색 라이브러리이다. 그 기반으로 초반에는 Apache Solr가 등장해서 검색엔진 시장을 장악했으며, 시간이 지나 이 루씬을 기초한 Elastic Search 가 등장해 검색엔진 분야를 지배했다. ![ELK STACK](https://joinc-edu.s3.ap-northeast-2.amazonaws.com/joinc-posting/elastic-1.png) reference: [https://db-engines.com/en/ranking_trend/search+engine](https://db-engines.com/en/ranking_trend/search+engine) <br> - **full-text search**: 이는 단어 그대로 전체 텍스트들을 빠르게 검색하게 해주는 기능이며, 이 기능이 가능한 이유는 문서들이나 텍스트 파일들을 Elasticsearch에 적재시켰을때 위에서 언급한 `Inverted Index` 구조로 만들어주고 보관하고 있기때문이다. 이 Index 구조는 다소 실시간으로 설명하는 편이 여러분들이 더욱 이해하기 좋으므로 나중에 기회될때 하겠다 ? 업데이트 완료 [LINK](https://www.joinc.co.kr/w/full-text-serach) <br> ### 2. Data Organization 이는 말 그대로 ‘Elasticsearch 데이터 구조화 되어 있는가?’ 인데, 다소 DB 구조에 익숙한? 여러분들을 위해 보다 친숙하게 다가가기 위해서 RDBMS를 비교하여 설명하려한다. ![Organization Comparison](https://joinc-edu.s3.ap-northeast-2.amazonaws.com/joinc-posting/elastic-2.png) 여기서 Elasticsearch의 실제 Record는 문서 ‘Documents’ 라고 표현하는데, 여러분들이 잘 알고 있는 Json 형식이 저장된다고 생각하면 된다. 모든 필드에 저장된 Json 형식의 데이터들은 기본적으로 Indexing이 되며, 모든 인덱스들은 단일 쿼리로 빠르게 사용가능하다. <br> ### 3. Feature Elasticsearch의 특징들을 간단하게 설명하려고 한다. - **Multi-tenancy** 하나의 elasticsearch 서버에 여러 인덱스를 저장하고, 여러 인덱스의 데이터를 하나의 쿼리로 검색할 수 있다. 추후에 다룰 예제의 경우 날짜별로 인덱스를 분리해 로그를 저장하고 있고, 검색 시에는 검색 범위에 있는 날짜의 인덱스를 하나의 쿼리로 요청하고 있다. - **Scalability, Flexiblility** elasticsearch는 확장성과 유연성이 매우 뛰어나다. 다양하게 제공하는 플러그인을 이용하여 기존 기존등을 확장할 수 있다. 예를 들어 Thrift 플러그인이나 Jetty 플러그인을 사용하면 전송 프로토콜을 변경할 수 있다. 필수 플러그인이라고 할 수 있는 BigDesk나 Head를 설치하면 elasticsearch 모니터링 기능을 사용할 수 있게 된다. 동적으로 복제본 개수를 조정할 수도 있다. 다만 샤드 수는 인덱스별로 고정돼 있어 수정이 불가능하므로 노드 수와 향후 서버 확장을 고려해 초기에 적절한 수를 할당해야 한다. <br> ### 4. Practice - 문서의 단일화를 위해 실습은 아래 페이지에서 진행하려고 한다. [실습 포스팅](https://www.joinc.co.kr/w/elk_stack_practice) <br> <br> --- <br> <br> # KIBANA <br> ### 1. Definition > an open source analytics and **visualization platform** designed to **work with** Elasticsearch. > > > You use Kibana to search, view, and **interact with data stored in Elasticsearch indices**. You can easily perform a**dvanced data analysis and visualiz**e your data in a variety of **charts, tables, and maps.** > 사실 위 Elasticsearch 컨셉을 이해했으면 Kibana는 쉽게 이해할 수 있다. 명료하게 말해서 ES 위에서 돌아가는 Visualization 도구이며, ES 색인된 데이터 기반으로 사용자가 Kibana에서 제공하는 시각적 도구를 이용해 advanced data analysis를 보다 쉽고 편하게 할 수 있다. 가령, 아래는 실제 Elasticsearch에 적재된 금융데이터를 Kibana를 통해 잔액에 대한 분포를 나타내는 도표이다. 참고로, 이처럼 시각적 도구를 잘 이용해서 여러분들의 고객들이나 마케터들에게 여러분의 수고스럽게 분석한 데이터들을 이해하기 쉽게 표현하는 것도 필수 기술이다. ![KIBANA EXAMPLE](https://joinc-edu.s3.ap-northeast-2.amazonaws.com/joinc-posting/elastic-3.png) <br> ### 2. Practice - 문서의 단일화를 위해 실습은 아래 페이지에서 진행하려고 한다. [실습 포스팅](https://www.joinc.co.kr/w/elk_stack_practice)
Recent Posts
SLA 다운타임 계산기
Docker로 GitLab 설치하기
Ubuntu Linux에 NVIDIA 드라이버 설치
Gemini를 이용한 E-commerce 제품 설명서 생성
프롬프트 엔지니어링 101
Llama3와 MySQL을 이용한 Text2SQL
Llama3.1 설치한 김에 Few-Shot 프롬프팅
Llama3.1 설치 및 프롬프트 테스트
신뢰할 수 있는 AI 앱을 설계하기 위한 LLM 개발원칙
LiteLLM을 이용하여 OpenAI API로 멀티 LLM 통합
Archive Posts
Tags
bigdata
Data Analysis
database
Elasticsearch
KIBANA
Copyrights © -
Joinc
, All Rights Reserved.
Inherited From -
Yundream
Rebranded By -
Joonphil
Recent Posts
Archive Posts
Tags