How To : 키바나를 시작하는 방법
키바나(Kibana)는 브라우저 인터페이스를 이용, 많은 데이터를 쉽게 검색, 시각화, 탐색할 수 있는 오픈소스 분석 및 시각화 도구다. 엘라스틱서치(Elasticsearch), 로그스태시(Logstash), 비츠(Beats)와 함께 엘라스틱 스택(Elastic Stac, 기존 ELK 스택)의 핵심 구성요소다.
ⓒ Getty Images Bank
엘라스틱 스텍의 핵심 구성요소인 검색 엔진 엘라스틱서치는 검색과 분석에 가장 많이 사용되는 오픈소스 프로젝트 가운데 하나다. 엘라스틱서치는 키바나에서 탐색하는 데이터를 검색, 저장, 분석하는 도구로, 검색 엔진과 데이터 스토어, 분석 엔진이 통합되어 있다.
사용자는 엘라스틱서치를 이용, 구글처럼 데이터를 검색하고, ‘내 웹사이트를 방문한 사람들이 살고 있는 국가는?’같은 질문을 물을 수 있다. 또 사용자가 더 큰 데이터 세트로 확장할 수 있을 정도로 아주 빠르고, 분산형이다. 이런 기능과 성능을 키바나의 ‘리치’ 사용자 인터페이스와 결합시키면 실시간으로 데이터를 탐색할 수 있는 솔루션이 구현된다.
엘라스틱서치와 키바나를 이용하면, 텍스트 문서부터 머신 로그, 애플리케이션 매트릭스, 전자상거래 트래픽, 센서 측정 데이터, 기업의 비즈니스 KPI 등 사실상 모든 종류의 데이터를 탐구할 수 있다.
엘라스틱서치에 데이터를 집어넣은 후, 키바나에서 이를 탐색 및 조사할 수 있다. 예를 들어, 키바나의 검색창을 사용해 데이터를 찾고, 다양한 차트를 사용해 데이터를 시각화 할 수 있으며, 실시간 대시보드로 이 시각화한 데이터를 활용할 수 있다. 또 사무실과 회사의 모든 사람이 볼 수 있도록 대형 스크린에 대시보드를 표시할 수도 있다.
이번 기사에서는 키바나에서 데이터를 탐색하고, 유용한 시각화를 구현하기 위해 반드시 알아야 할 모든 것을 소개한다. 데이터를 키바나에 집어넣는 방법, 키바나를 사용해 데이터를 탐색하는 방법, 키바나를 사용해 시각화와 대시보드를 구현하는 방법을 설명한다.
키바나에 데이터 추가하기
가장 먼저 할 일은 작업할 데이터를 키바나에 집어넣는 것이다. 배포판을 선택해서 엘라스틱서치를 실행시킨 후 키바나에 처음 로그인할 수 있다.
ⓒ Elastic
키바나 샘플 데이터나 자신의 데이터를 사용해 키바나에 대해 탐색할 수 있다. 후자의 경우, 키바나는 데이터를 가져올 수 있는 여러 다양한 방법을 제공한다. 예를 들어, 엘라스틱 제품군의 데이터 이동 도구인 비츠를 사용할 경우, 비츠가 데이터를 수집할 시스템을 선택하면, 비츠가 사용자를 대신에 계속 데이터를 수집한다.
또는 JSON이나 CSV 데이터를 갖고 있는 경우, 그냥 파일을 업로드하면 된다.
이번 기사는 키바나의 핵심 기능을 설명하기 위해 키바나에 기본 탑재된 샘플 데이터를 사용한다.
ⓒ Elastic
샘플 데이터를 추가하면, 키바나는 인덱스 패턴과 샘플 시각화, 대시보드를 만든다. 자신의 데이터를 추가하는 경우, 직접 키바나 인덱스 패턴을 만들어야 한다.
키바나 인덱스 패턴이란
엘라스틱서치는 인덱스로 데이터를 저장한다. 관계형 데이터베이스를 더 잘 알고 있다면 테이블과 비슷하다고 생각하면 된다. 인덱스 패턴은 사용자가 조사하기 원하는 엘라스틱서치 인덱스를 키바나에 알려준다. 엘라스틱서치에서 특정 인덱스를 대상으로 인덱스 패턴을 생성할 수 있다. 또는 와일드카드 문자인 *를 사용해 동시에 여러 인덱스를 쿼리할 수 있다. (데이터베이스에 여러 테이블을 구현하듯) 키바나에 여러 인덱스 패턴을 구현할 수 있다. 시각화를 생성하거나 데이터를 검색할 경우, 검색을 실행할 인덱스 패턴을 선택해야 한다.
키바나 알아보기
왼쪽의 키바나 메뉴에 여러 애플리케이션이 있다. 이번 기사에서는 데이터 인사이트를 찾는데 초점이 맞춰진 첫 3개의 애플리케이션을 소개한다. 디스커버(Discover)와 비주얼라이즈(Visualize), 대시보드(Dashboard)가 여기에 해당된다.
- 디스커버
디스커버는 원본 문서를 검색 및 필터링할 수 있는 도구다. 각 레코드가 한 개의 줄로 표시된다. 줄들을 확장, 각 레코드의 모든 필드와 값을 확인할 수도 있다.
왼쪽에 모든 필드가 나열된 사이드 메뉴가 있다. 디스커버는 특정 레코드를 검색할 때 유용하다. 몇 가지 방법으로 데이터를 검색할 수 있다.
구글 검색처럼 자유 텍스트 검색을 할 수 있다. 자유 텍스트 검색을 하면, 엘라스틱서치는 모든 문서를 검색해 검색한 키워드가 포함된 문서를 반환한다. 예를 들어, 검색창에 ‘error’라는 단어를 입력할 수 있다. 또는 자동 완성을 사용해 특정 필드에 대해 검색을 할 수도 있다.
ⓒ Elastic
디스커버는 테이블 형식으로 데이터를 표시하는 기능도 갖고 있다. 왼쪽 메뉴에서 필드를 선택하면, 해당 필드가 테이블의 열로 표시된다. 테이블 위의 히스토그램으로 시간 경과에 따른 문서의 분포를 빨리 확인할 수 있다. 특정 시간 범위를 클릭하면, 디스커버는 해당 시간 범위를 확대하고, 페이지가 새롭게 고쳐져 해당 범위에 속한 문서만 표시된다.
- 비주얼라이즈
한 장의 사진이 천 마디의 말보다 낫다는 말들을 많이 한다. 특히 복잡한 개념에 대해 전달할 때 잘 들어맞는 말이다. 비주얼라이즈는 기본 탑재된 여러 차트를 사용, 데이터를 시각화해 조사할 수 있는 도구다.
키바나는 여러 종류의 차트를 지원한다. 시계열 데이터이든 두드러진 특징이든 의도한 질문과 데이터 탐구 방법을 토대로 적절히 차트를 선택하는 것이 좋다. 더 나아가 지도를 선택할 수도 있다. 모두 라이브 데이터를 실시간 시각화해 조사할 수 있다.
키바나에서 찾을 수 없는 특정 시각화가 필요한 경우, 오픈소스 시각화 라이브러리인 베가(Vega)를 사용할 수 있다. 키바나에서 데이터를 시각화 할 때 이해하면 좋은 2가지 핵심 개념이 있다.
〮 버킷 집계(Bucket Aggregations): 버킷 집계는 문서를 버킷으로 묶는다. 단 한 개의 문서, 또는 여러 문서가 하나의 버킷을 구성할 수 있다. 또는 문서가 없을 수도 있다.
〮 매트릭스 집계(Metrics Aggregation): 버킷을 생성하면, 매트릭스 집계가 각 버킷의 값을 계산한다.
일일 평균 바이트의 수를 시각화하기 원한다고 가정하자. X축에 일일 버킷을 만든 후, 각 날짜에 해당되는 각 버킷의 평균 바이트를 계산할 수 있다.
ⓒ Elastic
원할 경우, 더 많은 매트릭스와 더 많은 버킷을 추가할 수 있다. 예를 들어, 최상위 3개 응답을 기준으로 평균 바이트를 표시할 수 있다.
ⓒ Elastic
이렇게 생성한 시각화를 대시보드에 저장 및 추가할 수 있다.
- 대시보드
대시보드에 추가해야 하는 이유는 무엇일까? 대시보드는 키바나의 아주 강력한 기능이다. 여러 관점에서 실시간으로 데이터를 확인할 수 있고, 동일한 관점에서 데이터를 다룰 수 있다. 또한 이 대시보드는 아주 ‘인터랙티브’하다.
〮 차트의 특정 영역을 선택, 특정 시간 범위로 확대한다.
〮 파이 차트의 조각 하나를 클릭해 해당 값으로 필터링한다.
그러면 대시보드의 패널은 선택한 영역에 초점을 맞춰, 이를 토대로 완전히 새로운 관점을 제공한다. 물론 검색창을 사용할 수도 있다. 원하는 검색어를 입력, 관련성이 가장 높은 데이터로 차트를 표시할 수 있다.
지금까지 기본적인 부분들을 소개했다. 여러 시각화를 구현, 첫 번째 대시보드에 추가하고, 데이터에서 인사이트를 얻을 수 있을 것이다.
가장 쉽게 키바나를 시작하는 방법은 14일간 무료로 사용할 수 있는 ‘Elasticsearch Service on Elastic Cloud’를 이용하는 방법이다. 엘라스틱이 제공하는 호스티드 엘라스틱서치 서비스이며, 여기에 키바나가 포함되어 있다. 원할 경우, 엘라스틱서치와 키바나를 노트북 컴퓨터에 다운로드 받아 실행시키거나, 데이터센터에 배포할 수 있다.