0. 개요
ELK Stack = Elasticsearch + Logstash(+beats) + Kibana(+ X-Pack)
APM처럼 여러 기술들을 연계하여 사용하는 것을 줄임말로 예쁘게 표현한 것이다. 그래서 저 기술들을 이용해서 뭐에 쓰느냐하면 Log 및 데이터 분석에 사용. 접근성이 좋고 쉬워서 최근에 많이 떠오르는 도구라고 한다.
그럼 각 기술들을 하나씩 살펴 보자.
1. ElasticSearch
Java 기반의 오픈소스 분산 검색엔진. 방대한 양의 데이터를 신속하게, 거의 실시간(Near Real Time)으로 저장, 검색, 분석이 가능하다.
위의 그림처럼 기존의 데이터들을 키워드 중심으로 다시 Indexing하여 검색에 최적화 시킨다. 기존의 RDB와 비교했을 때 속도의 차이가 어마어마하다. 아래는 ElasticSearch와 RDB를 비교한 표.
구조
Elastic Search | Relatinal DB |
Index | DataBase |
Type | Table |
Document | Row |
Field | Column |
Mapping | Schema |
기능 (명령어 예시)
Elastic Search | Relatinal DB |
Get (curl -XGET localhost:9200/classes/class/1) | Select (select * from class where id =1) |
Put (curl -XPUT localhost:9200/classes/class/1 -d ‘{xxx}') | Update (update class set xxx where id =1) |
Post (curl -XPOST localhost:9200/classes/class/1 -d ‘{xxx}') | Insert (insert into class values {xx}) |
Delete(curl -XDELETE localhost:9200/classes/class/1) | Delete (delete from class where id =1) |
ElasticSearch는 Rest 기반으로 제공하기 때문에 위와 같은 명령으로 사용해야 한다.
2. Logstash
데이터의 수집 기능을 담당한다. 서버측 데이터 처리 파이프라인으로 다양한 소스에서 동시에 데이터를 수집하고 변환하여 stash 보관소로 보낸다. 즉 다양한 데이터 자원에 접근하여 데이터 흐름을 중앙에서 처리하는 엔진.
웹앱이나 AWS, 전통적인 데이터 베이스 등이 모두 Logstash가 데이터 소스로 사용하는 예시이다.
3. Kibana
결과 데이터를 시각적으로 보여주고 탐색, 분석을 담당한다. HTML + Javascript 엔진이라고 보면 된다.
단 한줄의 프런트엔드 코드 없이 위와 같은 예쁜 시각화가 가능하다.
참고 사이트
ELK STACK이란?
ELK STACK이란 ? Log 및 데이터 분석을 한다고 할 때, 가장 먼저 떠 오르는 도구는 ELK Stack이다. ELK는 수집 기능을 하는 Logstash, 분석 및 저장 기능을 담당하는 ElasticSearch, 시각화 도구인 Kibana의 앞..
likefree.tistory.com
오픈소스 검색 및 분석· Elasticsearch | Elastic
www.elastic.co
'ELK Stack' 카테고리의 다른 글
[Elasticsearch] 데이터 입력, 조회, 삭제(GET, POST, PUT, DELETE) (0) | 2019.10.28 |
---|