#log, #visualization, #ELK

πŸ“Š 둜그 μ‹œκ°ν™”λŠ” μ™œ μ€‘μš”ν• κΉŒ?

(자료 좜처 : https://www.lauriefrick.com/blog/not-data-visualization)

λ‘œκΉ…μ„ 톡해 κ°œλ°œμžλŠ” 개발 κ³Όμ • ν˜Ήμ€ 개발 후에 λ°œμƒν•  수 μžˆλŠ” μ˜ˆμƒμΉ˜ λͺ»ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 문제λ₯Ό 진단할 수 있고, λ‹€μ–‘ν•œ 정보λ₯Ό μˆ˜μ§‘ν•  수 μžˆλ‹€. λ‹¨μˆœνžˆ 둜그λ₯Ό ν™•μΈν•œλ‹€λŠ” 것은 좔상적인 ν–‰μœ„λ‘œ 보인닀. 기둝을 λ‚¨κΈ°λŠ” 것이 μ•„λ‹Œ ꡬ체적으둜 μ–΄λ–€ 정보λ₯Ό μ–΄λ–»κ²Œ ν™•μΈν•˜κ³  κ΄€λ¦¬ν•˜λŠ”μ§€κ°€ λ‘œκΉ…μ˜ 핡심이라고 μƒκ°ν•œλ‹€.

λ‘œκ·ΈλŠ” μ‹œκ°„μ˜ 경과에 따라 μˆ˜μ§‘λœ λ°μ΄ν„°μ˜ ν•œ μ’…λ₯˜λ‘œ λ³Ό 수 μžˆλ‹€. 그러면 데이터 μ‹œκ°ν™”μ˜ μž₯점은 곧 둜그 μ‹œκ°ν™”μ˜ μž₯점으둜 λ³Ό 수 μžˆλ‹€. 둜그 μ‹œκ°ν™”λŠ” μ–΄λ–€ μž₯점이 μžˆμ„κΉŒ?

πŸ‘€ λ°©λŒ€ν•œ 데이터λ₯Ό λΉ λ₯΄κ²Œ 확인할 수 μžˆλ‹€.

image

image

ν•œ 달간 λ°œμƒν•œ μ—λŸ¬μ— λŒ€ν•œ 둜그λ₯Ό 각각 μˆ˜μΉ˜ν™”μ™€ κ·Έλž˜ν”„ν™”λ‘œ λ‚˜νƒ€λ‚Έ 것이닀. κ³Όμ—° μ–΄λ–€ 것이 더 λΉ λ₯΄κ²Œ μ΄ν•΄ν•˜κ³  λ§Žμ€ 정보뢄석이 κ°€λŠ₯ν•œκ°€? 일반적으둜 κ·Έλž˜ν”„λ‘œ ν‘œν˜„ν•œ μ•„λž˜μͺ½μ΄ 더 λΉ λ₯΄κ³  넓은 λ²”μœ„μ— λŒ€ν•΄ μ΄ν•΄ν•˜κΈ° 쉽닀. μ›ν•˜λŠ” 기간을 νŠΉμ •ν•΄μ„œ 둜그λ₯Ό 뢄석할 λ•Œλ„ μ‹œκ°ν™”λ₯Ό ν•œλ‹€λ©΄ 훨씬 λΉ λ₯΄κ³  μ •ν™•ν•˜κ²Œ 이해가 κ°€λŠ₯ν•˜λ‹€. λΉ…λ°μ΄ν„°μ˜ ν™œμš©μ—μ„œ μ‹œκ°ν™”κ°€ κ°•μ‘°λ˜λŠ” μ΄μœ λ„ 여기에 μžˆλ‹€.

πŸ’‘ μ „λ¬Έ 지식이 없어도 μ‰½κ²Œ λΆ„μ„λœ 데이터λ₯Ό 이해할 수 μžˆλ‹€.

인간은 감각기관을 톡해 νšλ“ν•˜λŠ” μ •λ³΄μ˜ 80% 이상이 μ‹œκ°μ„ ν†΅ν•΄μ„œ μ–»λŠ” μ§€κ·Ήνžˆ μ‹œκ°μ μΈ 동물이닀. 그만큼 μ‹œκ°ν™”μ˜ νš¨κ³ΌλŠ” 크며 개발자 μž…μž₯μ—μ„œλ„ μ‹œκ°ν™”λ₯Ό ν•΄λ‘” 편이 이해가 더 쉽닀. ν•˜μ§€λ§Œ 자칫 잘λͺ»λœ ν‘œν˜„ λ•Œλ¬Έμ— μ‹œκ°μ— μ˜ν•΄ λ°œμƒν•˜λŠ” 였λ₯˜λ₯Ό λ²”ν•˜λŠ” 상황이 λ°œμƒν•  수 μžˆμœΌλ‹ˆ μœ μ˜ν•΄μ•Ό ν•œλ‹€.

image

μœ„μ˜ μ˜ˆμ‹œλ₯Ό μ‚΄νŽ΄λ³΄μž. κ°œλ°œμžλ‘œμ„œλŠ” μ–΄λ–€ μ˜ˆμ™Έλ‘œ 인해 μ—λŸ¬κ°€ λ°œμƒν–ˆλŠ”μ§€ 이해할 수 μžˆλ‹€. κ·ΈλŸ¬λ‚˜ κ°œλ°œμžκ°€ μ•„λ‹Œ μ‚¬λžŒμ΄ ν•΄λ‹Ή 데이터λ₯Ό λΆ„μ„ν•œλ‹€λ©΄ μ΄ν•΄ν•˜λŠ”λ° 사전지식이 ν•„μš”ν•˜λ‹€. κ·ΈλŸ¬λ‚˜ μ•„λž˜ μ˜ˆμ‹œμ²˜λŸΌ μ‹œκ°ν™”ν•΄λ‘λ©΄ 사전지식이 없어도 이해할 수 μžˆλ‹€λŠ” μž₯점이 μžˆλ‹€.

image

λˆ„κ΅¬λ‚˜ μ‰½κ²Œ 데이터 μΈμ‚¬μ΄νŠΈλ₯Ό 찾을 수 μžˆλ‹€λŠ” 것은 데이터 ν™œμš©λ²”μœ„κ°€ 넓어지고 μƒˆλ‘œμš΄ κ°€μΉ˜ 창좜의 λ²”μœ„κ°€ ν™•λŒ€λœλ‹€κ³  생각할 수 μžˆλ‹€.

πŸ“ μ •ν™•ν•œ 데이터 뢄석 κ²°κ³Όλ₯Ό λ„μΆœν•  수 μžˆλ‹€.

일반적으둜 데이터λ₯Ό μ‹œκ°ν™”ν•œλ‹€λ©΄ λΆ„μ„μ˜ μš©λ„λ³΄λ‹€λŠ” λ‚¨μ—κ²Œ 보여주기 μœ„ν•œ μš©λ„λ‘œ μ‚¬μš©λœλ‹€κ³  μƒκ°ν•˜κΈ° 쉽닀. ν•˜μ§€λ§Œ 데이터 μ‹œκ°ν™”λŠ” λ‹¨μˆœνžˆ 뢄석 κ²°κ³Όλ₯Ό μ „λ‹¬ν•˜κΈ° μœ„ν•œ λͺ©μ  외에도 μ •ν™•ν•œ 뢄석을 μœ„ν•œ 데이터 탐색 λ°©λ²•μœΌλ‘œ ν™œμš©λœλ‹€. 예λ₯Ό λ“€λ©΄ 평균, ν‘œμ€€νŽΈμ°¨, 상관관계가 λ™μΌν•œ μš”μ•½ 톡계λ₯Ό 가진 데이터셋을 가지고 μ‚°μ λ„λ‘œ μ‹œκ°ν™”λ₯Ό ν•œλ‹€λ©΄ μ‹œκ°μ  νŒ¨ν„΄μ΄ λͺ…ν™•νžˆ λ‹€λ₯Έ 것을 μ•Œ 수 μžˆλ‹€. μ•„λž˜ μ΄λ―Έμ§€λŠ” 1973λ…„ F.J.Anscombeκ°€ κ°œλ°œν•œ Anscomes’ Quarter λ‹€.

image

πŸ‘ 효과적인 데이터 μΈμ‚¬μ΄νŠΈ 곡유둜 μ˜μ‚¬κ²°μ •μ„ 진행할 수 μžˆλ‹€.

λ³΄κ³ μ„œλ₯Ό μ œμΆœν•˜κ±°λ‚˜ λ°œν‘œλ₯Ό ν•  λ•Œ μ„€λͺ…κ³Ό ν•¨κ»˜ μ „λ‹¬λ˜λŠ” λ¬Έμ„œμ˜ μ‹œκ°ν™” μ°¨νŠΈλŠ” λ©”μ‹œμ§€ 전달을 효과적으둜 λ’·λ°›μΉ¨ν•˜λŠ” κ·Όκ±° μžλ£Œκ°€ λœλ‹€. λ“£λŠ”μ΄κ°€ μ‰½κ²Œ 이해할 수 μžˆλ„λ‘ 도와주고, 곡감을 얻을 수 μžˆλ‹€.

λ‹€μ–‘ν•œ 둜그 데이터λ₯Ό ν•œκ³³μ—μ„œ μ‚΄νŽ΄λ³΄λ €λ©΄ λŒ€μ‹œλ³΄λ“œλ₯Ό ν™œμš©ν•  수 μžˆλ‹€. λŒ€μ‹œλ³΄λ“œλŠ” λ‹€μˆ˜μ˜ 쑰직 ꡬ성원이 λŒ€μ‹œλ³΄λ“œλ₯Ό κ³΅μœ ν•˜λ©° 각기 λ‹€λ₯Έ κ΄€μ μ—μ„œ 데이터λ₯Ό νƒμƒ‰ν•˜κ³  μΈμ‚¬μ΄νŠΈλ₯Ό λ„μΆœν•  수 μžˆλ‹€. μ‹œκ°ν™” 차트둜 κ΅¬μ„±λœλ‹€λŠ” 것은 데이터 뢄석 κΈ°μˆ μ„ 가진 개발자 μ΄μ™Έμ˜ μ‚¬λžŒλ„ μ‰½κ²Œ 데이터 ν™œμš©μ„ ν•  수 있게 ν•œλ‹€. 각자 μ΄ν•΄ν•œ λ‚΄μš©μ„ λ°”νƒ•μœΌλ‘œ 데이터λ₯Ό 근거둜 ν•œ μ€‘μš”ν•œ μ˜μ‚¬κ²°μ •μœΌλ‘œ μ΄μ–΄μ§ˆ 수 μžˆλ‹€.

✍️ λ‹€μ–‘ν•œ 뢄야에 데이터λ₯Ό ν™œμš©ν•  수 μžˆλ‹€.

특히 둜그 μ‹œκ°ν™”λŠ” 기술적인 둜그뿐만 μ•„λ‹ˆλΌ μ‚¬μš©μž 정보 λ‘œκ·Έμ—μ„œλ„ κ·Έ 진가λ₯Ό λ°œνœ˜ν•œλ‹€. 이λ₯Όν…Œλ©΄ λ‹¨μˆœ λ¬Έμžμ—΄λ‘œλ§Œ μ €μž₯되면 μ‰½κ²Œ μΈμ§€ν•˜μ§€ λͺ»ν•˜λŠ” λΆ€λΆ„λ“€(ν”„λ‘œλ•νŠΈ μ‚¬μš©μžλ“€μ˜ μ‹€μ‹œκ°„ 관심사)을 보고 λΉ λ₯΄κ²Œ μ˜μ‚¬κ²°μ •μ„ μ§„ν–‰ν•¨μœΌλ‘œμ¨, μ‚¬μš©μžμ—κ²Œ 더 λ§Žμ€ 관심사 λ…ΈμΆœμ„ μœ λ„ν•  수 μžˆλ‹€.

이런 λ‹€μ–‘ν•œ μž₯점이 μ‘΄μž¬ν•˜κΈ° λ•Œλ¬Έμ— 둜그 μ‹œκ°ν™”λ₯Ό λ„μž…ν•˜λŠ” 것은 큰 도움이 λœλ‹€κ³  μƒκ°ν•œλ‹€. κ·Έλ ‡λ‹€λ©΄ 둜그 μ‹œκ°ν™”λŠ” μ–΄λ–»κ²Œ ν•˜λŠ” κ²ƒμΌκΉŒ?

둜그 μ‹œκ°ν™” 도ꡬ

λ§Žμ€ μ–‘μ˜ 둜그λ₯Ό μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ€‘μ•™ν˜• 집쀑 λ‘œκΉ… 방식을 톡해 둜그λ₯Ό μ €μž₯ν•œλ‹€. 이 κ³Όμ •μ—μ„œ 주둜 Kibana ν˜Ήμ€ Grafana κ°€ μ‚¬μš©λœλ‹€. 두 μ‹œκ°ν™” 도ꡬ λ‹€ Elasticsearch λ₯Ό 톡해 μ‹œκ°ν™”λ₯Ό μ‚¬μš©ν•  수 μžˆμœΌλ‹ˆ κ°„λ‹¨ν•˜κ²Œ Elasticsearch κ°€ μ–΄λ–€ 것인지뢀터 μ•Œμ•„λ³Έλ‹€.

Elasticsearch (둜그 μ €μž₯ 및 검색)

ν…μŠ€νŠΈ, 숫자, μœ„μΉ˜ 기반 정보, μ •ν˜• 및 λΉ„μ •ν˜• 데이터 λ“± λͺ¨λ“  μœ ν˜•μ˜ 데이터λ₯Ό μœ„ν•œ 무료 검색 및 뢄석 엔진이닀. λΆ„μ‚°ν˜•κ³Ό κ°œλ°©ν˜•μ„ νŠΉμ§•μœΌλ‘œ ν•œλ‹€. Elastic Stack 의 핡심 ꡬ성 μš”μ†Œλ‹€. Elasticsearch 둜 ν˜λŸ¬λ“€μ–΄μ˜¨ μ›μ‹œ 데이터λ₯Ό μ„œλ‘œ κ΄€λ ¨ μžˆλŠ” λ¬Έμ„œλΌλ¦¬ μƒ‰μΈν•˜μ—¬ λ³΅μž‘ν•œ 쿼리에 λŒ€ν•΄ μš”μ•½ 검색 ν•  수 μžˆλ„λ‘ μ œκ³΅ν•œλ‹€. κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€κ°€ document 쀑심이라면 Elasticsearch λŠ” ν…μŠ€νŠΈ 쀑심이라고 λ³Ό 수 μžˆλ‹€. κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό 베이슀둜 검색에 ν•„μš”ν•œ 뢀뢄을 Elasticsearch 둜 μ§„ν–‰ν•˜λŠ” 것이 보톡이닀.

Kibana

μ„Έκ³„μ—μ„œ κ°€μž₯ 인기 μžˆλŠ” μ˜€ν”ˆ μ†ŒμŠ€ 둜그 뢄석 ν”Œλž«νΌμΈ Elastic μ—μ„œ μ œκ³΅ν•˜λŠ” ELK(Elasticsearch Logstash Kibana) 의 K(Kibana)λ‹€. 데이터 쿼리 및 뢄석이 핡심이닀. λ‹€μ–‘ν•œ 방법을 μ‚¬μš©ν•΄ κ·Όλ³Έ 원인 뢄석 및 진단을 μœ„ν•΄ 데이터 λ‚΄μ˜ νŠΉμ • 이벀트 λ˜λŠ” λ¬Έμžμ—΄μ— λŒ€ν•΄ Elasticsearch μ—μ„œ μΈλ±μ‹±λœ 데이터 검색을 μ œκ³΅ν•œλ‹€. μ΄λŸ¬ν•œ 쿼리λ₯Ό 기반으둜 차트, ν…Œμ΄λΈ”, μ§€ν‘œ λ“±μ˜ λ‹€μ–‘ν•œ μ‹œκ°ν™” 방식을 톡해 데이터λ₯Ό μ‹œκ°ν™” ν•  수 μžˆλ‹€. 문제 ν•΄κ²°, ν¬λ Œμ‹, 개발, λ³΄μ•ˆ λ“±μ˜ 지원은 Kibana 만 μ œκ³΅ν•œλ‹€.

Grafana

λ‹€μ–‘ν•œ 데이터 μ €μž₯μ†Œμ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” 무료 μ˜€ν”ˆ μ†ŒμŠ€ μ‹œκ°ν™” 도ꡬ닀. 일반적으둜 Graphite, InfluxDB, Prometheuse, Elasticsearch 와 ν•¨κ»˜ μ‚¬μš©λœλ‹€. Kibana κ°€ μ œκ³΅ν•˜μ§€ μ•Šμ•˜λ˜ λ©”νŠΈλ¦­μ— λŒ€ν•œ 지원을 μ œκ³΅ν•˜λ €κ³  ν–ˆκΈ° λ•Œλ¬Έμ— CPU Memory, Disk Input/Output, μ‚¬μš©λ₯  λ“±μ˜ λ©”νŠΈλ¦­μŠ€ μ§€ν‘œλ₯Ό μ‹œκ°ν™”ν•˜λŠ”λ° νŠΉν™”λ˜μ–΄ μžˆλ‹€.

μœ„μ˜ 두 μ‹œκ°ν™” λ„κ΅¬λŠ” μ‚¬μš© λͺ©μ μ— 따라 차이점이 생긴닀. λ”°λΌμ„œ 본인이 μ‹œκ°ν™”ν•˜κ³ μž ν•˜λŠ” λ‘œκ·Έμ— λŒ€ν•΄ μ •μ˜λ₯Ό 내리고, 그것에 κ°€μž₯ μ ν•©ν•œ μ‹œκ°ν™” 도ꡬλ₯Ό μ μš©ν•˜λŠ” 것이 μ’‹λ‹€.

κ²°λ‘ 

κ°œλ°œμžλŠ” λ‘œκΉ…κ³Ό μ–Έμ œλ‚˜ ν•¨κ»˜ν•œλ‹€. κ·Έλ ‡λ‹€λ©΄ λ‘œκΉ…μ„ λΆ„μ„ν•˜κ³  ν™œμš©ν•΄ λ‚˜κ°€λŠ” 것은 개발자의 μˆ™μ œλΌκ³  μƒκ°ν•œλ‹€. μ•„λŠ” 것이 νž˜μ΄λΌλŠ” 말이 μžˆλ“―μ΄ μ •ν™•ν•œ 정보λ₯Ό λΉ λ₯΄κ²Œ μ•Œμ•„κ°€λŠ” 것은 λ”μš±μ΄ 21세기에 맀우 μ€‘μš”ν•˜λ‹€. μˆ˜μ§‘ν•œ 둜그λ₯Ό λΆ„μ„ν•˜κ³  λ‚˜μ•„κ°€μ„œ μ‹œκ°ν™”κΉŒμ§€ ν•˜λŠ” μ—°μŠ΅μ„ ν•˜λŠ” 것은 λΆ„λͺ… κ°œλ°œμžμ™€ μ£Όλ³€ μ‚¬λžŒλ“€μ—κ²Œ 큰 도움이 되리라 μƒκ°ν•œλ‹€.

μ°Έκ³