ํ˜„์žฌ Kubernetes์— ๋กœ๊ทธ์ธํ•˜๋Š” ๊ฒƒ(๊ทธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ): ๊ธฐ๋Œ€์™€ ํ˜„์‹ค

ํ˜„์žฌ Kubernetes์— ๋กœ๊ทธ์ธํ•˜๋Š” ๊ฒƒ(๊ทธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ): ๊ธฐ๋Œ€์™€ ํ˜„์‹ค

2019๋…„์ธ๋ฐ ์•„์ง Kubernetes์˜ ๋กœ๊ทธ ์ง‘๊ณ„๋ฅผ ์œ„ํ•œ ํ‘œ์ค€ ์†”๋ฃจ์…˜์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ์‹ค์ œ ์‚ฌ๋ก€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰, ๋ฐœ์ƒํ•œ ๋ฌธ์ œ ๋ฐ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋จผ์ € ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ๊ณ ๊ฐ๋งˆ๋‹ค ๋งค์šฐ ๋‹ค๋ฅธ ๊ฒƒ์„ ์ดํ•ดํ•˜๋„๋ก ์˜ˆ์•ฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ๋ˆ„๊ตฐ๊ฐ€ ๋ณด์•ˆ ๋ฐ ๊ฐ์‚ฌ ๋กœ๊ทธ๋ฅผ ๋ณด๊ณ  ์‹ถ์–ดํ•ฉ๋‹ˆ๋‹ค.
  • ๋ˆ„๊ตฐ๊ฐ€ - ์ „์ฒด ์ธํ”„๋ผ์˜ ์ค‘์•™ ์ง‘์ค‘์‹ ๋กœ๊น…;
  • ์ผ๋ถ€์˜ ๊ฒฝ์šฐ ๋ฐธ๋Ÿฐ์„œ ๋“ฑ์„ ์ œ์™ธํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๊ทธ๋งŒ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ๋‹ค์–‘ํ•œ '์œ„์‹œ๋ฆฌ์ŠคํŠธ'๋ฅผ ๊ตฌํ˜„ํ•œ ๋ฐฉ๋ฒ•๊ณผ ์–ด๋–ค ์–ด๋ ค์›€์— ์ง๋ฉดํ–ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ปท์ž…๋‹ˆ๋‹ค.

์ด๋ก : ๋กœ๊น… ๋„๊ตฌ์— ๋Œ€ํ•ด

๋กœ๊น… ์‹œ์Šคํ…œ์˜ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ๋ฐฐ๊ฒฝ

๋กœ๊น…์€ ๋งŽ์€ ๋ฐœ์ „์„ ์ด๋ฃจ์—ˆ๊ณ  ๊ทธ ๊ฒฐ๊ณผ ์˜ค๋Š˜๋‚  ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋กœ๊ทธ ์ˆ˜์ง‘ ๋ฐ ๋ถ„์„ ๋ฐฉ๋ฒ•๋ก ์ด ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 1950๋…„๋Œ€์— Fortran์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ํ‘œ์ค€ ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์˜ ์•„๋‚ ๋กœ๊ทธ๋ฅผ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹น์‹œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ์‚ถ์„ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ค€ ์ตœ์ดˆ์˜ ์ปดํ“จํ„ฐ ๋กœ๊ทธ์˜€์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ์šฐ๋ฆฌ๋Š” ๋กœ๊น… ์‹œ์Šคํ…œ์˜ ์ฒซ ๋ฒˆ์งธ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์˜ ์†Œ์Šค ๋˜๋Š” "์ƒ์‚ฐ์ž".

์ปดํ“จํ„ฐ ๊ณผํ•™์€ ๊ฐ€๋งŒํžˆ ์žˆ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ๊ฐ€ ๋“ฑ์žฅํ•˜๊ณ  ์ฒซ ๋ฒˆ์งธ ํด๋Ÿฌ์Šคํ„ฐ... ์—ฌ๋Ÿฌ ์ปดํ“จํ„ฐ๋กœ ๊ตฌ์„ฑ๋œ ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์ด ์ž‘๋™ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋Š” ์—ฌ๋Ÿฌ ์‹œ์Šคํ…œ์—์„œ ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•ด์•ผ ํ•˜๋ฉฐ ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ ์‹œ์Šคํ…œ ์˜ค๋ฅ˜๋ฅผ ์กฐ์‚ฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ OS ์ปค๋„ ๋ฉ”์‹œ์ง€๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘์•™ ์ง‘์ค‘์‹ ๋กœ๊ทธ ์ˆ˜์ง‘ ์‹œ์Šคํ…œ์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด 2000๋…„๋Œ€ ์ดˆ๋ฐ˜์— ์ถœํŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. RFC 3164, ์ด๋Š” remote_syslog๋ฅผ ํ‘œ์ค€ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ์ค‘์š”ํ•œ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋‚˜ํƒ€๋‚œ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ ์ˆ˜์ง‘๊ธฐ ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค์˜ ์ €์žฅ.

๋กœ๊ทธ์˜ ์–‘์ด ๋Š˜์–ด๋‚˜๊ณ  ์›น ๊ธฐ์ˆ ์ด ๋„๋ฆฌ ๋ณด๊ธ‰๋˜๋ฉด์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ด๋–ค ๋กœ๊ทธ๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ๋ณด์—ฌ์ฃผ์–ด์•ผ ํ•˜๋Š”๊ฐ€์— ๋Œ€ํ•œ ์˜๋ฌธ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์ฝ˜์†” ๋„๊ตฌ(awk/sed/grep)๊ฐ€ ๊ณ ๊ธ‰ ๋„๊ตฌ๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ ๋ทฐ์–ด - ์„ธ ๋ฒˆ์งธ ๊ตฌ์„ฑ ์š”์†Œ.

๋กœ๊ทธ ์–‘์˜ ์ฆ๊ฐ€๋กœ ์ธํ•ด ๋˜ ๋‹ค๋ฅธ ์‚ฌ์‹ค์ด ๋ถ„๋ช…ํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ ์ „๋ถ€๋Š” ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋กœ๊ทธ๋งˆ๋‹ค ๋ณด์กด ์ˆ˜์ค€์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ผ๋ถ€๋Š” ํ•˜๋ฃจ ๋งŒ์— ์†์‹ค๋  ์ˆ˜ ์žˆ๊ณ  ๋‹ค๋ฅธ ์ผ๋ถ€๋Š” 5๋…„ ๋™์•ˆ ์ €์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ํ•„ํ„ฐ๋งํ•˜๊ณ  ๋ผ์šฐํŒ…ํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋กœ๊น… ์‹œ์Šคํ…œ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ˜ธ์ถœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•„ํ„ฐ.

์Šคํ† ๋ฆฌ์ง€๋„ ์ผ๋ฐ˜ ํŒŒ์ผ์—์„œ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ, ๊ทธ๋ฆฌ๊ณ  ๋ฌธ์„œ ์ค‘์‹ฌ ์Šคํ† ๋ฆฌ์ง€(์˜ˆ: Elasticsearch)๋กœ ํฐ ๋„์•ฝ์„ ์ด๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ €์žฅ์†Œ๊ฐ€ ์ˆ˜์ง‘๊ธฐ์™€ ๋ถ„๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ถ๊ทน์ ์œผ๋กœ ๋กœ๊ทธ๋ผ๋Š” ๊ฐœ๋… ์ž์ฒด๊ฐ€ ๊ธฐ๋ก์„ ์œ„ํ•ด ๋ณด์กดํ•˜๋ ค๋Š” ์ผ์ข…์˜ ์ถ”์ƒ์ ์ธ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ์œผ๋กœ ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ์กฐ์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜ ๋ถ„์„ ๋ณด๊ณ ์„œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ...

๊ทธ ๊ฒฐ๊ณผ, ๋กœ๊ทธ ์ˆ˜์ง‘์€ ๋น„๊ต์  ์งง์€ ์‹œ๊ฐ„ ๋‚ด์— ๋น…๋ฐ์ดํ„ฐ์˜ ํ•˜์œ„ ์„น์…˜ ์ค‘ ํ•˜๋‚˜๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ์ค‘์š”ํ•œ ํ•˜์œ„ ์‹œ์Šคํ…œ์œผ๋กœ ๋ฐœ์ „ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ Kubernetes์— ๋กœ๊ทธ์ธํ•˜๋Š” ๊ฒƒ(๊ทธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ): ๊ธฐ๋Œ€์™€ ํ˜„์‹ค
์˜›๋‚ ์—๋Š” ์ผ๋ฐ˜ ์ธ์‡„๋งŒ์œผ๋กœ๋„ "๋กœ๊น… ์‹œ์Šคํ…œ"์— ์ถฉ๋ถ„ํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ์ด์ œ๋Š” ์ƒํ™ฉ์ด ๋งŽ์ด ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค.

Kubernetes ๋ฐ ๋กœ๊ทธ

Kubernetes๊ฐ€ ์ธํ”„๋ผ์— ๋“ฑ์žฅํ–ˆ์„ ๋•Œ ์ด๋ฏธ ์กด์žฌํ–ˆ๋˜ ๋กœ๊ทธ ์ˆ˜์ง‘ ๋ฌธ์ œ๋„ ์ด๋ฅผ ์šฐํšŒํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๋ฉด์—์„œ๋Š” ํ›จ์”ฌ ๋” ๊ณ ํ†ต์Šค๋Ÿฌ์›Œ์กŒ์Šต๋‹ˆ๋‹ค. ์ธํ”„๋ผ ํ”Œ๋žซํผ ๊ด€๋ฆฌ๊ฐ€ ๋‹จ์ˆœํ™”๋˜์—ˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋™์‹œ์— ๋ณต์žกํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์˜ค๋ž˜๋œ ์„œ๋น„์Šค๊ฐ€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์˜ ๋งฅ๋ฝ์—์„œ ์ด๋Š” ๋กœ๊ทธ ์†Œ์Šค์˜ ์ฆ๊ฐ€, ํŠน๋ณ„ํ•œ ์ˆ˜๋ช… ์ฃผ๊ธฐ, ๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ์š”์†Œ์˜ ๊ด€๊ณ„๋ฅผ ์ถ”์ ํ•ด์•ผ ํ•˜๋Š” ํ•„์š”์„ฑ์— ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.

์•ž์„ ๋‚ด๋‹ค๋ณด๋ฉด ์•ˆํƒ€๊น๊ฒŒ๋„ ์ง€๊ธˆ์€ ๋‹ค๋ฅธ ๋ชจ๋“  ์˜ต์…˜๊ณผ ๋น„๊ตํ•˜์—ฌ Kubernetes์— ๋Œ€ํ•œ ํ‘œ์ค€ํ™”๋œ ๋กœ๊น… ์˜ต์…˜์ด ์—†๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ๊ณ„ํš์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์Šคํƒ์„ ํŽผ์นฉ๋‹ˆ๋‹ค. EFK (Elasticsearch, Fluentd, Kibana);
  • ๋ˆ„๊ตฐ๊ฐ€ ์ตœ๊ทผ์— ์ถœ์‹œ๋œ ๊ฒƒ์„ ์‹œํ—˜ํ•ด ๋ณด๊ณ  ์žˆ์–ด์š” ๋กœํ‚ค ๋˜๋Š” ์‚ฌ์šฉ ๋กœ๊น… ์—ฐ์‚ฐ์ž;
  • ์šฐ๋ฆฌ (์•„๋งˆ๋„ ์šฐ๋ฆฌ๋ฟ๋งŒ์ด ์•„๋‹์ง€๋„?..) ๋‚˜๋Š” ๋‚ด ์ž์‹ ์˜ ๋ฐœ์ „์— ๋Œ€์ฒด๋กœ ๋งŒ์กฑํ•œ๋‹ค. ํ†ต๋‚˜๋ฌด ์ง‘...

์ผ๋ฐ˜์ ์œผ๋กœ K8s ํด๋Ÿฌ์Šคํ„ฐ์—์„œ๋Š” ๋‹ค์Œ ๋ฒˆ๋“ค์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(์ž์ฒด ํ˜ธ์ŠคํŒ… ์†”๋ฃจ์…˜์šฉ).

๊ทธ๋Ÿฌ๋‚˜ ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ์ง€์นจ์€ ๋‹ค๋ฃจ์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ๋Œ€์‹ , ์ผ๋ฐ˜์ ์ธ ๋กœ๊ทธ ์ƒํ™ฉ์— ๋Œ€ํ•œ ๋‹จ์ ๊ณผ ๋ณด๋‹ค ํฌ๊ด„์ ์ธ ๊ฒฐ๋ก ์— ์ค‘์ ์„ ๋‘˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

K8s์—์„œ ๋กœ๊ทธ ์—ฐ์Šต

ํ˜„์žฌ Kubernetes์— ๋กœ๊ทธ์ธํ•˜๋Š” ๊ฒƒ(๊ทธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ): ๊ธฐ๋Œ€์™€ ํ˜„์‹ค

"์ผ์ƒ๋กœ๊ทธ" ์—ฌ๋Ÿฌ๋ถ„์€ ๋ช‡ ๋ช… ๊ณ„์‹œ๋‚˜์š”..

์ƒ๋‹นํžˆ ํฐ ์ธํ”„๋ผ์—์„œ ๋กœ๊ทธ๋ฅผ ์ค‘์•™ ์ง‘์ค‘์‹์œผ๋กœ ์ˆ˜์ง‘ํ•˜๋ ค๋ฉด ์ƒ๋‹นํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, ์ด๋Š” ๋กœ๊ทธ ์ˆ˜์ง‘, ์ €์žฅ ๋ฐ ์ฒ˜๋ฆฌ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์šด์˜ํ•˜๋Š” ๋™์•ˆ ์šฐ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ๊ณผ ์ด๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ์šด์˜ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค.

ClickHouse๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”

์ดˆ๋‹น 5000์ค„ ์ด์ƒ์˜ ๋กœ๊ทธ๋ฅผ ๋งค์šฐ ์ ๊ทน์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์˜ ์ค‘์•™ ์ง‘์ค‘์‹ ์ €์žฅ์†Œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ์˜ ๋กœ๊ทธ ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ณ  ์ด๋ฅผ ClickHouse์— ์ถ”๊ฐ€ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ตœ๋Œ€ ์‹ค์‹œ๊ฐ„์ด ์š”๊ตฌ๋˜์ž๋งˆ์ž ClickHouse๊ฐ€ ์žˆ๋Š” 4์ฝ”์–ด ์„œ๋ฒ„๋Š” ์ด๋ฏธ ๋””์Šคํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ์— ๊ณผ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ Kubernetes์— ๋กœ๊ทธ์ธํ•˜๋Š” ๊ฒƒ(๊ทธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ): ๊ธฐ๋Œ€์™€ ํ˜„์‹ค

์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ๋กœ๋”ฉ์€ ClickHouse์—์„œ ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ฆ๊ฐ€๋œ ๋””์Šคํฌ ๋กœ๋“œ๋กœ ์ด์— ๋ฐ˜์‘ํ•˜๋ฉฐ, ์ด๋กœ ์ธํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DB::Exception: Too many parts (300). Merges are processing significantly slower than inserts

๊ทธ๊ฑด ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค MergeTree ํ…Œ์ด๋ธ” ClickHouse(๋กœ๊ทธ ๋ฐ์ดํ„ฐ ํฌํ•จ)์—์„œ๋Š” ์“ฐ๊ธฐ ์ž‘์—… ์ค‘์— ์ž์ฒด์ ์ธ ์–ด๋ ค์›€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์‚ฝ์ž…๋œ ๋ฐ์ดํ„ฐ๋Š” ์ž„์‹œ ํŒŒํ‹ฐ์…˜์„ ์ƒ์„ฑํ•œ ๋‹ค์Œ ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”๊ณผ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ธฐ๋ก์€ ๋””์Šคํฌ์— ๋งค์šฐ ๋งŽ์€ ๊ฒƒ์„ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์œผ๋ฉฐ ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์ œํ•œ ์‚ฌํ•ญ๋„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. 1์ดˆ์— 300๊ฐœ ์ดํ•˜์˜ ํ•˜์œ„ ํŒŒํ‹ฐ์…˜์„ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์‹ค์ œ๋กœ ์ด๋Š” 300๊ฐœ์˜ ์‚ฝ์ž…์ž…๋‹ˆ๋‹ค). ์ดˆ๋‹น).

์ด๋Ÿฌํ•œ ๋™์ž‘์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ClickHouse์— ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค ๊ฐ€๋Šฅํ•œ ํ•œ ํฐ ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋ˆ„์–ด์•ผ ํ•˜๋ฉฐ 1์ดˆ์— 2ํšŒ ์ดํ•˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๋Ÿ‰์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ClickHouse์—์„œ ์ž‘์„ฑ ๋นˆ๋„๋ฅผ ์ค„์—ฌ์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ ๋ฐ ๋กœ๊ทธ ์†์‹ค์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ์ฑ…์€ Fluentd ๋ฒ„ํผ๋ฅผ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋Ÿฌ๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋„ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์˜: ClickHouse๋ฅผ ์‚ฌ์šฉํ•œ ์†”๋ฃจ์…˜์˜ ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ ์ธก๋ฉด์€ ์šฐ๋ฆฌ ์‚ฌ๋ก€(๋กœ๊ทธํ•˜์šฐ์Šค)์˜ ํŒŒํ‹ฐ์…”๋‹์ด ์—ฐ๊ฒฐ๋œ ์™ธ๋ถ€ ํ…Œ์ด๋ธ”์„ ํ†ตํ•ด ๊ตฌํ˜„๋œ๋‹ค๋Š” ์‚ฌ์‹ค๊ณผ ๊ด€๋ จ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ. ์ด๋Š” ๊ธด ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์„ ์ƒ˜ํ”Œ๋งํ•  ๋•Œ ๋ฉ”ํƒ€ํ…Œ์ด๋ธ”์ด ๋ชจ๋“  ํŒŒํ‹ฐ์…˜(๋ถ„๋ช…ํžˆ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ํŒŒํ‹ฐ์…˜์ด๋ผ๋„ ํฌํ•จ)์„ ํ†ตํ•ด ๋ฐ˜๋ณต๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณผ๋„ํ•œ RAM์ด ํ•„์š”ํ•˜๋‹ค๋Š” ์‚ฌ์‹ค๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์ œ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ํ˜„์žฌ ๋ฒ„์ „์˜ ClickHouse(c)์—์„œ๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์„ ์–ธ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 18.16).

๊ฒฐ๊ณผ์ ์œผ๋กœ ClickHouse์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•  ๋งŒํผ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์— ์ถฉ๋ถ„ํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์ด ๋ถ„๋ช…ํ•ด์กŒ์Šต๋‹ˆ๋‹ค(๋ณด๋‹ค ์ •ํ™•ํ•˜๊ฒŒ๋Š” ๋ฐฐํฌ๊ฐ€ ์ ์ ˆํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค). ๋˜ํ•œ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ถ• ์••๊ธฐ, ๋‚˜์ค‘์— ๋‹ค์‹œ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ ์„ค๋ช…ํ•œ ์‚ฌ๋ก€๋Š” ์‹ค์ œ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋‹น์‹œ ์šฐ๋ฆฌ๋Š” ๊ณ ๊ฐ์—๊ฒŒ ์ ํ•ฉํ•˜๊ณ  ์ตœ์†Œํ•œ์˜ ์ง€์—ฐ์œผ๋กœ ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๊ณ  ์•ˆ์ •์ ์ธ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค...

์—˜๋ผ์Šคํ‹ฑ์„œ์น˜๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

Elasticsearch๋Š” ๊ณผ๋„ํ•œ ์ž‘์—… ๋ถ€ํ•˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ํ”„๋กœ์ ํŠธ์—์„œ ์‹œ๋„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋กœ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ Kubernetes์— ๋กœ๊ทธ์ธํ•˜๋Š” ๊ฒƒ(๊ทธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ): ๊ธฐ๋Œ€์™€ ํ˜„์‹ค

Elasticsearch๋Š” ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, ๊ทธ๋Ÿฌํ•œ ๋ณผ๋ฅจ์„ ๊ธฐ๋กํ•˜๋ฉด CPU๋ฅผ ํฌ๊ฒŒ ํ™œ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์ ์œผ๋กœ๋Š” ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์ง€๋งŒ ๋กœ๊ทธ ์ˆ˜์ง‘ ์‹œ์Šคํ…œ์„ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์•ฝ 8๊ฐœ์˜ ์ฝ”์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์‹œ์Šคํ…œ์— ๋กœ๋“œ์œจ์ด ๋†’์€ ์ถ”๊ฐ€ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค...

๊ฒฐ๋ก : ์ด ์˜ต์…˜์€ ์ •๋‹นํ™”๋  ์ˆ˜ ์žˆ์ง€๋งŒ ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๊ฐ€ ํฌ๊ณ  ํ•ด๋‹น ๊ด€๋ฆฌ๊ฐ€ ์ค‘์•™ ๋กœ๊น… ์‹œ์Šคํ…œ์— ์ƒ๋‹นํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์†Œ๋น„ํ•  ์ค€๋น„๊ฐ€ ๋œ ๊ฒฝ์šฐ์—๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž์—ฐ์Šค๋Ÿฌ์šด ์งˆ๋ฌธ์ด ์ƒ๊น๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์–ด๋–ค ๋กœ๊ทธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ?

ํ˜„์žฌ Kubernetes์— ๋กœ๊ทธ์ธํ•˜๋Š” ๊ฒƒ(๊ทธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ): ๊ธฐ๋Œ€์™€ ํ˜„์‹ค ์ ‘๊ทผ ๋ฐฉ์‹ ์ž์ฒด๋ฅผ ๋ณ€๊ฒฝํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋ฉด์„œ๋„ ๋™์‹œ์— ๋‹ค๋ฃจ์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์‹œ์Šคํ…œ์˜ ์ด๋ฒคํŠธ.

์šฐ๋ฆฌ๊ฐ€ ์„ฑ๊ณต์ ์ธ ์˜จ๋ผ์ธ ์ƒ์ ์„ ์šด์˜ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๋กœ๊ทธ๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๊นŒ? ์˜ˆ๋ฅผ ๋“ค์–ด ์ง€๋ถˆ ๊ฒŒ์ดํŠธ์›จ์ด ๋“ฑ์—์„œ ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์€ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒƒ์€ ์ข‹์€ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ œํ’ˆ ์นดํƒˆ๋กœ๊ทธ์— ์žˆ๋Š” ์ด๋ฏธ์ง€ ๋ถ„ํ•  ์„œ๋น„์Šค์˜ ๋ชจ๋“  ๋กœ๊ทธ๊ฐ€ ์šฐ๋ฆฌ์—๊ฒŒ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์˜ค๋ฅ˜์™€ ๊ณ ๊ธ‰ ๋ชจ๋‹ˆํ„ฐ๋ง๋งŒ ์žˆ์œผ๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: ์ด ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์ƒ์„ฑํ•˜๋Š” 500๊ฐœ ์˜ค๋ฅ˜์˜ ๋น„์œจ).

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๋ก ์— ์ด๋ฅด๋ €์Šต๋‹ˆ๋‹ค. ์ค‘์•™ ์ง‘์ค‘์‹ ๋กœ๊น…์ด ํ•ญ์ƒ ์ •๋‹นํ™”๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ๋ชจ๋“  ๋กœ๊ทธ๋ฅผ ํ•œ๊ณณ์— ์ˆ˜์ง‘ํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ์ „์ฒด ๋กœ๊ทธ์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค์— ์ค‘์š”ํ•œ ๋ฉ”์‹œ์ง€ ์ค‘ ์กฐ๊ฑด๋ถ€ 5%๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ๋•Œ๋กœ๋Š” ์ปจํ…Œ์ด๋„ˆ ๋กœ๊ทธ์˜ ํฌ๊ธฐ์™€ ์˜ค๋ฅ˜ ์ˆ˜์ง‘๊ธฐ(์˜ˆ: Sentry)๋งŒ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•  ๋•Œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์˜ค๋ฅ˜ ์•Œ๋ฆผ๊ณผ ๋Œ€๊ทœ๋ชจ ๋กœ์ปฌ ๋กœ๊ทธ ์ž์ฒด๋งŒ์œผ๋กœ๋„ ์‚ฌ๊ฑด์„ ์กฐ์‚ฌํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.
  • ์šฐ๋ฆฌ๋Š” ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ์™€ ์˜ค๋ฅ˜ ์ˆ˜์ง‘ ์‹œ์Šคํ…œ๋งŒ์„ ๋‹ค๋ฃจ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ๋กœ๊ทธ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ์ถ”์ ์—์„œ ๋ชจ๋“  ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์ธ์ƒ์˜ ์ผ๋Ÿฌ์ŠคํŠธ๋ ˆ์ด์…˜

๋˜ ๋‹ค๋ฅธ ์ด์•ผ๊ธฐ๊ฐ€ ์ข‹์€ ์˜ˆ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Kubernetes๊ฐ€ ๋„์ž…๋˜๊ธฐ ์˜ค๋ž˜ ์ „์— ๊ฐœ๋ฐœ๋œ ์ƒ์šฉ ์†”๋ฃจ์…˜์„ ์ด๋ฏธ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋˜ ํด๋ผ์ด์–ธํŠธ ์ค‘ ํ•œ ๊ณณ์˜ ๋ณด์•ˆํŒ€์œผ๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

๊ธฐ์—…์˜ ๋ฌธ์ œ ๊ฐ์ง€ ์„ผ์„œ์ธ QRadar์™€ ์ค‘์•™ ์ง‘์ค‘์‹ ๋กœ๊ทธ ์ˆ˜์ง‘ ์‹œ์Šคํ…œ์˜ "์นœ๊ตฌ ๋งŒ๋“ค๊ธฐ"๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ์Šคํ…œ์€ syslog ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ๋กœ๊ทธ๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  FTP์—์„œ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Fluentd์šฉ Remote_syslog ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ์ฆ‰์‹œ ํ†ตํ•ฉํ•  ์ˆ˜๋Š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค. (๊ฒฐ๊ณผ์ ์œผ๋กœ๋Š” ์šฐ๋ฆฌ๋Š” ํ˜ผ์ž๊ฐ€ ์•„๋‹ˆ์•ผ). QRadar ์„ค์ •๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋Š” ๊ณ ๊ฐ์˜ ๋ณด์•ˆ ํŒ€ ์ธก์—์„œ ๋ฐœ์ƒํ•œ ๊ฒƒ์œผ๋กœ ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ ๋น„์ฆˆ๋‹ˆ์Šค์— ์ค‘์š”ํ•œ ๋กœ๊ทธ์˜ ์ผ๋ถ€๊ฐ€ FTP QRadar์— ์—…๋กœ๋“œ๋˜์—ˆ๊ณ , ๋‹ค๋ฅธ ๋ถ€๋ถ„์€ ์›๊ฒฉ syslog๋ฅผ ํ†ตํ•ด ๋…ธ๋“œ์—์„œ ์ง์ ‘ ๋ฆฌ๋””๋ ‰์…˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์‹ฌ์ง€์–ด ์ผ์Šต๋‹ˆ๋‹ค ๊ฐ„๋‹จํ•œ ์ฐจํŠธ - ์•„๋งˆ๋„ ๋น„์Šทํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค... ๊ฒฐ๊ณผ ์ฒด๊ณ„ ๋•๋ถ„์— ํด๋ผ์ด์–ธํŠธ๋Š” ์ž์‹ ์ด ์„ ํ˜ธํ•˜๋Š” ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘์š”ํ•œ ๋กœ๊ทธ๋ฅผ ์ง์ ‘ ์ˆ˜์‹ ํ•˜๊ณ  ๋ถ„์„ํ–ˆ์œผ๋ฉฐ ๋กœ๊น… ์‹œ์Šคํ…œ ๋น„์šฉ์„ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€๋‚œ ๋‹ฌ.

๋˜ ๋‹ค๋ฅธ ์˜ˆ๋Š” ๋ฌด์—‡์„ ํ•˜์ง€ ๋ง์•„์•ผ ํ•˜๋Š”์ง€๋ฅผ ์ž˜ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๊ณ ๊ฐ ์ค‘ ํ•œ ๋ช… ๊ฐ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์˜ค๋Š” ์ด๋ฒคํŠธ๋Š” ์—ฌ๋Ÿฌ ์ค„๋กœ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. ๊ตฌ์กฐํ™”๋˜์ง€ ์•Š์€ ์ถœ๋ ฅ ๋กœ๊ทธ์˜ ์ •๋ณด. ์ง์ž‘ํ•  ์ˆ˜ ์žˆ๋“ฏ์ด ์ด๋Ÿฌํ•œ ๋กœ๊ทธ๋Š” ์ฝ๊ณ  ์ €์žฅํ•˜๋Š” ๋ฐ ๋งค์šฐ ๋ถˆํŽธํ–ˆ์Šต๋‹ˆ๋‹ค.

๋กœ๊ทธ ๊ธฐ์ค€

์ด๋Ÿฌํ•œ ์˜ˆ๋Š” ๋กœ๊ทธ ์ˆ˜์ง‘ ์‹œ์Šคํ…œ์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„ ๋‹ค์Œ ์‚ฌํ•ญ์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒฐ๋ก ์œผ๋กœ โ€‹โ€‹์ด์–ด์ง‘๋‹ˆ๋‹ค. ๋˜ํ•œ ๋กœ๊ทธ ์ž์ฒด๋ฅผ ๋””์ž์ธํ•ฉ๋‹ˆ๋‹ค.! ์—ฌ๊ธฐ์„œ ์š”๊ตฌ ์‚ฌํ•ญ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

  • ๋กœ๊ทธ๋Š” ๊ธฐ๊ณ„๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ˜•์‹(์˜ˆ: JSON)์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋กœ๊ทธ๋Š” ์••์ถ•๋˜์–ด์•ผ ํ•˜๋ฉฐ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๊ธฐ ์œ„ํ•ด ๋กœ๊น… ์ˆ˜์ค€์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋กœ๊น… ์ˆ˜์ค€์œผ๋กœ ์‹œ์Šคํ…œ์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๊ณ  ๋˜๋Š” ์˜ค๋ฅ˜.
  • ๋กœ๊ทธ๋Š” ์ •๊ทœํ™”๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋กœ๊ทธ ๊ฐœ์ฒด์—์„œ ๋ชจ๋“  ์ค„์€ ๋™์ผํ•œ ํ•„๋“œ ์œ ํ˜•์„ ๊ฐ€์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์กฐํ™”๋˜์ง€ ์•Š์€ ๋กœ๊ทธ๋Š” ๋กœ๊ทธ๋ฅผ ์Šคํ† ๋ฆฌ์ง€์— ๋กœ๋“œํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์ฒ˜๋ฆฌ๊ฐ€ ์™„์ „ํžˆ ์ค‘์ง€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ์€ fluentd ๋กœ๊ทธ์—์„œ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ํ™•์‹คํžˆ ์ ‘ํ•œ ์˜ค๋ฅ˜ 400์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค.

2019-10-29 13:10:43 +0000 [warn]: dump an error event: error_class=Fluent::Plugin::ElasticsearchErrorHandler::ElasticsearchError error="400 - Rejected by Elasticsearch"

์ด ์˜ค๋ฅ˜๋Š” ์œ ํ˜•์ด ๋ถˆ์•ˆ์ •ํ•œ ํ•„๋“œ๋ฅผ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ง„ ๋งคํ•‘์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ๋ฑ์Šค๋กœ ๋ณด๋‚ด๊ณ  ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์˜ˆ๋Š” ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” nginx ๋กœ๊ทธ์˜ ํ•„๋“œ์ž…๋‹ˆ๋‹ค. $upstream_status. ์ˆซ์ž๋‚˜ ๋ฌธ์ž์—ด์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

{ "ip": "1.2.3.4", "http_user": "-", "request_id": "17ee8a579e833b5ab9843a0aca10b941", "time": "29/Oct/2019:16:18:57 +0300", "method": "GET", "uri": "/staffs/265.png", "protocol": "HTTP/1.1", "status": "200", "body_size": "906", "referrer": "https://example.com/staff", "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36", "request_time": "0.001", "cache_status": "-", "upstream_response_time": "0.001, 0.007", "upstream_addr": "127.0.0.1:9000", "upstream_status": "200", "upstream_response_length": "906", "location": "staff"}
{ "ip": "1.2.3.4", "http_user": "-", "request_id": "47fe42807f2a7d8d5467511d7d553a1b", "time": "29/Oct/2019:16:18:57 +0300", "method": "GET", "uri": "/staff", "protocol": "HTTP/1.1", "status": "200", "body_size": "2984", "referrer": "-", "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36", "request_time": "0.010", "cache_status": "-", "upstream_response_time": "0.001, 0.007", "upstream_addr": "10.100.0.10:9000, 10.100.0.11:9000", "upstream_status": "404, 200", "upstream_response_length": "0, 2984", "location": "staff"}

๋กœ๊ทธ์—๋Š” ์„œ๋ฒ„ 10.100.0.10์ด 404 ์˜ค๋ฅ˜๋กœ ์‘๋‹ตํ–ˆ์œผ๋ฉฐ ์š”์ฒญ์ด ๋‹ค๋ฅธ ์ฝ˜ํ…์ธ  ์ €์žฅ์†Œ๋กœ ์ „์†ก๋˜์—ˆ์Œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋กœ๊ทธ์˜ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

"upstream_response_time": "0.001, 0.007"

์ด๋Ÿฌํ•œ ์ƒํ™ฉ์€ ๋„ˆ๋ฌด ํ”ํ•ด์„œ ๋ณ„๋„์˜ ์กฐ์น˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์„œ์˜ ์ฐธ์กฐ.

์‹ ๋ขฐ์„ฑ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

์˜ˆ์™ธ ์—†์ด ๋ชจ๋“  ๋กœ๊ทธ๊ฐ€ ์ค‘์š”ํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋กœ ์ธํ•ด ์œ„์—์„œ ์ œ์•ˆ/๋…ผ์˜๋œ K8์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ๋กœ๊ทธ ์ˆ˜์ง‘ ๋ฐฉ์‹์—๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด fluentd๋Š” ์ˆ˜๋ช…์ด ์งง์€ ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ ์ค‘ ํ•˜๋‚˜์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ปจํ…Œ์ด๋„ˆ๋Š” ํ•ด๋‹น ์ฃผ์„์— ๋”ฐ๋ผ 4์ดˆ ๋ฏธ๋งŒ ๋™์•ˆ ์œ ์ง€๋œ ํ›„ ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

"helm.sh/hook-delete-policy": hook-succeeded

์ด๋กœ ์ธํ•ด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹คํ–‰ ๋กœ๊ทธ๊ฐ€ ์Šคํ† ๋ฆฌ์ง€์— ํฌํ•จ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” ์ •์น˜๊ฐ€ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. before-hook-creation.

๋˜ ๋‹ค๋ฅธ ์˜ˆ๋Š” Docker ๋กœ๊ทธ ํšŒ์ „์ž…๋‹ˆ๋‹ค. ๋กœ๊ทธ์— ์ ๊ทน์ ์œผ๋กœ ์“ฐ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ •์ƒ์ ์ธ ์กฐ๊ฑด์—์„œ๋Š” ๋ชจ๋“  ๋กœ๊ทธ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์œ„์—์„œ ์„ค๋ช…ํ•œ ์ž˜๋ชป๋œ ํ˜•์‹๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ฆ‰์‹œ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘์ง€๋˜๊ณ  Docker๊ฐ€ ํŒŒ์ผ์„ ํšŒ์ „ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋น„์ฆˆ๋‹ˆ์Šค์— ์ค‘์š”ํ•œ ๋กœ๊ทธ๊ฐ€ ์†์‹ค๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์ด์œ ๋Š” ๋กœ๊ทธ ์ŠคํŠธ๋ฆผ์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค, ๊ฐ€์žฅ ๊ฐ€์น˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ง์ ‘ ์ „์†กํ•˜์—ฌ ์•ˆ์ „์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ผ๋ถ€๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋ถˆํ•„์š”ํ•œ ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋กœ๊ทธ์˜ "๋ˆ„์ ๊ธฐ", ์ค‘์š”ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์ €์žฅํ•˜๋Š” ๋™์•ˆ ์ž ์‹œ ๋™์•ˆ ์ €์žฅ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋„ ์‚ด์•„๋‚จ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์žŠ์ง€ ๋ง์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ์ ์ ˆํ•˜๊ฒŒ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด fluentd๊ฐ€ ์—‰๋šฑํ•œ ์ƒํƒœ์— ๋น ์ง€๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. CrashLoopBackOff ์•„๋ฌด ๊ฒƒ๋„ ๋ณด๋‚ด์ง€ ์•Š์œผ๋ฉฐ ์ด๋กœ ์ธํ•ด ์ค‘์š”ํ•œ ์ •๋ณด๊ฐ€ ์†์‹ค๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์กฐ์‚ฌ ๊ฒฐ๊ณผ

์ด ๊ธฐ์‚ฌ์—์„œ๋Š” Datadog๊ณผ ๊ฐ™์€ SaaS ์†”๋ฃจ์…˜์„ ์‚ดํŽด๋ณด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์„ค๋ช…๋œ ๋งŽ์€ ๋ฌธ์ œ๋Š” ๋กœ๊ทธ ์ˆ˜์ง‘์„ ์ „๋ฌธ์œผ๋กœ ํ•˜๋Š” ์ƒ์—… ํšŒ์‚ฌ์— ์˜ํ•ด ์ด๋ฏธ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ๋“  ํ•ด๊ฒฐ๋˜์—ˆ์ง€๋งŒ ๋‹ค์–‘ํ•œ ์ด์œ ๋กœ ๋ชจ๋“  ์‚ฌ๋žŒ์ด SaaS๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. (์ฃผ์š”ํ•œ ๊ฒƒ์€ ๋น„์šฉ๊ณผ 152-FZ ์ค€์ˆ˜์ž…๋‹ˆ๋‹ค).

์ค‘์•™ ์ง‘์ค‘์‹ ๋กœ๊ทธ ์ˆ˜์ง‘์€ ์ฒ˜์Œ์—๋Š” ๊ฐ„๋‹จํ•œ ์ž‘์—…์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์ „ํ˜€ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์‚ฌํ•ญ์„ ๊ธฐ์–ตํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ์ค‘์š”ํ•œ ๊ตฌ์„ฑ์š”์†Œ๋งŒ ์ž์„ธํžˆ ๊ธฐ๋กํ•˜๋ฉด ๋˜๋ฉฐ, ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด์„œ๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์˜ค๋ฅ˜ ์ˆ˜์ง‘์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ถˆํ•„์š”ํ•œ ๋ถ€ํ•˜๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๋„๋ก ํ”„๋กœ๋•์…˜ ๋กœ๊ทธ๋ฅผ ์ตœ์†Œํ•œ์œผ๋กœ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋กœ๊ทธ๋Š” ๊ธฐ๊ณ„๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๊ณ  ์ •๊ทœํ™”๋˜์–ด์•ผ ํ•˜๋ฉฐ ์—„๊ฒฉํ•œ ํ˜•์‹์„ ๊ฐ€์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ •๋ง ์ค‘์š”ํ•œ ๋กœ๊ทธ๋Š” ๊ธฐ๋ณธ ๋กœ๊ทธ์™€ ๋ถ„๋ฆฌ๋œ ๋ณ„๋„์˜ ์ŠคํŠธ๋ฆผ์œผ๋กœ ์ „์†ก๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋†’์€ ๋กœ๋“œ๊ฐ€ ๊ธ‰์ฆํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ์Šคํ† ๋ฆฌ์ง€์˜ ๋กœ๋“œ๋ฅผ ๋ณด๋‹ค ๊ท ์ผํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋กœ๊ทธ ๋ˆ„์‚ฐ๊ธฐ๋ฅผ ๊ณ ๋ คํ•ด ๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ Kubernetes์— ๋กœ๊ทธ์ธํ•˜๋Š” ๊ฒƒ(๊ทธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ): ๊ธฐ๋Œ€์™€ ํ˜„์‹ค
์ด๋Ÿฌํ•œ ๊ฐ„๋‹จํ•œ ๊ทœ์น™์„ ๋ชจ๋“  ๊ณณ์— ์ ์šฉํ•˜๋ฉด ์œ„์— ์„ค๋ช…๋œ ํšŒ๋กœ๊ฐ€ ์ค‘์š”ํ•œ ๊ตฌ์„ฑ ์š”์†Œ(๋ฐฐํ„ฐ๋ฆฌ)๊ฐ€ ๋ˆ„๋ฝ๋œ ๊ฒฝ์šฐ์—๋„ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์›์น™์„ ์ค€์ˆ˜ํ•˜์ง€ ์•Š์œผ๋ฉด ์ž‘์—…์œผ๋กœ ์ธํ•ด ๊ท€ํ•˜์™€ ์ธํ”„๋ผ๊ฐ€ ์‹œ์Šคํ…œ์˜ ๋ถ€ํ•˜๊ฐ€ ๋†’์€(๋™์‹œ์— ๋น„ํšจ์œจ์ ์ธ) ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์‰ฝ๊ฒŒ ์ด๋™ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

PS

๋ธ”๋กœ๊ทธ์—์„œ๋„ ์ฝ์–ด๋ณด์„ธ์š”.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€