엔지니어링

Kibana에서 캔버스 시작하기

2018년 12월 21일 캔버스는 Kibana 6.5 이상 버전과 함께 제공되며 더 이상 따로 설치할 필요가 없습니다.

수동으로 스코어보드와 프레젠테이션을 업데이트하는 것은 이제 과거의 방식입니다.

캔버스는 Kibana에 기본 제공되는 프레젠테이션 도구로서 사용자가 Elasticsearch에서 직접 실시간 데이터를 가져와 픽셀까지 정확한 프레젠테이션과 슬라이드 덱을 만들 수 있게 해줍니다. 이는 프레젠테이션을 위해 수동으로 업데이트할 필요 없이 시각자료, 차트 요소, 그래픽이 실시간 최신 상태로 유지된다는 뜻입니다. 그러나 캔버스는 그 밖에도 수많은 것들을 할 수 있으며 이 글에서 다루는 주된 사용 사례 뿐 아니라 훨씬 더 많은 것을 위해 사용할 수 있는 유연성을 갖추고 있습니다.

다음은 캔버스의 개발자인 Rashid Khan이 Elastic{ON} 2018에서 캔버스에 대한 비전을 소개하는 동영상입니다.

캔버스를 사용하는 이유

프레젠테이션을 만드는 것은 시간이 오래 걸리는 프로세스일 수 있습니다. 특히, 순수한 JSON 상태가 아니라 좀더 청중의 구미에 맞도록 발표 데이터를 많이 가공해야 하는 경우에는 더 그렇습니다. 막대 그래프의 스크린샷을 캡처해서 프레젠테이션 안에 이미지를 끌어놓는 것 정도로 간단한 것도 막대 그래프를 정기적으로 업데이트해야 하는 경우에는 무척 지루한 작업이 될 수 있습니다. 안타깝게도 데이터를 내보내고 정리하고 프레젠테이션에 붙여넣고 이미지를 추가하는 등의 작업을 해야 하는 경우가 많습니다. 이것은 곧 아주 괴롭고 고된 프로세스가 될 수 있습니다.

이런 걱정 때문에 즉석에서(즉, 프레젠테이션 중에 실시간으로) 바로 여러 가지 사항을 조정할 수 있는 가능성에 대해서는 생각조차 시작해 볼 수가 없습니다. 분기별로 분할된 회사 영업이익 보고서를 보여주는 슬라이드가 담긴 프레젠테이션을 상상해 보세요. 프레젠테이션 중에 CEO가 월별로 분할된 영업이익 보고서를 보여달라고 요청하면 어떻게 될까요? 누군가가 미리 슬라이드를 준비하지 않았다면 발표자는 그저 “저...나중에 그 정보를 보내드리겠습니다.”라고 말할 수 밖에 없을 것입니다.

캔버스는 프레젠테이션에서 끊임없이 시각화를 업데이트해야 하는 지루한 작업을 없애줄 뿐 아니라 사용자가 즉석에서 데이터를 수정할 수 있는 강력한 도구와 필터를 제공하여 대단히 유연하고 동적이며 매력적인 프레젠테이션을 할 수 있도록 해줍니다.

캔버스 필수 구성 요소와 설치

필수 구성 요소

캔버스를 시작하려면 다음이 필요합니다.

  • 데이터를 저장하고 색인하기 위한 Elasticsearch
  • UI를 위한 Kibana

이미 이런 요소들을 설치해서 실행하고 있지 않은 경우, Elastic Stack 시작하기에서 자세한 정보를 참조하세요. 또한 빠른 배포 리포지토리에서도 우분투가 설치된 컴퓨터에서 몇 분 만에 손쉽게 Elasticsearch와 Kibana 실행을 시작하는 방법을 알려드립니다.

캔버스 설치

버전 6.5에서부터는 캔버스가 Kibana의 기본 배포에 포함됩니다. ElasticsearchKibana만 설치하면 캔버스를 시작하실 수 있습니다. (유의사항: 이 섹션은 2018년 12월에 업데이트되었으며 버전 6.5 이상에 대한 지침이 포함되어 있습니다.)

데이터 소스

이 자습서에서는 쉽고 빠르며 상대적으로 예측가능한 실시간 데이터 소스로 Metricbeat를 사용하려고 합니다.

1. Metricbeat 다운로드 및 압축 풀기

Metricbeat 다운로드 페이지에 가서 해당 OS에 맞는 적절한 binary를 다운로드합니다. 일단 다운로드하면 파일의 압축을 풀어줍니다. 압축을 풀면 Metricbeat 디렉터리에 파일이 몇 개 있는 것을 볼 수 있습니다.

2. Metricbeat 구성

다음으로는 Elasticsearch 인스턴스로 데이터를 보내기 위해 Metricbeat를 구성해야 합니다. 가장 선호하는 코드 편집기에서 metricbeat.yml을 엽니다. Elasticsearch 인스턴스의 위치에 따라 아래와 같이 설정합니다.

  1. 로컬인 경우: 기본 구성이 이미 설정되어 Elasticsearch( http://localhost:9200에서 실행)로 데이터를 전송하므로 아무 것도 변경할 필요가 없습니다. 무엇인가 변경해야 하는 경우, 프로세스는 다음 단계와 같습니다.
  2. 원격인 경우: Elasticsearch 출력 섹션으로 가서 인스턴스를 가리키도록 수정합니다.
    setup.kibana:
      host: "url-to-my-kibana-instance:5601"
    ...
    ...
    output.elasticsearch:
      hosts: ["url-to-my-elasticsearch-instance:9200"]
    	

3. Metricbeat 실행

metricbeat.yml 파일을 저장합니다. 그 다음 -setup 옵션으로 metricbeat를 실행합니다. 이 옵션은 기본 메트릭 대시보드를 Kibana에 로드하도록 시스템에게 알려줍니다.

./metricbeat -c metricbeat.yml -setup -e

팁: Metricbeat을 실행할 때 -e 옵션을 추가하는 경우, 실행하면서 로그를 볼 수 있습니다.

첫 번째 캔버스 워크패드를 만드는 방법

캔버스 프로젝트를 “워크패드"라고 부릅니다. 워크패드는 프레젠테이션과 비슷한 것인데 여러 페이지가 될 수 있습니다.

  1. 일단 캔버스 설치가 끝나고 Metricbeat 설정을 마치면, Kibana 인스턴스로 탐색해 가서 사이드바에서 캔버스를 선택합니다(아래에 나와 있는 대로).
  2. “워크패드 만들기"를 클릭합니다.
  3. 워크패드에 고유한 이름을 붙입니다.

image1.gif

캔버스 인터페이스 해부


canvas.jpg

  1. 버튼
    • 데이터 갱신 주기 설정 - 캔버스가 Elasticsearch로부터 업데이트를 확인하는 간격을 설정합니다.
    • 전체 화면 설정/해제 - "프레젠테이션 모드"를 설정/해제합니다.
    • 워크패드 내보내기 - 워크패드를 PDF 파일로 내보냅니다.
    • 사이드바 편집 설정/해제 - 위 다이어그램에서 섹션 6을 숨깁니다.
  2. 요소 추가 - 차트, 그래프, 이미지 등을 캔버스 워크패드에 추가할 수 있도록 요소 선택기를 엽니다.
  3. 요소 레이어 컨트롤 - 합성과 숨기기를 할 수 있도록 어느 요소가 위로 올지 선택합니다.
  4. 요소 복제 - 유의사항: 이 작업을 하려면 요소가 선택되어야 합니다.
  5. 캔버스 워크패드 - 기본 작업 영역입니다.
  6. 컨트롤 편집 - 글꼴, 색상, 사용자 정의 스타일시트 등 선택된 요소에 대한 속성 편집을 보여주는 컨텍스트 인식 패널입니다.
  7. 캔버스 메인 메뉴 열기 - 여러 워크패드를 탐색하고 워크패드 클론, 가져오기, 내보내기, 삭제를 수행합니다.
  8. 페이지 컨트롤 - 새 페이지를 추가하거나 기존 페이지들 사이를 전환합니다.
  9. 요소 코드 편집기 - 확실하지 않은 경우, 코드 작업을 합니다. 쿼리, 서식, 파이프라인에 대해 완전한 유연성을 보여줍니다(나중에 다른 포스팅에서 좀 더 자세히 다루겠습니다).

캔버스에서 첫 번째 요소 만들기

요소 유형

  1. “요소 추가"를 클릭합니다.
  2. 캔버스는 즉시 활용할 수 있는 수많은 기본 제공 요소를 갖추고 있습니다. “수평 막대 차트" 요소를 선택합니다.
    팁: 요소가 최초로 생성되면 데모 데이터가 자동으로 채워져서 즉시 응용을 시작할 수 있습니다!
  3. 오른쪽에 있는 패널에서 “데이터" 탭을 선택합니다.
  4. “데이터 소스 변경"을 클릭합니다.
  5. "Elasticsearch 원시 문서”를 선택합니다.

    image5_small.png데이터 소스 설명:

    • 데모 데이터: 새로운 캔버스 요소를 최초로 생성할 때 사용되는 작은 샘플 데이터 세트입니다. 대부분 테스팅 목적으로 사용됩니다.
    • Elasticsearch 원시 문서: Elasticsearch에 있는 원시 데이터에 접근할 수 있게 해줍니다.
    • Timelion: Timelion은 Elasticsearch에 있는 시계열 데이터를 처리하는 특수한 방법을 제공해 줍니다.
    • Elasticsearch SQL: 원시 문서와 비슷하게, SQL 구문 기능을 사용해 Elasticsearch에 있는 데이터에 접근할 수 있게 해줍니다.
  6. 드롭다운 목록에서 metricbeat-* 인덱스를 선택합니다.
  7. 사이드바의 아래쪽으로 가서 “저장"을 클릭합니다.
  8. 사이드바의 위쪽으로 돌아가서 “표시" 탭을 선택합니다.
  9. 메트릭세트의 이름에 대해 왕복 시간을 표시하게 되며 다음과 같이 막대 그래프의 축을 설정합니다.
    • X-Axis:
    • X축:
      • 단위: 값
      • 필드: metricset.rtt
    • Y-Axis
    • Y축
      • 단위: 값
      • 필드: metricset.name
    • Color
    • 색상
      • 단위: 값
      • 필드: metricset.name

한 가지 요소를 더 추가해 보겠습니다.

  1. “요소 추가"를 클릭합니다.
  2. “메트릭" 요소를 선택합니다.
  3. 이것을 좀더 잘 볼 수 있는 다른 곳으로 끌어서 놓습니다.
  4. 오른쪽에 있는 패널에서 “데이터" 탭을 선택합니다.
  5. 이번에는 "Elasticsearch SQL"을 선택합니다.
  6. SQL 쿼리 편집기에 다음을 입력합니다.
    SELECT COUNT(*) FROM metricbeat*
  7. “저장"을 클릭합니다.
  8. 이제 요소가 경고를 표시하는 것을 주의해서 보세요. 이것은 요소가 더 이상 아무 데이터도 가져오지 않고 있기 때문입니다.
  9. 사이드바의 위쪽에서 “표시" 탭을 선택합니다.
  10. “숫자" 섹션에서 다음을 설정합니다.
    • 단위:
    • 필드: COUNT_1
  11. 이 요소에 대한 라벨을 “항목"으로 변경합니다. 이것이 Elasticsearch에 있는 항목의 숫자를 보여주고 있기 때문입니다.
  12. Metricbeat가 계속 실행 중인 한, 이 숫자가 실시간으로 업데이트되는 것을 보게 됩니다. 스크린의 왼쪽 상단에서 “새로 고침"을 클릭합니다.
  13. 새로 고침 빈도를 5초로 설정합니다.
  14. 프레젠테이션이 실시간 데이터로 업데이트되는 걸 지켜보세요!

image4.gif

더 이상 수동으로 프레젠테이션을 업데이트할 필요가 없습니다!

유용한 다른 리소스 링크

축하드립니다! Metricbeat를 통해 실시간 데이터가 연결된 첫 번째 캔버스 워크패드를 방금 만드셨습니다. 워크패드에 다른 요소들도 추가해 보시고 캔버스의 기능을 실험해 보세요!

아울러, 여기에서 다른 캔버스 자습서도 확인해 보세요.


배너 이미지: "By hand" by Eric Kilby, CC BY에 따라 사용됨 / 원본에서 자름