๐ InfluxDB vs ํ๋ก๋ฉํ ์ฐ์ค: ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ๋ํฐ๋ง ๋ฅ๋ ฅ ๋น๊ต ๐

์๋ ํ์ธ์, ์ฌ๋ฌ๋ถ! ์ค๋์ ์ ๋ง ํซํ ์ฃผ์ ๋ก ์ฐพ์์์ด์. ๋ฐ๋ก InfluxDB์ ํ๋ก๋ฉํ ์ฐ์ค์ ๋๊ฒฐ! ๐ ์ด ๋ ๋ ์์ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ณ์ ์๋ ์ฐ๋งฅ์ด๋ผ๊ณ ํด๋ ๊ณผ์ธ์ด ์๋๋ฐ์. ์ฐ๋ฆฌ๊ฐ ์ด ๋์ ๋น๊ตํด๋ณด๋ฉด์ ์ด๋ค ๊ฒ ๋ ์ฉ๋์ง ์์๋ณด๋๋ก ํด์! ๐ค
๋จผ์ , ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ญ์ง ๋ชจ๋ฅด๋ ๋ถ๋ค์ ์ํด ๊ฐ๋จํ ์ค๋ช ํด๋๋ฆด๊ฒ์. ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์๊ฐ์ ๋ฐ๋ผ ๋ณํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋ถ์ํ๋ ๋ฐ ํนํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์. ์๋ฅผ ๋ค๋ฉด, ์ฃผ์ ๊ฐ๊ฒฉ, ์ผ์ ๋ฐ์ดํฐ, ์๋ฒ ๋ชจ๋ํฐ๋ง ์ ๋ณด ๊ฐ์ ๊ฒ๋ค์ด์ฃ . ์ด๋ฐ ๋ฐ์ดํฐ๋ค์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๊ณ์ ์์ด๊ณ , ๊ทธ ํจํด์ ๋ถ์ํ๋ ๊ฒ ์ค์ํ๋ต๋๋ค.
์, ์ด์ ๋ณธ๊ฒฉ์ ์ผ๋ก InfluxDB์ ํ๋ก๋ฉํ ์ฐ์ค๋ฅผ ๋น๊ตํด๋ณผ๊น์? ๐ค
1. ๋ฐ์ดํฐ ๋ชจ๋ธ ๋น๊ต ๐
InfluxDB์ ํ๋ก๋ฉํ ์ฐ์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์์ด ์ข ๋ฌ๋ผ์. ์ด ์ฐจ์ด์ ์ ์๋ฉด ๊ฐ๊ฐ์ ํน์ง์ ๋ ์ ์ดํดํ ์ ์๋ต๋๋ค.
InfluxDB์ ๋ฐ์ดํฐ ๋ชจ๋ธ
InfluxDB๋ ์๋ฆฌ์ฆ(Series)์ ์ธก์ (Measurement)์ด๋ผ๋ ๊ฐ๋ ์ ์ฌ์ฉํด์. ์ด๊ฒ ๋ญ ์๋ฆฌ๋๊ณ ์? ์ฝ๊ฒ ์ค๋ช ํด๋๋ฆด๊ฒ์!
- ์ธก์ (Measurement): ์ด๊ฑด ์ฐ๋ฆฌ๊ฐ ์ธก์ ํ๊ณ ์ถ์ ๋์์ด์์. ์๋ฅผ ๋ค๋ฉด "CPU ์ฌ์ฉ๋ฅ ", "๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋" ๊ฐ์ ๊ฑฐ์ฃ .
- ํ๊ทธ(Tag): ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ถํ๋ ๋ฉํ๋ฐ์ดํฐ์์. "์๋ฒ ์ด๋ฆ", "์ง์ญ" ๊ฐ์ ์ ๋ณด๊ฐ ์ฌ๊ธฐ์ ํด๋นํด์.
- ํ๋(Field): ์ค์ ์ธก์ ๋ ๊ฐ์ด์์. "CPU ์ฌ์ฉ๋ฅ 80%", "๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ 4GB" ๊ฐ์ ๊ตฌ์ฒด์ ์ธ ์์น๊ฐ ์ฌ๊ธฐ์ ๋ค์ด๊ฐ์.
- ํ์์คํฌํ(Timestamp): ๋ฐ์ดํฐ๊ฐ ์ธ์ ๊ธฐ๋ก๋์๋์ง๋ฅผ ๋ํ๋ด์.
์ด ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ ๋ง ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ ๊ฒ์ํ ์ ์์ด์. ์๋ฅผ ๋ค์ด, "์์ธ์ ์๋ ๋ชจ๋ ์๋ฒ์ ์ง๋ 1์๊ฐ ๋์์ CPU ์ฌ์ฉ๋ฅ "์ ์ฝ๊ฒ ์กฐํํ ์ ์๋ต๋๋ค.
ํ๋ก๋ฉํ ์ฐ์ค์ ๋ฐ์ดํฐ ๋ชจ๋ธ
ํ๋ก๋ฉํ ์ฐ์ค๋ ์ข ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํด์. ์ฌ๊ธฐ์๋ ๋ฉํธ๋ฆญ(Metric)๊ณผ ๋ ์ด๋ธ(Label)์ด๋ผ๋ ๊ฐ๋ ์ ์ฌ์ฉํ์ฃ .
- ๋ฉํธ๋ฆญ(Metric): ์ธก์ ํ๊ณ ์ ํ๋ ๋์์ด์์. InfluxDB์ ์ธก์ (Measurement)๊ณผ ๋น์ทํ ๊ฐ๋ ์ด์ฃ .
- ๋ ์ด๋ธ(Label): ํค-๊ฐ ์์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฉํ๋ฐ์ดํฐ์์. InfluxDB์ ํ๊ทธ์ ๋น์ทํ์ง๋ง, ๋ ์ ์ฐํ๊ฒ ์ฌ์ฉํ ์ ์์ด์.
- ์ํ(Sample): ์ค์ ์ธก์ ๋ ๊ฐ๊ณผ ํ์์คํฌํ์ ์กฐํฉ์ด์์.
ํ๋ก๋ฉํ ์ฐ์ค์ ์ด๋ฐ ๊ตฌ์กฐ๋ ํนํ ๋ค์ฐจ์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐ ๊ฐ์ ์ด ์์ด์. ์๋ฅผ ๋ค์ด, "HTTP ์์ฒญ ์"๋ผ๋ ๋ฉํธ๋ฆญ์ "method", "status_code", "endpoint" ๋ฑ์ ๋ ์ด๋ธ์ ๋ถ์ฌ์ ์ ๋ง ์ธ๋ฐํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ ์ ์๋ต๋๋ค.
๐ค ์ ๊น! ์ด๋ฐ ์ฐจ์ด๊ฐ ์ ์ค์ํ ๊น์?
๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฐจ์ด๋ ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฑ๋ฅ๊ณผ ์ฌ์ฉ ๋ฐฉ์์ ํฐ ์ํฅ์ ๋ฏธ์ณ์. InfluxDB๋ ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ์ ๋ง ๋น ๋ฅด๊ฒ ์ ์ฅํ๊ณ ๊ฒ์ํ๋ ๋ฐ ์ต์ ํ๋์ด ์์ฃ . ๋ฐ๋ฉด ํ๋ก๋ฉํ ์ฐ์ค๋ ๋ค์ฐจ์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐ ๋ ์ ์ฐํด์. ์ด๋ฐ ํน์ฑ ๋๋ฌธ์ InfluxDB๋ IoT๋ ์ผ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์์ฃผ ์ฌ์ฉ๋๊ณ , ํ๋ก๋ฉํ ์ฐ์ค๋ ๋ง์ดํฌ๋ก์๋น์ค ๋ชจ๋ํฐ๋ง ๊ฐ์ ๋ณต์กํ ์์คํ ๊ด๋ฆฌ์ ๋ง์ด ์ฐ์ธ๋ต๋๋ค.
์, ์ด์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฐจ์ด๋ฅผ ์์์ผ๋, ์ด ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค์ ๋ก ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ์ข ๋ ์์ธํ ์์๋ณผ๊น์? ๐ง
InfluxDB ์ฌ์ฉ ์์
InfluxDB๋ฅผ ์ฌ์ฉํ ๋๋ ๋ณดํต ์ด๋ฐ ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด์:
cpu_usage,host=server01,region=us-west value=0.64 1434067467000000000
memory_usage,host=server01,region=us-west value=7.86 1434067467000000000
์ด ์์์์ "cpu_usage"์ "memory_usage"๊ฐ ์ธก์ (Measurement)์ด๊ณ , "host"์ "region"์ด ํ๊ทธ, "value"๊ฐ ํ๋, ๋งจ ๋ค์ ์ซ์๊ฐ ํ์์คํฌํ์์.
์ด๋ ๊ฒ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ InfluxQL์ด๋ผ๋ SQL๊ณผ ๋น์ทํ ์ฟผ๋ฆฌ ์ธ์ด๋ก ์กฐํํ ์ ์์ด์. ์๋ฅผ ๋ค๋ฉด:
SELECT mean("value") FROM "cpu_usage" WHERE "host" = 'server01' AND time >= now() - 1h GROUP BY time(5m)
์ด ์ฟผ๋ฆฌ๋ "server01"์ ์ง๋ 1์๊ฐ ๋์์ CPU ์ฌ์ฉ๋ฅ ํ๊ท ์ 5๋ถ ๊ฐ๊ฒฉ์ผ๋ก ๋ณด์ฌ์ค์. ์์ฒญ ์ง๊ด์ ์ด์ฃ ? ๐
ํ๋ก๋ฉํ ์ฐ์ค ์ฌ์ฉ ์์
ํ๋ก๋ฉํ ์ฐ์ค๋ ์กฐ๊ธ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด์:
http_requests_total{method="POST",endpoint="/api/users"} 1027 1435781451781
http_requests_total{method="GET",endpoint="/api/users"} 8743 1435781451781
์ฌ๊ธฐ์ "http_requests_total"์ด ๋ฉํธ๋ฆญ ์ด๋ฆ์ด๊ณ , "method"์ "endpoint"๊ฐ ๋ ์ด๋ธ์ด์์. ๋งจ ๋ค์ ์ซ์๋ ๊ฐ๊ฐ ์ธก์ ๊ฐ๊ณผ ํ์์คํฌํ๋ฅผ ๋ํ๋ด์ฃ .
ํ๋ก๋ฉํ ์ฐ์ค๋ PromQL์ด๋ผ๋ ์์ฒด ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ์ฌ์ฉํด์. ์๋ฅผ ๋ค๋ฉด:
rate(http_requests_total{method="GET"}[5m])
์ด ์ฟผ๋ฆฌ๋ GET ๋ฉ์๋๋ก ๋ค์ด์จ HTTP ์์ฒญ์ 5๋ถ ๋์์ ์ด๋น ํ๊ท ์์ฒญ ์๋ฅผ ๋ณด์ฌ์ค์. ๊ฝค ๊ฐ๋ ฅํ์ฃ ? ๐
๐ก ์ฌ๋ฅ๋ท ํ!
์ฌ๋ฌ๋ถ, ์ด๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ์ ์ ๋ฐฐ์ฐ๊ณ ์ถ๋ค๋ฉด ์ฌ๋ฅ๋ท์์ ๊ด๋ จ ๊ฐ์๋ฅผ ์ฐพ์๋ณด๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ด์์. ์ฌ๋ฅ๋ท์๋ ๋ค์ํ IT ๊ธฐ์ ๊ด๋ จ ๊ฐ์๊ฐ ์์ด์, InfluxDB๋ ํ๋ก๋ฉํ ์ฐ์ค ๊ฐ์ ์ต์ ๊ธฐ์ ์ ๋ฐฐ์ธ ์ ์๋ต๋๋ค. ํนํ ์ค๋ฌด์์ ์ด๋ฐ ๊ธฐ์ ์ ์ฌ์ฉํด๋ณธ ์ ๋ฌธ๊ฐ๋ค์ ๊ฐ์๋ฅผ ๋ค์ผ๋ฉด ์ ๋ง ๋์์ด ๋ง์ด ๋ ๊ฑฐ์์!
์, ์ด์ ๋ฐ์ดํฐ ๋ชจ๋ธ๊ณผ ์ฌ์ฉ ๋ฐฉ๋ฒ๊น์ง ์์๋ดค์ด์. ๊ทผ๋ฐ ์ด ๋ ๋ ์, ์ค์ ๋ก ์ฑ๋ฅ์ ์ด๋จ๊น์? ๋ค์ ์น์ ์์ ์์ธํ ์์๋ณด๋๋ก ํด์! ๐โโ๏ธ๐จ
2. ์ฑ๋ฅ ๋น๊ต ๐๏ธ๐จ
์, ์ด์ ์ง์ง ํต์ฌ์ด์์! InfluxDB์ ํ๋ก๋ฉํ ์ฐ์ค, ๋๊ฐ ๋ ๋น ๋ฅด๊ณ ๊ฐ๋ ฅํ ๊น์? ๐ค ์ฑ๋ฅ ๋น๊ต๋ฅผ ์ํด ๋ช ๊ฐ์ง ์ค์ํ ์ธก๋ฉด์ ์ดํด๋ณผ๊ฒ์.
๋ฐ์ดํฐ ์์ง ์๋
๋ฐ์ดํฐ๋ฅผ ์ผ๋ง๋ ๋นจ๋ฆฌ ์ ์ฅํ ์ ์๋๋, ์ด๊ฒ ๋ฐ๋ก ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ช ์ด์ฃ !
- InfluxDB: InfluxDB๋ ๋ฐ์ดํฐ ์์ง ์๋๊ฐ ์ ๋ง ๋น ๋ฅธ ํธ์ด์์. ํนํ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ์ฐ๋ ์์ (bulk write)์์ ๊ฐ์ ์ ๋ณด์ฌ์. ์ด๋น ์์ญ๋ง ๊ฐ์ ๋ฐ์ดํฐ ํฌ์ธํธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ต๋๋ค.
- ํ๋ก๋ฉํ ์ฐ์ค: ํ๋ก๋ฉํ ์ฐ์ค๋ ๊ฝค ๋น ๋ฅธ ํธ์ด์ง๋ง, InfluxDB๋ณด๋ค๋ ์กฐ๊ธ ๋๋ ค์. ๋์ ๋ฐ์ดํฐ ์์ง์ ์์ ์ฑ์ด ๋ฐ์ด๋์ฃ . ๋คํธ์ํฌ ๋ฌธ์ ๊ฐ ์๊ฒจ๋ ๋ฐ์ดํฐ ์์ค์ด ์ ์ด์.
๐ ์๋ ๋๊ฒฐ ๊ฒฐ๊ณผ
์์ํ ๋ฐ์ดํฐ ์์ง ์๋๋ง ๋๊ณ ๋ณด๋ฉด InfluxDB๊ฐ ์ฝ๊ฐ ์์๋ ๊ฒ ๊ฐ์์. ํ์ง๋ง ์ค์ ํ๊ฒฝ์์๋ ๋คํธ์ํฌ ์ง์ฐ, ์์คํ ๋ถํ ๋ฑ ์ฌ๋ฌ ์์ธ์ด ์์ด์ ๋จ์ ๋น๊ต๋ ์ด๋ ต๋ต๋๋ค.
์ฟผ๋ฆฌ ์ฑ๋ฅ
๋ฐ์ดํฐ๋ฅผ ๋นจ๋ฆฌ ์ ์ฅํ๋ ๊ฒ๋ ์ค์ํ์ง๋ง, ํ์ํ ๋ ๋นจ๋ฆฌ ๊บผ๋ด ์ธ ์ ์์ด์ผ ์ง์ ํ ์ค๋ ฅ์์ฃ !
- InfluxDB: InfluxDB๋ ์๊ณ์ด ๋ฐ์ดํฐ ์กฐํ์ ์ต์ ํ๋์ด ์์ด์. ํนํ ์๊ฐ ๋ฒ์๋ฅผ ์ง์ ํ ์ฟผ๋ฆฌ๋ ์ง๊ณ ์ฟผ๋ฆฌ(์: ํ๊ท , ํฉ๊ณ ๊ณ์ฐ)์์ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ณด์ฌ์ค์.
- ํ๋ก๋ฉํ ์ฐ์ค: ํ๋ก๋ฉํ ์ฐ์ค๋ ์ค์๊ฐ ์ฟผ๋ฆฌ์ ์๋ฆผ ์ค์ ์ ๊ฐ์ ์ด ์์ด์. ๋ณต์กํ ์กฐ๊ฑด์ ์ฟผ๋ฆฌ๋ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์์ฃ .
๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ ์์ฒด์ ์ธ ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ๊ฐ์ง๊ณ ์์ด์. InfluxDB๋ InfluxQL์ด๋ผ๋ SQL๊ณผ ๋น์ทํ ๋ฌธ๋ฒ์ ์ฌ์ฉํ๊ณ , ํ๋ก๋ฉํ ์ฐ์ค๋ PromQL์ด๋ผ๋ ๋ ํนํ ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ์ฌ์ฉํด์.
# InfluxDB ์ฟผ๋ฆฌ ์์
SELECT mean("value") FROM "cpu" WHERE "host" = 'server01' AND time >= now() - 1h GROUP BY time(5m)
# ํ๋ก๋ฉํ
์ฐ์ค ์ฟผ๋ฆฌ ์์
rate(node_cpu_seconds_total{mode="system"}[5m])
InfluxDB์ ์ฟผ๋ฆฌ๋ SQL๊ณผ ๋น์ทํด์ ๋ฐฐ์ฐ๊ธฐ ์ฝ๋ค๋ ์ฅ์ ์ด ์์ด์. ๋ฐ๋ฉด ํ๋ก๋ฉํ ์ฐ์ค์ PromQL์ ์ฒ์์๋ ์ข ์ด๋ ต๊ฒ ๋๊ปด์ง ์ ์์ง๋ง, ์๊ณ์ด ๋ฐ์ดํฐ ๋ถ์์ ํนํ๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํด์.
๐ค ์ฟผ๋ฆฌ ์ฑ๋ฅ ํ
๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ ์ธ๋ฑ์ฑ์ ์ ํ์ฉํ๋ฉด ์ฟผ๋ฆฌ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ด์. InfluxDB์์๋ ํ๊ทธ๋ฅผ ์ ์ค๊ณํ๊ณ , ํ๋ก๋ฉํ ์ฐ์ค์์๋ ๋ ์ด๋ธ์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ ์ค์ํด์!
ํ์ฅ์ฑ
๋ฐ์ดํฐ๊ฐ ์ ์ ๋ง์์ง ๋, ์์คํ ์ ์ผ๋ง๋ ์ฝ๊ฒ ํ์ฅํ ์ ์๋๋๋ ์ค์ํ ํฌ์ธํธ์์.
- InfluxDB: ์คํ ์์ค ๋ฒ์ ์ InfluxDB๋ ๋จ์ผ ๋ ธ๋๋ก ๋์ํด์. ํด๋ฌ์คํฐ๋ง์ด ํ์ํ๋ค๋ฉด ์์ฉ ๋ฒ์ ์ ์ฌ์ฉํด์ผ ํด์. ํ์ง๋ง ๋จ์ผ ๋ ธ๋์์๋ ๋๋ผ์ด ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ์ฃ .
- ํ๋ก๋ฉํ ์ฐ์ค: ํ๋ก๋ฉํ ์ฐ์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋จ์ผ ๋ ธ๋ ์์คํ ์ด์์. ํ์ง๋ง Thanos๋ Cortex ๊ฐ์ ์คํ์์ค ํ๋ก์ ํธ๋ฅผ ํตํด ๋ถ์ฐ ์์คํ ์ผ๋ก ํ์ฅํ ์ ์์ด์.
ํ์ฅ์ฑ ๋ฉด์์๋ ๊ฐ์ ์ฅ๋จ์ ์ด ์์ด์. InfluxDB๋ ๋จ์ผ ๋ ธ๋์์ ๊ฐ๋ ฅํ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ์ง๋ง, ๋๊ท๋ชจ ๋ถ์ฐ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ ค๋ฉด ๋น์ฉ์ด ๋ค ์ ์์ด์. ํ๋ก๋ฉํ ์ฐ์ค๋ ์คํ์์ค ์ํ๊ณ๋ฅผ ํ์ฉํด ๋ฌด๋ฃ๋ก ๋ถ์ฐ ์์คํ ์ ๊ตฌ์ถํ ์ ์์ง๋ง, ์ค์ ์ด ์ข ๋ณต์กํ ์ ์์ฃ .
๐ก ์ฌ๋ฅ๋ท ํ์ฉ ํ!
์ฌ๋ฌ๋ถ, ์ด๋ฐ ๋ณต์กํ ์์คํ ์ ๊ตฌ์ถํ๊ณ ์ด์ํ๋ ๊ฑด ์ ๋ง ์ ๋ฌธ์ ์ธ ๊ธฐ์ ์ด ํ์ํด์. ์ฌ๋ฅ๋ท์์๋ ์ด๋ฐ ๊ณ ๊ธ ๊ธฐ์ ์ ๊ฐ์ง ์ ๋ฌธ๊ฐ๋ค์ ๋์์ ๋ฐ์ ์ ์๋ต๋๋ค. ์๋ฅผ ๋ค์ด, InfluxDB ํด๋ฌ์คํฐ ๊ตฌ์ถ์ด๋ ํ๋ก๋ฉํ ์ฐ์ค Thanos ์ค์ ๊ฐ์ ๊ณ ๊ธ ์์ ์ ์๋ขฐํ ์ ์์ด์. ์ ๋ฌธ๊ฐ์ ๋์์ ๋ฐ์ผ๋ฉด ์ํ์ฐฉ์ค๋ฅผ ์ค์ด๊ณ ๋น ๋ฅด๊ฒ ์์คํ ์ ๊ตฌ์ถํ ์ ์๋ต๋๋ค!
๋ฆฌ์์ค ์ฌ์ฉ๋
์ฑ๋ฅ ์ข์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฆฌ์์ค๋ฅผ ๋๋ฌด ๋ง์ด ์ก์๋จน์ผ๋ฉด ๊ณค๋ํ๊ฒ ์ฃ ? ๐
- InfluxDB: InfluxDB๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์๋์ ์ผ๋ก ๋์ ํธ์ด์์. ๋์ ๋์คํฌ ๊ณต๊ฐ์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํด์. ๋ฐ์ดํฐ ์์ถ ๊ธฐ๋ฅ์ด ๋ฐ์ด๋๊ฑฐ๋ ์.
- ํ๋ก๋ฉํ ์ฐ์ค: ํ๋ก๋ฉํ ์ฐ์ค๋ ์๋์ ์ผ๋ก ๊ฐ๋ฒผ์ด ํธ์ด์์. ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๋ ์ ๊ณ , CPU ์ฌ์ฉ๋๋ ๊ทธ๋ฆฌ ๋์ง ์์์. ํ์ง๋ง ์ฅ๊ธฐ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๋ ค๋ฉด ๋์คํฌ ๊ณต๊ฐ์ด ๋ง์ด ํ์ํ ์ ์์ด์.
๋ฆฌ์์ค ์ฌ์ฉ๋์ ์ค์ ํ๊ฒฝ๊ณผ ์ค์ ์ ๋ฐ๋ผ ๋ง์ด ๋ฌ๋ผ์ง ์ ์์ด์. ์๋ฅผ ๋ค์ด, InfluxDB์์ ๋ฐ์ดํฐ ๋ณด์กด ์ ์ฑ ์ ์ ์ค์ ํ๋ฉด ๋์คํฌ ์ฌ์ฉ๋์ ํฌ๊ฒ ์ค์ผ ์ ์๊ณ , ํ๋ก๋ฉํ ์ฐ์ค์์ ์ํ๋ง ์ฃผ๊ธฐ๋ฅผ ์กฐ์ ํ๋ฉด CPU ์ฌ์ฉ๋์ ์ต์ ํํ ์ ์๋ต๋๋ค.
์ด ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด InfluxDB๊ฐ ํ๋ก๋ฉํ ์ฐ์ค๋ณด๋ค ๋ฆฌ์์ค๋ฅผ ์ข ๋ ๋ง์ด ์ฌ์ฉํ๋ ๊ฑธ ๋ณผ ์ ์์ด์. ํ์ง๋ง ์ด๊ฑด ์ด๋๊น์ง๋ ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ๊ณ , ์ค์ ๋ก๋ ์ค์ ๊ณผ ์ฌ์ฉ ํจํด์ ๋ฐ๋ผ ๋ง์ด ๋ฌ๋ผ์ง ์ ์๋ต๋๋ค.
๋ฐ์ดํฐ ๋ณด์กด ๋ฐ ๋ค์ด์ํ๋ง
์๊ณ์ด ๋ฐ์ดํฐ๋ ์๊ฐ์ด ์ง๋๋ฉด์ ์์ฒญ๋๊ฒ ์์ด์์์. ์ด๊ฑธ ์ด๋ป๊ฒ ๊ด๋ฆฌํ๋๋๋ ์ค์ํ ํฌ์ธํธ์์.
- InfluxDB: InfluxDB๋ ๊ฐ๋ ฅํ ๋ฐ์ดํฐ ๋ณด์กด ์ ์ฑ ๊ณผ ๋ค์ด์ํ๋ง ๊ธฐ๋ฅ์ ์ ๊ณตํด์. ์ค๋๋ ๋ฐ์ดํฐ๋ ์๋์ผ๋ก ์ญ์ ํ๊ฑฐ๋, ์ ๋ฐ๋๋ฅผ ๋ฎ์ถฐ์ ๋ณด๊ดํ ์ ์์ด์.
- ํ๋ก๋ฉํ ์ฐ์ค: ํ๋ก๋ฉํ ์ฐ์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด์. ์ฅ๊ธฐ ๋ณด๊ด์ด ํ์ํ๋ค๋ฉด ์ธ๋ถ ์คํ ๋ฆฌ์ง ์์คํ ๊ณผ ์ฐ๋ํด์ผ ํด์.
InfluxDB์ ๋ฐ์ดํฐ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๋ง ๊ฐ๋ ฅํด์. ์๋ฅผ ๋ค์ด, "1๋ถ ๋จ์๋ก ์์งํ ๋ฐ์ดํฐ๋ฅผ 2์ฃผ๊ฐ ๋ณด๊ดํ๊ณ , ๊ทธ ์ดํ์๋ 1์๊ฐ ๋จ์๋ก ์์ถํด์ 1๋ ๊ฐ ๋ณด๊ด"ํ๋ ์์ ๋ณต์กํ ์ ์ฑ ๋ ์ฝ๊ฒ ์ค์ ํ ์ ์์ด์.
# InfluxDB ๋ฐ์ดํฐ ๋ณด์กด ์ ์ฑ
์์
CREATE RETENTION POLICY "two_weeks" ON "mydb" DURATION 2w REPLICATION 1
CREATE RETENTION POLICY "one_year" ON "mydb" DURATION 52w REPLICATION 1
# ๋ค์ด์ํ๋ง ์ฐ์ ์ฟผ๋ฆฌ ์์
CREATE CONTINUOUS QUERY "cq_30m" ON "mydb"
BEGIN
SELECT mean("value") INTO "one_year"."downsampled_measurement" FROM "measurement" GROUP BY time(30m)
END
ํ๋ก๋ฉํ ์ฐ์ค๋ ์ด๋ฐ ๋ณต์กํ ๋ฐ์ดํฐ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์์ง๋ง, ๋์ ์ ์ฐํ ํ์ฅ์ฑ์ ์ ๊ณตํด์. Thanos๋ Cortex ๊ฐ์ ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฅ๊ธฐ ๋ฐ์ดํฐ ๋ณด๊ด๊ณผ ๊ธ๋ก๋ฒ ์ฟผ๋ฆฌ ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์๋ต๋๋ค.
๐ง ์ฑ๋ฅ ์ต์ ํ ํ
๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํ ๋ค์ํ ์ต์ ์ ์ ๊ณตํด์. InfluxDB์์๋ ์ค๋ฉ ์ค์ , ์ธ๋ฉ๋ชจ๋ฆฌ ์ธ๋ฑ์ค ํฌ๊ธฐ ์กฐ์ ๋ฑ์ ํตํด ์ฑ๋ฅ์ ๋์ด์ฌ๋ฆด ์ ์๊ณ , ํ๋ก๋ฉํ ์ฐ์ค์์๋ ์คํฌ๋ํ ๊ฐ๊ฒฉ ์กฐ์ , ๋ ์ด๋ธ ์ต์ ํ ๋ฑ์ผ๋ก ์ฑ๋ฅ์ ๊ฐ์ ํ ์ ์์ด์. ์ด๋ฐ ์ธ๋ถ์ ์ธ ํ๋์ ์ค์ ์ฌ์ฉ ํจํด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ผ๋, ๋ชจ๋ํฐ๋ง๊ณผ ํ ์คํธ๋ฅผ ํตํด ์ต์ ์ ์ค์ ์ ์ฐพ๋ ๊ฒ ์ค์ํด์!
์, ์ฌ๊ธฐ๊น์ง InfluxDB์ ํ๋ก๋ฉํ ์ฐ์ค์ ์ฑ๋ฅ์ ๋ค์ํ ์ธก๋ฉด์์ ๋น๊ตํด๋ดค์ด์. ์ด๋ค๊ฐ์? ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ ๊ฐ์์ ์ฅ๋จ์ ์ด ๋๋ ทํ์ฃ ? ๐ค
๋ค์ ์น์ ์์๋ ์ด ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ฅ๊ณผ ์ฌ์ฉ ํธ์์ฑ์ ๋น๊ตํด๋ณผ ๊ฑฐ์์. ์ค์ ๋ก ์ฌ์ฉํ ๋ ์ด๋ค ์ฐจ์ด๊ฐ ์๋์ง, ์ด๋ค ์ํฉ์์ ์ด๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ ์ ํฉํ์ง ์์๋ณด๋๋ก ํด์! ๐
3. ๊ธฐ๋ฅ ๋ฐ ์ฌ์ฉ ํธ์์ฑ ๋น๊ต ๐ ๏ธ
์, ์ด์ InfluxDB์ ํ๋ก๋ฉํ ์ฐ์ค์ ์ค์ ์ฌ์ฉ ๊ฒฝํ์ ๋ํด ์๊ธฐํด๋ณผ๊น์? ๐ค ์ฑ๋ฅ๋ ์ค์ํ์ง๋ง, ์ค์ ๋ก ์ฌ์ฉํ ๋ ์ผ๋ง๋ ํธ๋ฆฌํ๊ณ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋์ง๋ ์ค์ํ์์์!
๋ฐ์ดํฐ ์์ง ๋ฐฉ์
๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ ๋ฐฉ์๋ถํฐ ์ข ๋ฌ๋ผ์.
- InfluxDB: InfluxDB๋ Push ๋ฐฉ์์ ์ฃผ๋ก ์ฌ์ฉํด์. ์ฆ, ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ์์ด์ ํธ๊ฐ ์ง์ ๋ฐ์ดํฐ๋ฅผ InfluxDB๋ก ๋ณด๋ด๋ ๋ฐฉ์์ด์ฃ .
- ํ๋ก๋ฉํ ์ฐ์ค: ํ๋ก๋ฉํ ์ฐ์ค๋ Pull ๋ฐฉ์์ ์ฌ์ฉํด์. ํ๋ก๋ฉํ ์ฐ์ค๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ํ๊ฒ ์์คํ ์์ ๋ฉํธ๋ฆญ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ์์ด์์.
InfluxDB์ Push ๋ฐฉ์์ ์ค์๊ฐ์ฑ์ด ๋๊ณ , ๋ฐฉํ๋ฒฝ ์ค์ ์ด ๊ฐ๋จํด์. ๋ฐ๋ฉด ํ๋ก๋ฉํ ์ฐ์ค์ Pull ๋ฐฉ์์ ์ค์ ์ง์ค์ ์ค์ ์ด ๊ฐ๋ฅํ๊ณ , ํ๊ฒ ์์คํ ์ ์ํ๋ฅผ ๋ ์ฝ๊ฒ ํ์ ํ ์ ์์ด์.
๐ค ์ด๋ค ๋ฐฉ์์ด ๋ ์ข์๊น?
Push vs Pull, ์ ๋ต์ ์์ด์! ์ํฉ์ ๋ฐ๋ผ ์ฅ๋จ์ ์ด ๋ฌ๋ผ์ง์ฃ . ์๋ฅผ ๋ค์ด, ๋ณด์์ด ์ค์ํ ํ๊ฒฝ์์๋ Push ๋ฐฉ์ ์ด ๋ ์ ํฉํ ์ ์๊ณ , ๋๊ท๋ชจ ๋ถ์ฐ ์์คํ ์ ๋ชจ๋ํฐ๋งํ ๋๋ Pull ๋ฐฉ์์ด ๊ด๋ฆฌํ๊ธฐ ๋ ์ฌ์ธ ์ ์์ด์.
๋ฐ์ดํฐ ์๊ฐํ
์์งํ ๋ฐ์ดํฐ๋ฅผ ์์๊ฒ ๋ณด์ฌ์ฃผ๋ ๊ฒ๋ ์ค์ํ์ฃ ! ๐
- InfluxDB: InfluxDB๋ Chronograf๋ผ๋ ์์ฒด ๋์๋ณด๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํด์. ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ ์์ ๊ทธ๋ํ๋ฅผ ๋น ๋ฅด๊ฒ ๋ง๋ค ์ ์์ด์.
- ํ๋ก๋ฉํ ์ฐ์ค: ํ๋ก๋ฉํ ์ฐ์ค๋ ๊ธฐ๋ณธ์ ์ธ ๊ทธ๋ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง, ๋ณดํต Grafana์ ํจ๊ป ์ฌ์ฉํด์. Grafana๋ ์ ๋ง ๊ฐ๋ ฅํ๊ณ ์ ์ฐํ ๋์๋ณด๋ ๋๊ตฌ์์.
์ฌ์ค ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ Grafana์ ์ ์ฐ๋๋ผ์. Grafana๋ ๋ฐ์ดํฐ ์๊ฐํ์ ํ์ค์ด๋ผ๊ณ ํ ์ ์์ ์ ๋๋ก ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋๊ตฌ๋๊น์.
# Grafana์์ InfluxDB ๋ฐ์ดํฐ ์ฟผ๋ฆฌ ์์
SELECT mean("usage_idle") FROM "cpu" WHERE $timeFilter GROUP BY time($__interval), "host"
# Grafana์์ ํ๋ก๋ฉํ
์ฐ์ค ๋ฐ์ดํฐ ์ฟผ๋ฆฌ ์์
rate(node_cpu_seconds_total{mode="idle"}[5m])
๐ก ์ฌ๋ฅ๋ท ํ์ฉ ํ!
๋ฐ์ดํฐ ์๊ฐํ๋ ์ ๋ง ์ค์ํ ๊ธฐ์ ์ด์์. ์ฌ๋ฅ๋ท์์ Grafana ๋์๋ณด๋ ์ ์ ์ ๋ฌธ๊ฐ๋ฅผ ์ฐพ์๋ณด๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ด์์. ์ ๋ฌธ๊ฐ์ ๋์์ ๋ฐ์ ๋ง๋ ๋์๋ณด๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ ํจ๊ณผ์ ์ผ๋ก ๋ถ์ํ๊ณ ์์ฌ๊ฒฐ์ ์ ํ์ฉํ๋ ๋ฐ ํฐ ๋์์ด ๋ ๊ฑฐ์์!
์๋ฆผ ๊ธฐ๋ฅ
๋ฌธ์ ๊ฐ ์๊ฒผ์ ๋ ๋น ๋ฅด๊ฒ ์๋ ค์ฃผ๋ ๊ธฐ๋ฅ, ์์ด์๋ ์ ๋๊ฒ ์ฃ ? ๐จ
- InfluxDB: InfluxDB๋ Kapacitor๋ผ๋ ๋ณ๋์ ๋๊ตฌ๋ฅผ ํตํด ๋ณต์กํ ์๋ฆผ ๊ท์น์ ์ค์ ํ ์ ์์ด์. ์คํธ๋ฆผ ์ฒ๋ฆฌ์ ๋ฐฐ์น ์ฒ๋ฆฌ๋ฅผ ๋ชจ๋ ์ง์ํด์ ์ ์ฐํด์.
- ํ๋ก๋ฉํ ์ฐ์ค: ํ๋ก๋ฉํ ์ฐ์ค๋ ๋ด์ฅ ์๋ฆผ ๊ด๋ฆฌ์๋ฅผ ์ ๊ณตํด์. PromQL์ ์ฌ์ฉํด ์๋ฆผ ๊ท์น์ ์ ์ํ ์ ์๊ณ , ๋ค์ํ ์๋ฆผ ์ฑ๋(Slack, Email ๋ฑ)์ ์ง์ํด์.
๋ ์์คํ ๋ชจ๋ ๊ฐ๋ ฅํ ์๋ฆผ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง, ํ๋ก๋ฉํ ์ฐ์ค์ ์๋ฆผ ์์คํ ์ด ์ข ๋ ์ง๊ด์ ์ด๊ณ ์ฌ์ฉํ๊ธฐ ์ฌ์ด ํธ์ด์์.
# ํ๋ก๋ฉํ
์ฐ์ค ์๋ฆผ ๊ท์น ์์
alert: HighCPUUsage
expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 5m
labels:
severity: warning
annotations:
summary: High CPU usage detected on {{ $labels.instance }}
description: CPU usage is above 80% for more than 5 minutes.
์ฟผ๋ฆฌ ์ธ์ด ๋ฐ ๋ฐ์ดํฐ ๋ถ์
๋ฐ์ดํฐ๋ฅผ ์์ ์์ฌ๋ก ๋ถ์ํ ์ ์์ด์ผ ์ง์ ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง์คํฐ! ๐งโโ๏ธ
- InfluxDB: InfluxDB๋ InfluxQL์ด๋ผ๋ SQL๊ณผ ๋น์ทํ ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ์ฌ์ฉํด์. SQL์ ์ต์ํ ์ฌ๋๋ค์ด ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์์ด์. ์ต๊ทผ์๋ Flux๋ผ๋ ์๋ก์ด ์คํฌ๋ฆฝํ ์ธ์ด๋ ๋์ ํ์ด์.
- ํ๋ก๋ฉํ ์ฐ์ค: ํ๋ก๋ฉํ ์ฐ์ค๋ PromQL์ด๋ผ๋ ๋ ํนํ ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ์ฌ์ฉํด์. ์๊ณ์ด ๋ฐ์ดํฐ ๋ถ์์ ํนํ๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง, ํ์ต ๊ณก์ ์ด ์ข ๊ฐํ๋ฅธ ํธ์ด์์.
InfluxQL์ SQL๊ณผ ๋น์ทํด์ ๋ฐฐ์ฐ๊ธฐ ์ฝ์ง๋ง, PromQL์ ์๊ณ์ด ๋ฐ์ดํฐ ๋ถ์์ ๋ ํนํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํด์. ์๋ฅผ ๋ค์ด, ๋ ์ด๋ธ์ ์ด์ฉํ ๋ค์ฐจ์ ๋ฐ์ดํฐ ์ฟผ๋ฆฌ๋ ์๊ฐ ๋ฒ์์ ๋ฐ๋ฅธ ๊ณ์ฐ์ด PromQL์์๋ ๋ ์ง๊ด์ ์ด์์.
# InfluxQL ์์
SELECT mean("value") FROM "cpu_usage" WHERE "host" = 'server01' AND time >= now() - 1h GROUP BY time(5m)
# PromQL ์์
rate(node_cpu_seconds_total{mode!="idle",instance="server01"}[1h]) * 100
๐ง ์ฟผ๋ฆฌ ์ต์ ํ ํ
๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ๋ ์ฃผ์๊ฐ ํ์ํด์. ํนํ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋๋ ์ฟผ๋ฆฌ ์ต์ ํ๊ฐ ์ค์ํด์. InfluxDB์์๋ ํ๊ทธ๋ฅผ ์ ํ์ฉํ๊ณ , ํ๋ก๋ฉํ ์ฐ์ค์์๋ ๋ ์ด๋ธ ์ ํ์ ์ ์คํ ํด์ผ ํด์. ๋ํ, ์๊ฐ ๋ฒ์๋ฅผ ์ ์ ํ ์ ํํ๋ ๊ฒ๋ ์ฑ๋ฅ ํฅ์์ ๋์์ด ๋ผ์!
ํ์ฅ์ฑ ๋ฐ ๊ณ ๊ฐ์ฉ์ฑ
์์คํ ์ด ์ปค์ ธ๋, ๋ฌธ์ ๊ฐ ์๊ฒจ๋ ๋๋ก์์ด์ผ ํ์ฃ ! ๐ช
- InfluxDB: ์คํ ์์ค ๋ฒ์ ์ InfluxDB๋ ๋จ์ผ ๋ ธ๋๋ก ๋์ํด์. ํด๋ฌ์คํฐ๋ง์ด ํ์ํ๋ค๋ฉด ์์ฉ ๋ฒ์ ์ ์ฌ์ฉํด์ผ ํด์. ๊ณ ๊ฐ์ฉ์ฑ ๊ตฌ์ฑ๋ ์์ฉ ๋ฒ์ ์์ ์ ๊ณตํด์.
- ํ๋ก๋ฉํ ์ฐ์ค: ํ๋ก๋ฉํ ์ฐ์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋จ์ผ ๋ ธ๋ ์์คํ ์ด์ง๋ง, Thanos๋ Cortex ๊ฐ์ ์คํ์์ค ํ๋ก์ ํธ๋ฅผ ํตํด ํ์ฅํ ์ ์์ด์. ์ด๋ฅผ ํตํด ์ฅ๊ธฐ ๋ฐ์ดํฐ ์ ์ฅ, ๊ธ๋ก๋ฒ ์ฟผ๋ฆฌ, ๊ณ ๊ฐ์ฉ์ฑ ๋ฑ์ ๊ตฌํํ ์ ์์ด์.
๋๊ท๋ชจ ์์คํ ์ ๊ตฌ์ถํด์ผ ํ๋ค๋ฉด, InfluxDB๋ ๋น์ฉ์ด ๋ค์ง๋ง ์์ ์ ์ธ ์์ฉ ์๋ฃจ์ ์ ์ ๊ณตํ๊ณ , ํ๋ก๋ฉํ ์ฐ์ค๋ ์คํ์์ค ์ํ๊ณ๋ฅผ ํ์ฉํ ์ ์ฐํ ํ์ฅ์ด ๊ฐ๋ฅํด์.
์ปค๋ฎค๋ํฐ ๋ฐ ์ํ๊ณ
์ข์ ๋๊ตฌ๋ ์ข์ ์ปค๋ฎค๋ํฐ๊ฐ ๋ท๋ฐ์นจ๋์ด์ผ ํด์! ๐ฅ
- InfluxDB: InfluxDB๋ ํ๋ฐํ ์ปค๋ฎค๋ํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ด์. ํนํ IoT๋ ์ผ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ถ์ผ์์ ๊ฐ์ธ๋ฅผ ๋ณด์ฌ์. TICK ์คํ(Telegraf, InfluxDB, Chronograf, Kapacitor)์ด๋ผ๋ ์์ ํ ๋ชจ๋ํฐ๋ง ์๋ฃจ์ ์ ์ ๊ณตํด์.
- ํ๋ก๋ฉํ ์ฐ์ค: ํ๋ก๋ฉํ ์ฐ์ค๋ CNCF(Cloud Native Computing Foundation) ํ๋ก์ ํธ๋ก, ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ํ๊ฒฝ์์ ํนํ ์ธ๊ธฐ๊ฐ ๋ง์์. ๋ค์ํ ์ต์คํฌํฐ์ ํตํฉ ๋๊ตฌ๋ค์ด ์์ด ํ์ฅ์ฑ์ด ๋ฐ์ด๋์.
๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ ํ๋ฐํ ์ปค๋ฎค๋ํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ด์. ๋ฌธ์ ๊ฐ ์๊ฒผ์ ๋ ๋์์ ๋ฐ๊ธฐ ์ฝ๊ณ , ๊ณ์ํด์ ์๋ก์ด ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ์ฌํญ์ด ๋์ค๊ณ ์์ด์.
๐ก ์ฌ๋ฅ๋ท ํ์ฉ ํ!
์ด๋ฐ ์คํ์์ค ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋ ๊ฒ๋ ์ข์ ๊ฒฝํ์ด ๋ ์ ์์ด์. ์ฌ๋ฅ๋ท์์ InfluxDB๋ ํ๋ก๋ฉํ ์ฐ์ค ๊ด๋ จ ํ๋ก์ ํธ๋ฅผ ์ฐพ์๋ณด์ธ์. ์คํ์์ค ๊ธฐ์ฌ๋ ๊ธฐ์ ์ ํฅ์์ํค๊ณ ์ปค๋ฆฌ์ด์๋ ๋์์ด ๋ ๊ฑฐ์์!
์ฌ์ฉ ์ฌ๋ก ๋ฐ ์ ํฉํ ํ๊ฒฝ
์ด๋ค ์ํฉ์์ ์ด๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ ์ ํฉํ ๊น์? ๐ค
- InfluxDB:
- IoT ๋ฐ ์ผ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- ์ค์๊ฐ ๋ถ์์ด ํ์ํ ํ๊ฒฝ
- ๋๋์ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ฐ๊ณ ์ฝ์ด์ผ ํ๋ ๊ฒฝ์ฐ
- ๋ณต์กํ ๋ฐ์ดํฐ ๋ณด์กด ์ ์ฑ ์ด ํ์ํ ๊ฒฝ์ฐ
- ํ๋ก๋ฉํ
์ฐ์ค:
- ๋ง์ดํฌ๋ก์๋น์ค ๋ฐ ์ปจํ ์ด๋ ํ๊ฒฝ ๋ชจ๋ํฐ๋ง
- Kubernetes ํด๋ฌ์คํฐ ๋ชจ๋ํฐ๋ง
- ๋ค์ฐจ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ด ํ์ํ ๊ฒฝ์ฐ
- Pull ๊ธฐ๋ฐ์ ์ํคํ ์ฒ๊ฐ ์ ํฉํ ํ๊ฒฝ
๋ฌผ๋ก ์ด๋ ์ผ๋ฐ์ ์ธ ๊ฒฝํฅ์ผ ๋ฟ์ด์์. ์ค์ ๋ก๋ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ ๋ค์ํ ํ๊ฒฝ์์ ์ฌ์ฉ๋ ์ ์์ด์.
๊ฒฐ๋ก
์, ์ฌ๊ธฐ๊น์ง InfluxDB์ ํ๋ก๋ฉํ ์ฐ์ค์ ๊ธฐ๋ฅ๊ณผ ์ฌ์ฉ ํธ์์ฑ์ ๋น๊ตํด๋ดค์ด์. ์ด๋ค๊ฐ์? ๐
๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง, ๊ฐ๊ฐ์ ํน์ง์ด ๋๋ ทํด์. InfluxDB๋ ๋ฐ์ดํฐ ์ฐ๊ธฐ์ ๋ณต์กํ ๋ณด์กด ์ ์ฑ ์ ๊ฐ์ ์ด ์๊ณ , ํ๋ก๋ฉํ ์ฐ์ค๋ ๋ค์ฐจ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๊ณผ ๊ฐ๋ ฅํ ์ฟผ๋ฆฌ ์ธ์ด๊ฐ ํน์ง์ด์์.
๊ฒฐ๊ตญ ์ด๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํํ ์ง๋ ์ฌ๋ฌ๋ถ์ ํ๋ก์ ํธ ์๊ตฌ์ฌํญ, ๊ธฐ์กด ์ธํ๋ผ, ํ์ ๊ฒฝํ ๋ฑ์ ์ข ํฉ์ ์ผ๋ก ๊ณ ๋ คํด์ผ ํด์. ๋๋ก๋ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒ๋ ์ข์ ์ ํ์ผ ์ ์์ด์.
์ค์ํ ๊ฑด, ์ด ๋๊ตฌ๋ค์ ์ ์ดํดํ๊ณ ์ ์ฌ์ ์์ ํ์ฉํ๋ ๊ฑฐ์์. ๊ทธ๋ฌ๋ฉด ์ฌ๋ฌ๋ถ์ ์์คํ ์ ๋์ฑ ๊ฐ๋ ฅํด์ง๊ณ , ๋ฌธ์ ๋ฅผ ๋น ๋ฅด๊ฒ ๋ฐ๊ฒฌํ๊ณ ํด๊ฒฐํ ์ ์์ ๊ฑฐ์์! ๐
์, ์ด์ ์ฌ๋ฌ๋ถ์ InfluxDB์ ํ๋ก๋ฉํ ์ฐ์ค์ ๋ํด ๊ฝค ๋ง์ด ์๊ฒ ๋์์ด์. ์ด ์ง์์ ๋ฐํ์ผ๋ก ์ฌ๋ฌ๋ถ์ ํ๋ก์ ํธ์ ๊ฐ์ฅ ์ ํฉํ ๋๊ตฌ๋ฅผ ์ ํํ๊ณ , ๋ฉ์ง ๋ชจ๋ํฐ๋ง ์์คํ ์ ๊ตฌ์ถํด๋ณด์ธ์! ํ์ดํ ! ๐ช๐
- ์ง์์ธ์ ์ฒ - ์ง์ ์ฌ์ฐ๊ถ ๋ณดํธ ๊ณ ์ง
์ง์ ์ฌ์ฐ๊ถ ๋ณดํธ ๊ณ ์ง
- ์ ์๊ถ ๋ฐ ์์ ๊ถ: ๋ณธ ์ปจํ ์ธ ๋ ์ฌ๋ฅ๋ท์ ๋ ์ AI ๊ธฐ์ ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ํ๋ฏผ๊ตญ ์ ์๊ถ๋ฒ ๋ฐ ๊ตญ์ ์ ์๊ถ ํ์ฝ์ ์ํด ๋ณดํธ๋ฉ๋๋ค.
- AI ์์ฑ ์ปจํ ์ธ ์ ๋ฒ์ ์ง์: ๋ณธ AI ์์ฑ ์ปจํ ์ธ ๋ ์ฌ๋ฅ๋ท์ ์ง์ ์ฐฝ์๋ฌผ๋ก ์ธ์ ๋๋ฉฐ, ๊ด๋ จ ๋ฒ๊ท์ ๋ฐ๋ผ ์ ์๊ถ ๋ณดํธ๋ฅผ ๋ฐ์ต๋๋ค.
- ์ฌ์ฉ ์ ํ: ์ฌ๋ฅ๋ท์ ๋ช ์์ ์๋ฉด ๋์ ์์ด ๋ณธ ์ปจํ ์ธ ๋ฅผ ๋ณต์ , ์์ , ๋ฐฐํฌ, ๋๋ ์์ ์ ์ผ๋ก ํ์ฉํ๋ ํ์๋ ์๊ฒฉํ ๊ธ์ง๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ์์ง ๊ธ์ง: ๋ณธ ์ปจํ ์ธ ์ ๋ํ ๋ฌด๋จ ์คํฌ๋ํ, ํฌ๋กค๋ง, ๋ฐ ์๋ํ๋ ๋ฐ์ดํฐ ์์ง์ ๋ฒ์ ์ ์ฌ์ ๋์์ด ๋ฉ๋๋ค.
- AI ํ์ต ์ ํ: ์ฌ๋ฅ๋ท์ AI ์์ฑ ์ปจํ ์ธ ๋ฅผ ํ AI ๋ชจ๋ธ ํ์ต์ ๋ฌด๋จ ์ฌ์ฉํ๋ ํ์๋ ๊ธ์ง๋๋ฉฐ, ์ด๋ ์ง์ ์ฌ์ฐ๊ถ ์นจํด๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
์ฌ๋ฅ๋ท์ ์ต์ AI ๊ธฐ์ ๊ณผ ๋ฒ๋ฅ ์ ๊ธฐ๋ฐํ์ฌ ์์ฌ์ ์ง์ ์ฌ์ฐ๊ถ์ ์ ๊ทน์ ์ผ๋ก ๋ณดํธํ๋ฉฐ,
๋ฌด๋จ ์ฌ์ฉ ๋ฐ ์นจํด ํ์์ ๋ํด ๋ฒ์ ๋์์ ํ ๊ถ๋ฆฌ๋ฅผ ๋ณด์ ํฉ๋๋ค.
ยฉ 2025 ์ฌ๋ฅ๋ท | All rights reserved.
๋๊ธ 0๊ฐ