본문 바로가기

데이터베이스(DA, AA, TA)/데이터처리

[ELK] ELK 스택(ElasticSearch, Logstash, Kibana)으로 데이터 분석

개발자로써 빅데이터를 다뤄볼 수 있는 영역은 빅데이터 엔지니어링 분야입니다. 대용량 데이터 수집이나 분석을 돕기위한 기술을 제공하는 가장 대표적인 영역이 ELK 스택으로 알고 있습니다. 개념은 익히 들어 알고 있지만 이 내용을 실제로 다뤄본적은 없는데요. IT 인터넷 강의 사이트 "인프런"에서 ELK 스택 관련 강좌를 무료로 제공하고 있습니다. 개발에 욕심있는 개발자라면 관심을 가질만한 기술 스택입니다.




강좌명은 "ELK 스택(ElasticSearch, Logstash, Kibana)으로 데이터"이며,

총 19개 강의로 1시간 19분으로 구성되어 있습니다.


섹션1. 데이터과학 소개 및 환경 구축

01 데이터 과학 소개 - 02:00 수강완료

02 우분투에 엘라스틱서치 설치하기 - 03:00 수강완료


섹션2. 엘라스틱서치(ElasticSearch)

03 엘라스틱서치 기본 개념 정리 - 03:00 수강완료

04 엘라스틱서치 데이터 입력 조회 삭제(GET, POST, PUT, DELETE) - 07:00 수강완료

05 엘라스틱서치 데이터 업데이트(UPDATE) - 04:00 수강완료

06 엘라스틱서치 - 벌크(Bulk) - 02:00 수강완료

07 엘라스틱서치 매핑(Mapping) - 05:00 수강완료

08 엘라스틱서치 데이터 조회(Search) - 02:00 수강완료

09 엘라스틱서치 메트릭 어그리게이션(Metric Aggregation) - 04:00 수강완료

10 엘라스틱서치 버켓 어그리게이션(Bucket Aggregation) - 07:00 수강완료


섹션3. 키바나(Kibana)

11 키바나 설치(Kibana setup & install) - 01:00

12 키바나 매니지먼트(Kibana management) - 03:00

13 키바나 디스커버(Kibana discover) - 04:00

14 키바나 비주얼라이즈(Kibana Visualize) 막대그래프, 파이차트 - 03:00

15 키바나 비주얼라이즈(Kibana Visualize) 타일맵, 지도에 표시 - 03:00

16 키바나 대시보드(Dashboard) - 02:00


섹션4. 로그스테시(Logstash)

17 로그스태시 인스톨 셋업 (logstash install) - 03:00


섹션5. 실전 ELK 활용한 실데이터 분석

18 실전 인구분석 - 11:00

19 실전 주식분석 - 10:00



강좌별 상세 내용, 개념 강좌를 듣고 제가 추가적으로 공부하고 싶은 부분에 대해서는 ELK 스택 카테고리에 차근차근 정리해 나가보려고 합니다.



다음은 조대협님 블로그( http://bcho.tistory.com/ )에서 퍼온 오픈소스 기반의 로그 수집 시스템에 대한 포스팅 일부 발췌입니다. ELK 스택을 알아가기전 아래 내용을 참고해보는 것도 도움이 될 것 같아, 내용을 추가합니다.



오픈 소스 기반의 분석 솔루션

오픈 소스를 조합해서 모바일 로그 수집 시스템을 만들면 대략 다음과 같은 모양이 됩니다.


API 서버에서 로그를 수집해서 카프카등의 큐를 통해서 로그를 모으고, 실시간은 스파크 스트리밍, 배치는 하둡이나 스파크 스트리밍 프레임웍을 이용합니다. 대쉬 보드는 만드는 곳도 있지만, 주피터 노트북이나 제플린 노트북과 같은 노트북을 이용합니다.


요즘은 데이타 저장 및 분석에 ELK (Elastic Search + Logstash + Kibana)와 같은 솔루션도 많이 사용하고 있습니다.


그런데 이런 오픈 소스 솔루션 기반으로 로그 분석 시스템을 개발하면 몇가지 문제가 발생합니다.


개발에 드는 노력

이런 오픈소스 스택으로 시스템을 개발하려면, 이 프레임웍에 대해서 잘 아는 전문가가 필요합니다. 일반적인 스타트업에서는 구하기도 힘들고, 기업이 어느정도 규모가 되더라도 빅데이타 관련 기술을 다룰 줄 아는 엔지니어는 여전히 귀한 엔지니어이고, 이런 엔지니어들이 있다하더라도, 시스템 설계및 구현에는 수개월의 기간이 소요 되게 됩니다. 


시스템 구매와 운영

다음 문제는 모바일 데이타는 양이 많기 때문에, 위에서 언급한 빅데이타 관련 오픈 소스를 사용하게 되는데, 이러한 시스템은 하드웨어 자원이 수십에서 수백대가 필요하거니와, 이를 설치하고 운영하는 것 역시 쉽지 않습니다.

로그를 수집하고 분석하는 로직을 만들어야 하는 엔지니어들이 정작 데이타 분석 보다는 시스템 운영과 유지보수에 많은 시간을 낭비해야 한다는 문제가 발생합니다.

규모가 작은 스타트업이나 엔지니어링 능력이 되지 않는 기업들은 이런 빅데이타 분석은 엄두도 내지 못하는 상황이 되고, 디테일한 데이타 분석을 하지 못하게 되니 자연히 경쟁력이 떨어지게 될 수 있습니다.


연산 시간

그리고 수집 수백대의 서버를 가지고 있다하더라도, 데이타 연산 시간은 수십분에서 수시간이 소요된다. 특히 데이타 분석 서버들이 분석을 하고 있을때는 다른 분석을 하고 싶은 사람들은 연산이 끝날때 까지 기다려야 하고, 수시간을 들여서 연산한 결과라도 연산이 잘못되었으면 다시 로직을 수정해서 수시간 동안 다시 연산을 해야 합니다. 

비지니스 조직 입장에서는 지표 분석 결과를 얻는데, 수시간이 걸리니 의사 결정의 민첩성이 떨어지게 됩니다.