> For the complete documentation index, see [llms.txt](https://madebybk.gitbook.io/eks-observability-workshop/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://madebybk.gitbook.io/eks-observability-workshop/opensearch/kibana-visualization.md).

# Kibana로 데이터 Visualization 하기

Kibana는 ElasticSearch를 백엔드로 사용해 데이터 visualization과 analysis를 할 수 있게 도와주는 프론트엔드 web application입니다. 이번 워크샵에서는 Kibana의 대표적 visualization 도구들을 사용하지만 Kibana는 아주 다양한 분석툴들을 제공하고 있습니다.

## 데이터 Visualization

### JSON Generator로 데이터 보내기

1\. Random Log Generator로 초당 **10 record**를 **5분**동안 보냅니다.

<img src="https://191203108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD3cBsHHLJOxrffAg7tbM%2Fuploads%2FslxQl1swNR2e3iij5YYp%2Ffile.drawing.svg?alt=media&amp;token=d56cf4e2-52ad-4ef3-926c-a62db5bb7976" alt="" class="gitbook-drawing">

### Index Patterns

2\. OpenSearch의 Stack Management -> Index pattern -> Create new pattern에 접속해 새로운 Index Pattern을 생성합니다.

<img src="https://191203108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD3cBsHHLJOxrffAg7tbM%2Fuploads%2FVla6IT84Z0wT0Iaf3Bjq%2Ffile.drawing.svg?alt=media&amp;token=000c9906-d2c4-4c1f-b34c-d774ab858b65" alt="" class="gitbook-drawing">

3\. 이전에 정했던 *eksapp-log-\** 를 입력합고 **Next Step**을 클릭합니다.

<img src="https://191203108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD3cBsHHLJOxrffAg7tbM%2Fuploads%2FTBfNW5Ovo8mTanyS75N2%2Ffile.drawing.svg?alt=media&amp;token=a4bee923-f67e-4e04-b13f-bff4d61b30cf" alt="" class="gitbook-drawing">

4\. Time field에 *timestamp*를 입력하고 **Create index pattern**을 클릭해 index pattern을 생성합니다.

<img src="https://191203108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD3cBsHHLJOxrffAg7tbM%2Fuploads%2Feaao7UMSZ9dUwz5ZoMxg%2Ffile.drawing.svg?alt=media&amp;token=7a37561e-c85d-44ff-a0e2-87ab62bdfd8e" alt="" class="gitbook-drawing">

### Discover

5\. OpenSearch Dashboard에서 **Discover** 창으로 이동합니다. 발생한 로그가 정상적으로 전송 되는지 확인할 수 있습니다.

<img src="https://191203108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD3cBsHHLJOxrffAg7tbM%2Fuploads%2FWSBp2hkU6hzBZgsuS1gv%2Ffile.drawing.svg?alt=media&amp;token=fdbecdd0-bd71-4314-bbe7-71943d5ab643" alt="" class="gitbook-drawing">

### Visualize (Pie)

이번엔 샘플 로그 `status` 의 결과(*OK, WARN, FAIL*)를 분석합니다.

6\. OpenSearch Dashboard에서 **Discover** 창으로 이동해서 **Create new visualization**을 클릭합니다.

<img src="https://191203108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD3cBsHHLJOxrffAg7tbM%2Fuploads%2FxKM4yCjSGP7Xaepc7HOR%2Ffile.drawing.svg?alt=media&amp;token=02cc9292-5bf7-46a9-aa97-a4d7ad21435d" alt="" class="gitbook-drawing">

7\. **Pie**를 선택합니다.

<img src="https://191203108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD3cBsHHLJOxrffAg7tbM%2Fuploads%2FMAryv51OCCQGt1HEAFWJ%2Ffile.drawing.svg?alt=media&amp;token=9d214e96-2b79-4c36-8e31-550686efb149" alt="" class="gitbook-drawing">

8\. 이전에 정한 index를 클릭합니다.

<img src="https://191203108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD3cBsHHLJOxrffAg7tbM%2Fuploads%2Fxy9AqeANBOQjcSDXV9Fl%2Ffile.drawing.svg?alt=media&amp;token=02152cbd-741f-45ac-a659-94025b7efa52" alt="" class="gitbook-drawing">

9\. 다음과 같이 요구사항을 선택하고 **Update**를 클릭합니다.

* Aggregation: **Count**
* Buckets: **Split slices**
* Aggregation: **Terms**
* Field: **status.keyword**

<img src="https://191203108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD3cBsHHLJOxrffAg7tbM%2Fuploads%2FQkR6Zz8PI0sPxzDWrd33%2Ffile.drawing.svg?alt=media&amp;token=d2e309ff-544b-4083-aafa-bd028d2b1912" alt="" class="gitbook-drawing">

10\. 보시다시 분석된 데이터를 이해하기 쉽게 시각화 할 수 있습니다.

<img src="https://191203108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD3cBsHHLJOxrffAg7tbM%2Fuploads%2FhAgYSCBgAbPVEtxUopRh%2Ffile.drawing.svg?alt=media&amp;token=166e9ee1-f86c-4d8c-bfaa-b7f372da2a53" alt="" class="gitbook-drawing">

### Visualize (Area)

11\. 이번엔 Area를 선택합니다.

<img src="https://191203108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD3cBsHHLJOxrffAg7tbM%2Fuploads%2F6vRPaR3USGwsvOe41IR3%2Ffile.drawing.svg?alt=media&amp;token=5952aa3e-d889-42ef-8d7f-2f8bc23edaf8" alt="" class="gitbook-drawing">

12\. 다음과 같이 Bucket 내용을 설정합니다.

* Aggregation: **Date Histogram**
* Field: **timestamp**
* **Split Series**
* Sub aggregation: **Terms**
* Field: **status.keyword**
* Order by: Metric: **Count**

<img src="https://191203108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD3cBsHHLJOxrffAg7tbM%2Fuploads%2FNEcPSpyJcM7RMMm1Sjeg%2Ffile.drawing.svg?alt=media&amp;token=385eedf1-0276-464b-8abe-84e02f30d989" alt="" class="gitbook-drawing">

13\. 마지막으로 쿼리를 `status:OK|WARN|FAIL` 로 정하면 다음과 같이 status를 결과별로 확인할 수 있습니다.

<img src="https://191203108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD3cBsHHLJOxrffAg7tbM%2Fuploads%2FvMHKr3mMm6KTvynd7zgU%2Ffile.drawing.svg?alt=media&amp;token=0f7007d9-93cb-48e0-9f59-95e994907b56" alt="" class="gitbook-drawing">
