Zabbix๊ฐ TimescaleDB ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ฐฑ์๋๋ก ์ฌ์ฉํ์ฌ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ฒ์๋ถํฐ ์์ํ๋ ๋ฐฉ๋ฒ๊ณผ PostgreSQL์์ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ ๋๋ฆฌ๊ฒ ์ต๋๋ค. ๋ํ ๋ ๊ตฌ์ฑ์ ๋น๊ต ์ฑ๋ฅ ํ ์คํธ๋ ์ ๊ณตํฉ๋๋ค.
HighLoad++ ์๋ฒ ๋ฆฌ์ 2019. ํฐ์คํฌ ํ. 24์ 16์ผ 00:XNUMX. ๋
ผ๋ฌธ๊ณผ
Andrey Gushchin(์ดํ โ AG): โ ์ ๋ ํธ๋ ์ด๋์ธ ZABBIX ๊ธฐ์ ์ง์ ์์ง๋์ด(์ดํ "Zabbix")์
๋๋ค. ์ ๋ 6๋
๋๊ฒ ๊ธฐ์ ์ง์ ๋ถ์ผ์์ ์ผํด ์์ผ๋ฉฐ ์ฑ๋ฅ์ ๋ํ ์ง์ ์ ์ธ ๊ฒฝํ์ ํ์ต๋๋ค. ์ค๋์ ์ผ๋ฐ PostgreSQL 10๊ณผ ๋น๊ตํ์ฌ TimescaleDB๊ฐ ์ ๊ณตํ ์ ์๋ ์ฑ๋ฅ์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค. ๋ํ ์ผ๋ฐ์ ์ธ ์๋ ๋ฐฉ์์ ๋ํ ์๊ฐ ๋ถ๋ถ๋ ์์ต๋๋ค.
์ต๊ณ ์ ์์ฐ์ฑ ๊ณผ์ : ๋ฐ์ดํฐ ์์ง๋ถํฐ ๋ฐ์ดํฐ ์ ๋ฆฌ๊น์ง
์ฐ์ , ๋ชจ๋ ๋ชจ๋ํฐ๋ง ์์คํ ์ด ์ง๋ฉดํ๋ ํน์ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์์ฐ์ฑ ๊ณผ์ ๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์์งํ๊ณ ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋๋ค.
์ข์ ๋ชจ๋ํฐ๋ง ์์คํ
์ ์ ์ํ๊ณ ์ ์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ณ , ํธ๋ฆฌ๊ฑฐ ํํ์์ ๋ฐ๋ผ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ์ฆ, ์ผ๋ถ ๊ธฐ์ค(์์คํ
๋ง๋ค ๋ค๋ฆ)์ ๋ฐ๋ผ ์ฒ๋ฆฌํ๊ณ , ์ด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํด์ผ ํฉ๋๋ค. ๋ฏธ๋.
๋ ๋ฒ์งธ ์ฑ๋ฅ ๊ณผ์ ๋ ๊ธฐ๋ก ์ ์ฅ์
๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ฃผ ์ ์ฅํ๊ณ ์ผ์ ๊ธฐ๊ฐ ๋์ ์์ง๋ ์ด๋ฌํ ์ธก์ ํญ๋ชฉ์ ๋น ๋ฅด๊ณ ํธ๋ฆฌํ๊ฒ ์ก์ธ์คํ์ธ์. ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ด ๋ฐ์ดํฐ๊ฐ ๋ณด๊ณ ์, ๊ทธ๋ํ, ํธ๋ฆฌ๊ฑฐ, ์ผ๋ถ ์๊ณ๊ฐ, ๊ฒฝ๊ณ ๋ฑ์ ์ฌ์ฉํ๊ธฐ ํธ๋ฆฌํ๋ค๋ ๊ฒ์
๋๋ค.
์ธ ๋ฒ์งธ ์ฑ๋ฅ ๋ฌธ์ ๋ ๊ธฐ๋ก ์ง์ฐ๊ธฐ์
๋๋ค. ์ฆ, 5๋
(์ฌ์ง์ด ๋ช ๋ฌ ๋๋ ๋ ๋ฌ) ๋์ ์์ง๋ ์ธ๋ถ ์งํ๋ฅผ ์ ์ฅํ ํ์๊ฐ ์๋ ์ง์ ์ ๋๋ฌํ๋ ๊ฒฝ์ฐ์
๋๋ค. ์ผ๋ถ ๋คํธ์ํฌ ๋
ธ๋ ๋๋ ์ผ๋ถ ํธ์คํธ๊ฐ ์ญ์ ๋์์ต๋๋ค. ๋ฉํธ๋ฆญ์ ์ด๋ฏธ ์ค๋๋์ด ๋ ์ด์ ์์ง๋์ง ์์ผ๋ฏ๋ก ๋ ์ด์ ํ์ํ์ง ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋๋ฌด ์ปค์ง์ง ์๋๋ก ์ด ๋ชจ๋ ๊ฒ์ ์ ๋ฆฌํด์ผ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ธฐ๋ก ์ง์ฐ๊ธฐ๋ ์คํ ๋ฆฌ์ง์ ๋ํ ์ฌ๊ฐํ ํ
์คํธ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฉฐ ์ฑ๋ฅ์ ๋งค์ฐ ํฐ ์ํฅ์ ๋ฏธ์น๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์บ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
์ด์ Zabbix์ ๋ํด ๊ตฌ์ฒด์ ์ผ๋ก ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค. Zabbix์์๋ ์ฒซ ๋ฒ์งธ์ ๋ ๋ฒ์งธ ํธ์ถ์ด ์บ์ฑ์ ์ฌ์ฉํ์ฌ ํด๊ฒฐ๋ฉ๋๋ค.
๋ฐ์ดํฐ ์์ง ๋ฐ ์ฒ๋ฆฌ - ์ฐ๋ฆฌ๋ RAM์ ์ฌ์ฉํ์ฌ ์ด ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ์ด์ ์ด๋ฌํ ๋ฐ์ดํฐ์ ๋ํด ๋ ์์ธํ ์ค๋ช
ํ๊ฒ ์ต๋๋ค.
๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธก์๋ ๊ทธ๋ํ ๋ฐ ๊ธฐํ ํญ๋ชฉ๊ณผ ๊ฐ์ ์ฃผ์ ์ ํ ํญ๋ชฉ์ ๋ํ ์บ์ฑ์ด ์์ต๋๋ค.
Zabbix ์๋ฒ ์์ฒด ์ธก์ ์บ์ฑ: ConfigurationCache, ValueCache, HistoryCache, TrendsCache๊ฐ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋ฌด์์ ๋๊น?
ConfigurationCache๋ ๋ฉํธ๋ฆญ, ํธ์คํธ, ๋ฐ์ดํฐ ํญ๋ชฉ, ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ ์ฅํ๋ ๊ธฐ๋ณธ ์บ์์
๋๋ค. ์ ์ฒ๋ฆฌ ์ฒ๋ฆฌ, ๋ฐ์ดํฐ ์์ง, ์์งํ ํธ์คํธ, ๋น๋์ ํ์ํ ๋ชจ๋ ๊ฒ. ์ด ๋ชจ๋ ๊ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ด๋ํ์ฌ ๋ถํ์ํ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ์ง ์๋๋ก ConfigurationCache์ ์ ์ฅ๋ฉ๋๋ค. ์๋ฒ๊ฐ ์์๋ ํ ์ด ์บ์๋ฅผ ์
๋ฐ์ดํธ(์์ฑ)ํ๊ณ ์ฃผ๊ธฐ์ ์ผ๋ก ์
๋ฐ์ดํธํฉ๋๋ค(๊ตฌ์ฑ ์ค์ ์ ๋ฐ๋ผ).
Zabbix์์ ์บ์ฑ. ๋ฐ์ดํฐ ์์ง
์ฌ๊ธฐ์ ๋ค์ด์ด๊ทธ๋จ์ ์๋นํ ํฝ๋๋ค.
์ด ๊ณํ์ ์ฃผ์ ํญ๋ชฉ์ ๋ค์ ์์ง๊ฐ์
๋๋ค.
์ด๋ ์กฐ๋ฆฝ ํ๋ก์ธ์ค ์์ฒด์ด๋ฉฐ ๋ค์ํ ์ ํ์ ์กฐ๋ฆฝ์ ๋ด๋นํ๋ ๋ค์ํ "ํด๋ฌ"์
๋๋ค. icmp, ipmi ๋ฐ ๋ค์ํ ํ๋กํ ์ฝ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ์ด๋ฅผ ๋ชจ๋ ์ ์ฒ๋ฆฌ๋ก ์ ์กํฉ๋๋ค.
์ ์ฒ๋ฆฌ ๊ธฐ๋ก์บ์
๋ํ ๊ณ์ฐ๋ ๋ฐ์ดํฐ ์์(Zabbix์ ์ต์ํ ์ฌ๋๋ค์ ์๊ณ ์์), ์ฆ ๊ณ์ฐ๋ ์ง๊ณ ๋ฐ์ดํฐ ์์๊ฐ ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ValueCache์์ ์ง์ ๊ฐ์ ธ์ต๋๋ค. ๋์ค์ ์ด๋ป๊ฒ ์ฑ์์ง๋์ง ์๋ ค๋๋ฆด๊ฒ์. ์ด๋ฌํ ์์ง๊ธฐ๋ ๋ชจ๋ ConfigurationCache๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ ์์ ํ ๋ค์ ์ ์ฒ๋ฆฌ์ ์ ๋ฌํฉ๋๋ค.
๋ํ ์ ์ฒ๋ฆฌ๋ ConfigurationCache๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฒ๋ฆฌ ๋จ๊ณ๋ฅผ ์ป๊ณ ์ด ๋ฐ์ดํฐ๋ฅผ ๋ค์ํ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค. ๋ฒ์ 4.2๋ถํฐ ํ๋ก์๋ก ์ด๋ํ์ต๋๋ค. ์ ์ฒ๋ฆฌ ์์ฒด๊ฐ ๋ค์ ์ด๋ ค์ด ์์
์ด๊ธฐ ๋๋ฌธ์ ์ด๋ ๋งค์ฐ ํธ๋ฆฌํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ ์์ ์๊ฐ ๋ง๊ณ ์์ง ๋น๋๊ฐ ๋์ Zabbix๊ฐ ๋งค์ฐ ํฐ ๊ฒฝ์ฐ ์์
์ด ํฌ๊ฒ ๋จ์ํ๋ฉ๋๋ค.
๋ฐ๋ผ์ ์ ์ฒ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ค ๋ฐฉ์์ผ๋ก๋ ์ด ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ํ ์ถ๊ฐ ์ฒ๋ฆฌ๋ฅผ ์ํด HistoryCache์ ์ ์ฅํฉ๋๋ค. ์ด๊ฒ์ผ๋ก ๋ฐ์ดํฐ ์์ง์ด ๋ง๋ฌด๋ฆฌ๋ฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ฃผ์ ํ๋ก์ธ์ค๋ก ์ด๋ํฉ๋๋ค.
ํ์คํ ๋ฆฌ ์ฑํฌ๋ก์ ์์
Zabbix์ ์ฃผ์ ํ๋ก์ธ์ค(๋ชจ๋๋ฆฌ์ ์ํคํ
์ฒ์ด๋ฏ๋ก)๋ ๊ธฐ๋ก ๋๊ธฐํ ์ฅ์น์
๋๋ค. ์ด๋ ๊ฐ ๋ฐ์ดํฐ ์์, ์ฆ ๊ฐ ๊ฐ์ ์์์ ์ฒ๋ฆฌ๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ๋ค๋ฃจ๋ ์ฃผ์ ํ๋ก์ธ์ค์
๋๋ค.
- ๊ฐ์ด ์ต๋๋ค(HistoryCache์์ ๊ฐ์ ธ์ด).
- ๊ตฌ์ฑ ๋๊ธฐํ ์ฅ์น์์ ํ์ธ: ๊ณ์ฐ์ ์ํ ํธ๋ฆฌ๊ฑฐ๊ฐ ์๋์ง ์ฌ๋ถ - ์ด๋ฅผ ๊ณ์ฐํฉ๋๋ค.
์๋ ๊ฒฝ์ฐ - ๊ตฌ์ฑ์ ๋ฐ๋ผ ํ์ํ ๊ฒฝ์ฐ ์ด๋ฒคํธ๋ฅผ ์์ฑํ๊ณ ๊ฒฝ๊ณ ๋ฅผ ์์ฑํ๊ธฐ ์ํ ์์ค์ปฌ๋ ์ด์ ์ ์์ฑํฉ๋๋ค. - ํ์ ์ฒ๋ฆฌ, ์ง๊ณ๋ฅผ ์ํ ๊ธฐ๋ก ํธ๋ฆฌ๊ฑฐ; ์ง๋ XNUMX์๊ฐ ๋์ ์ง๊ณํ๋ ๊ฒฝ์ฐ ์ด ๊ฐ์ ๊ธฐ๋ก ํ ์ด๋ธ๋ก ์ด๋ํ์ง ์๋๋ก ValueCache์ ์ํด ๊ธฐ์ต๋ฉ๋๋ค. ๋ฐ๋ผ์ ValueCache๋ ํธ๋ฆฌ๊ฑฐ, ๊ณ์ฐ๋ ์์ ๋ฑ์ ๊ณ์ฐํ๋ ๋ฐ ํ์ํ ํ์ ๋ฐ์ดํฐ๋ก ์ฑ์์ง๋๋ค.
- ๊ทธ๋ฐ ๋ค์ ๊ธฐ๋ก ๋๊ธฐํ ์ฅ์น๊ฐ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋กํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด๋ฅผ ๋์คํฌ์ ๊ธฐ๋กํฉ๋๋ค. ์ฌ๊ธฐ์์ ์ฒ๋ฆฌ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ฉ๋๋ค.
๋ฐ์ดํฐ ๋ฒ ์ด์ค. ์บ์ฑ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธก์์๋ ์ด๋ฒคํธ์ ๋ํ ๊ทธ๋ํ๋ ์ผ๋ถ ๋ณด๊ณ ์๋ฅผ ๋ณด๊ณ ์ ํ ๋ ๋ค์ํ ์บ์๊ฐ ์์ต๋๋ค. ํ์ง๋ง ์ด ๋ณด๊ณ ์์์๋ ์ด์ ๋ํด ์ธ๊ธํ์ง ์๊ฒ ์ต๋๋ค.
MySQL์ ๊ฒฝ์ฐ Innodb_buffer_pool๊ณผ ๊ตฌ์ฑํ ์ ์๋ ๋ค์ํ ์บ์๊ฐ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ฃผ์ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๊ณต์ _๋ฒํผ;
- ํจ๊ณผ์ ์ธ_์บ์_ํฌ๊ธฐ;
- ๊ณต์ _ํ.
๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ์ฟผ๋ฆฌ์ ์์ฃผ ํ์ํ ๋ฐ์ดํฐ๋ฅผ RAM์ ์ ์ฅํ ์ ์๋ ํน์ ์บ์๊ฐ ์๋ค๊ณ ๋ง์๋๋ ธ์ต๋๋ค. ๊ทธ๋ค์ ์ด์ ๋ํ ์์ฒด ๊ธฐ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ ์ ๋ณด
๋ฐ๋ผ์ Zabbix ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ๊ธฐ๋กํ๋ ๊ฒฝ์์ ์ธ ํ๊ฒฝ์ด ์กด์ฌํฉ๋๋ค. ๋ค์ ์์ํ๋ฉด ๊ธฐ๋ก์์ ์ฝ์ด ValueCache ๋ฑ์ ์ฑ์๋๋ค. ์ฌ๊ธฐ์์๋ ์น ์ธํฐํ์ด์ค์ ๊ตฌ์ถ๋ Zabbix API๋ฅผ ์ฌ์ฉํ๋ ์คํฌ๋ฆฝํธ์ ๋ณด๊ณ ์๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. Zabbix API๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ค์ด๊ฐ์ ๊ทธ๋ํ, ๋ณด๊ณ ์ ๋๋ ์ผ์ข ์ ์ด๋ฒคํธ ๋ชฉ๋ก, ์ต๊ทผ ๋ฌธ์ ๋ฅผ ์ป๋ ๋ฐ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ต๋๋ค.
๋ํ ๋งค์ฐ ์ธ๊ธฐ ์๋ ์๊ฐํ ์๋ฃจ์
์ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ๋ Grafana์
๋๋ค. Zabbix API์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํตํด ์ง์ ๋ก๊ทธ์ธํ ์ ์์ต๋๋ค. ์ด๋ ๋ํ ๋ฐ์ดํฐ ํ๋์ ์ํ ํน์ ๊ฒฝ์์ ์ผ๊ธฐํฉ๋๋ค. ๊ฒฐ๊ณผ ๋ฐ ํ
์คํธ์ ์ ์ํ ์ ๋ฌ์ ์ค์ํ๋ ค๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ ์ธ๋ฐํ๊ณ ๋ ์ ์กฐ์ ํด์ผ ํฉ๋๋ค.
๊ธฐ๋ก์ ์ญ์ ํฉ๋๋ค. Zabbix์๋ ๊ฐ์ ๋ถ๊ฐ ์์ต๋๋ค
Zabbix์์ ์ฌ์ฉ๋๋ ์ธ ๋ฒ์งธ ํธ์ถ์ Housekeeper๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ก์ ์ง์ฐ๋ ๊ฒ์ ๋๋ค. Housekeeper๋ ๋ชจ๋ ์ค์ ์ ๋ฐ๋ฆ ๋๋ค. ์ฆ, ๋ฐ์ดํฐ ์์๋ ์ ์ฅ ๊ธฐ๊ฐ(์ผ), ์ถ์ธ ์ ์ฅ ๊ธฐ๊ฐ ๋ฐ ๋ณํ์ ์ญํ์ ๋ํ๋ ๋๋ค.
์ฆ์์์ ๊ณ์ฐํ๋ TrendCache์ ๋ํด์๋ ์ธ๊ธํ์ง ์์์ต๋๋ค. ๋ฐ์ดํฐ๊ฐ ๋์ฐฉํ๋ฉด ํ ์๊ฐ ๋์ ์ง๊ณํ๊ณ (๋๋ถ๋ถ ์ง๋ ์๊ฐ์ ์ซ์์ ๋๋ค) ์์ ํ๊ท /์ต์์ด๋ฉฐ ํ ์๊ฐ์ ํ ๋ฒ์ฉ ๊ธฐ๋กํฉ๋๋ค. ๋ณํ์ ์ญํ(โ์ถ์ธโ) ํ. "Housekeeper"๋ ์ผ๋ฐ ์ ํ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ์์ํ๊ณ ์ญ์ ํ์ง๋ง ํญ์ ํจ๊ณผ์ ์ธ ๊ฒ์ ์๋๋๋ค.
๊ทธ๊ฒ์ด ํจ๊ณผ๊ฐ ์๋ค๋ ๊ฒ์ ์ด๋ป๊ฒ ์ดํดํฉ๋๊น? ๋ด๋ถ ํ๋ก์ธ์ค์ ์ฑ๋ฅ ๊ทธ๋ํ์์ ๋ค์ ๊ทธ๋ฆผ์ ๋ณผ ์ ์์ต๋๋ค.
๊ธฐ๋ก ๋๊ธฐํ ์ฅ์น๊ฐ ๊ณ์ ์ฌ์ฉ ์ค์
๋๋ค(๋นจ๊ฐ์ ๊ทธ๋ํ). ๊ทธ๋ฆฌ๊ณ ๋งจ ์์ ์๋ "๋นจ๊ฐ์" ๊ทธ๋ํ. ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ง์ ํ ๋ชจ๋ ํ์ ์ญ์ ํ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ "๊ด๋ฆฌ์"์
๋๋ค.
์ผ๋ถ ํญ๋ชฉ ID๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋ง์ง๋ง 5๊ฐ๋ฅผ ์ญ์ ํด์ผ ํฉ๋๋ค. ๋ฌผ๋ก ์ธ๋ฑ์ค๋ก์. ๊ทธ๋ฌ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ์ธํธ๋ ์๋นํ ํฝ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ์ ํ ์ด๋ฅผ ๋์คํฌ์์ ์ฝ์ด ์บ์์ ์ ์ฅํ๋๋ฐ, ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ด ๋งค์ฐ ๋น์ฉ์ด ๋ง์ด ๋๋ ์์ ์ ๋๋ค. ํฌ๊ธฐ์ ๋ฐ๋ผ ํน์ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก Housekeeper๋ฅผ ๋นํ์ฑํํ ์ ์์ต๋๋ค. ์น์ํ ์น ์ธํฐํ์ด์ค๊ฐ ์์ต๋๋ค. ๊ด๋ฆฌ ์ผ๋ฐ ์ค์ ("Housekeeper" ์ค์ )์์๋ ๋ด๋ถ ๊ธฐ๋ก ๋ฐ ์ถ์ธ์ ๋ํ ๋ด๋ถ ๊ด๋ฆฌ๋ฅผ ๋นํ์ฑํํฉ๋๋ค. ๋ฐ๋ผ์ Housekeeper๋ ๋ ์ด์ ๋ค์ ์ฌํญ์ ํต์ ํ์ง ์์ต๋๋ค.
๋ค์์๋ ๋ฌด์์ ํ ์ ์๋์? ์ด ๊ธฐ๋ฅ์ ๋๋ฉด ๊ทธ๋ํ๊ฐ ๊ท ์ผํด์ง๋๋ค. ์ด ๊ฒฝ์ฐ ์ด๋ค ๋ฌธ์ ๊ฐ ๋ ๋ฐ์ํ ์ ์์ต๋๊น? ๋ฌด์์ด ๋์์ด ๋ ๊น์?
ํํฐ์ ๋(์น์ ๋)
์ผ๋ฐ์ ์ผ๋ก ์ด๋ ๋ด๊ฐ ๋์ดํ ๊ฐ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. MySQL์๋ ์์ฒด ๊ธฐ์ ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ PostgreSQL 10๊ณผ MySQL์ ๊ฒฝ์ฐ ์ ๋ฐ์ ์ผ๋ก ๋งค์ฐ ์ ์ฌํฉ๋๋ค. ๋ฌผ๋ก , ๋ชจ๋ ๊ตฌํ ๋ฐฉ์๊ณผ ์ฑ๋ฅ์ ๋ฏธ์น๋ ์ํฅ์๋ ๋ด๋ถ์ ์ผ๋ก ๋ง์ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋ฐ์ ์ผ๋ก ์ ํํฐ์ ์ ์์ฑํ๋ฉด ํน์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ค์ (ํ๋ฃจ์ ์์ฑํ๋ ๋ฐ์ดํฐ์ ์)์ ๋ฐ๋ผ ์ผ๋ฐ์ ์ผ๋ก ์ต์๊ฐ์ ์ค์ ํฉ๋๋ค. ์ด๋ 1์ผ/๋ฐฐ์น์ด๊ณ "ํธ๋ ๋"์ ๊ฒฝ์ฐ ๋ณ๊ฒฝ ์ญํ์ 1๊ฐ์/์ ๋ฐฐ์น์
๋๋ค. ์ค์ ์ด ๋งค์ฐ ํฐ ๊ฒฝ์ฐ์๋ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
์ค์ ํฌ๊ธฐ์ ๋ํด ๋ฐ๋ก ๋งํด ๋ณด๊ฒ ์ต๋๋ค. ์ด๋น ์ต๋ 5๊ฐ์ ์๋ก์ด ๊ฐ(์์ nvps) - ์ด๋ ์์ "์ค์ "์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ํ๊ท โ ์ด๋น 5~25๊ฐ ๊ฐ. ์์ ๋ชจ๋ ๋ด์ฉ์ ๋งค์ฐ ์ ์คํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ฑ์ด ํ์ํ ๋๊ท๋ชจ ์ค์น์ ๋๋ค.
๋๊ท๋ชจ ์ค์น์์๋ 1์ผ์ด ์ต์ ์ด ์๋ ์ ์์ต๋๋ค. ์ ๋ ๊ฐ์ธ์ ์ผ๋ก MySQL์์ ํ๋ฃจ์ 40GB์ ํํฐ์ ์ ๋ณธ ์ ์ด ์์ต๋๋ค(๋ ๋ง์ ์๋ ์์ต๋๋ค). ์ด๋ ๋งค์ฐ ๋ง์ ์์ ๋ฐ์ดํฐ์ด๋ฏ๋ก ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ค์ฌ์ผํฉ๋๋ค.
ํํฐ์ ๋์ด ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น?
ํํฐ์ ๋์ด ์ ๊ณตํ๋ ๊ฒ์ ๋ชจ๋๊ฐ ์๊ณ ์๋ ํ ์ด๋ธ ํํฐ์ ๋์ ๋๋ค. ์ข ์ข ์ด๋ ๋์คํฌ ๋ฐ ์คํฌ ์์ฒญ์ ๋ํ ๋ณ๋์ ํ์ผ์ ๋๋ค. ์ผ๋ฐ ํํฐ์ ๋์ ์ผ๋ถ์ธ ๊ฒฝ์ฐ ํ๋์ ํํฐ์ ์ ๋ ์ต์ ์ผ๋ก ์ ํํฉ๋๋ค.
ํนํ Zabbix์ ๊ฒฝ์ฐ ๋ฒ์, ๋ฒ์๋ณ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ฆ, ํ์์คํฌํ(์ผ๋ฐ ์ซ์, ์ํฌํฌ ์์ ์ดํ์ ์๊ฐ)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํ๋ฃจ์ ์์/๋์ ์ง์ ํ๋ฉฐ ์ด๊ฒ์ด ํํฐ์
์
๋๋ค. ๋ฐ๋ผ์ ์ดํ์ด ์ง๋ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ ๊ฒฝ์ฐ ํฐ ํ
์ด๋ธ์ด ์๋ ํ์ผ ํ๋๋ง ์บ์์ ๋ก๋ํ๊ณ ๋ฐํํ๋ฉด ๋๋ฏ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ชจ๋ ๊ฒ์ด ๋ ๋นจ๋ฆฌ ๊ฒ์๋ฉ๋๋ค.
๋ํ ๋ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฝ์
(ํ๋์ ํ์ ํ
์ด๋ธ์ ์ฝ์
) ์๋๋ฅผ ๋์
๋๋ค. ์ง๊ธ์ ์ถ์์ ์ผ๋ก ๋งํ๊ณ ์์ง๋ง ์ด๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค. ํํฐ์
๋์ ์ข
์ข
๋์์ด ๋ฉ๋๋ค.
NoSQL์ฉ Elasticsearch
์ต๊ทผ 3.4์์๋ NoSQL ์๋ฃจ์ ์ ๊ตฌํํ์ต๋๋ค. Elasticsearch์ ์์ฑํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ํน์ ์ ํ์ ์ธ ์ ์์ต๋๋ค. ์ ํํฉ๋๋ค. ์ซ์๋ ๊ธฐํธ๋ฅผ ์ธ ์ ์์ต๋๋ค. ๋ฌธ์์ด ํ ์คํธ๊ฐ ์์ผ๋ฏ๋ก Elasticsearch์ ๋ก๊ทธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค... ๋ฐ๋ผ์ ์น ์ธํฐํ์ด์ค๋ Elasticsearch์ ์ก์ธ์คํฉ๋๋ค. ์ด๊ฒ์ ์ด๋ค ๊ฒฝ์ฐ์๋ ํ๋ฅญํ๊ฒ ์๋ํ์ง๋ง ์ง๊ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
TimescaleDB. ํ์ดํผํ ์ด๋ธ
4.4.2์์๋ TimescaleDB์ ๊ฐ์ ํ ๊ฐ์ง์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋ฌด์์ ๋๊น? ์ด๊ฒ์ PostgreSQL์ ํ์ฅ์ ๋๋ค. ์ฆ, ๊ธฐ๋ณธ PostgreSQL ์ธํฐํ์ด์ค๊ฐ ์์ต๋๋ค. ๋ํ ์ด ํ์ฅ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ํจ์ฌ ๋ ํจ์จ์ ์ผ๋ก ์์ ํ๊ณ ์๋ ๋ถํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ชจ์ต:
์ด๊ฒ์ ํ์ดํผํ
์ด๋ธ์
๋๋ค. Timescale์๋ ๊ทธ๋ฌํ ๊ฐ๋
์ด ์์ต๋๋ค. ์ด๊ฒ์ ์ฌ์ฉ์๊ฐ ์์ฑํ๋ ํ์ดํผํ
์ด๋ธ์ด๋ฉฐ ์ฒญํฌ๋ฅผ ํฌํจํฉ๋๋ค. ์ฒญํฌ๋ ํํฐ์
์ด๊ณ , ์ ๊ฐ ์ฐฉ๊ฐํ์ง ์๋๋ค๋ฉด ์ด๊ฒ์ ํ์ ํ
์ด๋ธ์
๋๋ค. ์ ๋ง ํจ๊ณผ์ ์
๋๋ค.
TimescaleDB ๋ฐ PostgreSQL
TimescaleDB ์ ์กฐ์ ์ฒด๋ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ, ํนํ ์ฝ์ ์ ๋ํด ๋ณด๋ค ์ ํํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ฏ๋ก ๋ฐ์ดํฐ ์ธํธ ์ฝ์ ํฌ๊ธฐ๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ๊ฑฐ์ ์ผ์ ํ ์ฑ๋ฅ์ ์ ์งํ ์ ์๋ค๊ณ ํ์ ํฉ๋๋ค. ์ฆ, 200์ต ํ์ Postgres ์ดํ์๋ ์ผ๋ฐ์ ์ธ Postgres๊ฐ ๋งค์ฐ ๋ง์ด ์ฒ์ง๊ธฐ ์์ํ๊ณ ๋ฌธ์ ๊ทธ๋๋ก ์ฑ๋ฅ์ด XNUMX์ผ๋ก ๋จ์ด์ง๋ ๋ฐ๋ฉด Timescale์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ์์ ๋ฐ์ดํฐ์ ๋ํด ์ต๋ํ ํจ์จ์ ์ผ๋ก ์ฝ์ ์ ์ฝ์ ํ ์ ์์ต๋๋ค.
TimescaleDB๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ๊ฐ๋จ ํด!
๋ฌธ์์ ์ค๋ช ๋์ด ์์ต๋๋ค. ์ด๋ค ํจํค์ง์์๋ ์ค์นํ ์ ์์ต๋๋ค... ๊ณต์ Postgres ํจํค์ง์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์๋์ผ๋ก ์ปดํ์ผํ ์ ์์ต๋๋ค. ๊ทธ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ฉ์ผ๋ก ์ปดํ์ผํด์ผ ํ์ต๋๋ค.
Zabbix์์๋ Extension์ ํ์ฑํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. Postgres์์ Extention์ ์ฌ์ฉํ์ ๋ถ๋ค์... Extention์ ํ์ฑํํ๊ณ ์ฌ์ฉ ์ค์ธ Zabbix ๋ฐ์ดํฐ๋ฒ ์ด์ค์ฉ์ผ๋ก ์์ฑํ๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง ๋จ๊ณ..
TimescaleDB. ๊ธฐ๋ก ํ ์ด๋ธ ๋ง์ด๊ทธ๋ ์ด์
ํ์ดํผํ ์ด๋ธ์ ์์ฑํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํ ํน๋ณํ ๊ธฐ๋ฅ์ธ ํ์ดํผํ ์ด๋ธ ์์ฑ์ด ์์ต๋๋ค. ์ฌ๊ธฐ์์ ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ์ํ ํ ์ด๋ธ์ ๋๋ค(ํ์ดํผํ ์ด๋ธ์ ์์ฑํด์ผ ํจ).
์์ฑํ ํ๋์ Chunk_time_interval(์ฒญํฌ(์ฌ์ฉํด์ผ ํ๋ ํํฐ์
)์ ๊ฐ๊ฒฉ์
๋๋ค. 86์ 400์ผ์
๋๋ค.
Migrate_data ๋งค๊ฐ๋ณ์: true๋ก ์ฝ์ ํ๋ฉด ๋ชจ๋ ํ์ฌ ๋ฐ์ดํฐ๊ฐ ์ฌ์ ์์ฑ๋ ์ฒญํฌ๋ก ๋ง์ด๊ทธ๋ ์ด์ ๋ฉ๋๋ค.
๋๋ migration_data๋ฅผ ์ง์ ์ฌ์ฉํ์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ํฌ๊ธฐ์ ๋ฐ๋ผ ์๋นํ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค. ํ ๋ผ๋ฐ์ดํธ๊ฐ ๋๋ ์ฉ๋์ด ์์๋๋ฐ ์์ฑํ๋ ๋ฐ XNUMX์๊ฐ ์ด์์ด ๊ฑธ๋ ธ์ต๋๋ค. ์ด๋ค ๊ฒฝ์ฐ์๋ ํ ์คํธ ์ค์ ํ ์คํธ(history_text) ๋ฐ ๋ฌธ์์ด(history_str)์ ๋ํ ๊ธฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ์ฌ ์ ์กํ์ง ์๋๋ก ํ์ต๋๋ค. ์ค์ ๋ก๋ ํฅ๋ฏธ๋กญ์ง ์์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ db_extention์์ ๋ง์ง๋ง ์ ๋ฐ์ดํธ๋ฅผ ์ํํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํนํ Zabbix๊ฐ db_extention์ด ์์์ ์ดํดํ ์ ์๋๋ก timescaledb๋ฅผ ์ค์นํฉ๋๋ค. ๊ทธ๋ ์ด๋ฅผ ํ์ฑํํ๊ณ TimescaleDB์ ํ์ํ "๊ธฐ๋ฅ"์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ฌ๋ฐ๋ฅธ ๊ตฌ๋ฌธ๊ณผ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์๋ฒ ๊ตฌ์ฑ
์ ๋ ๋ ๋์ ์๋ฒ๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์๋ฒ๋ 20๊ฐ์ ํ๋ก์ธ์, 16GB์ RAM์ ๊ฐ์ถ ๋งค์ฐ ์์ ๊ฐ์ ๋จธ์ ์ ๋๋ค. Postgres 10.8์ ๊ตฌ์ฑํ์ต๋๋ค.
์ด์ ์ฒด์ ๋ Debian์ด๊ณ ํ์ผ ์์คํ
์ xfs์
๋๋ค. Zabbix ์์ฒด์์ ์ฌ์ฉํ ์ค์ ์ ์ ์ธํ๊ณ ์ด ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ์ต์ํ์ ์ค์ ์ ์ง์ ํ์ต๋๋ค. ๋์ผํ ์์คํ
์๋ Zabbix ์๋ฒ, PostgreSQL ๋ฐ ๋ก๋ ์์ด์ ํธ๊ฐ ์์์ต๋๋ค.
์ ๋ ๋ค์ํ ๊ฒฐ๊ณผ๋ฅผ ๋น ๋ฅด๊ฒ ์์ฑํ๊ธฐ ์ํด LoadableModule์ ์ฌ์ฉํ๋ 50๊ฐ์ ํ์ฑ ์์ด์ ํธ๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ๊ทธ๋ค์ ๋ฌธ์์ด, ์ซ์ ๋ฑ์ ์์ฑํ ์ฌ๋๋ค์
๋๋ค. ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง์ ๋ฐ์ดํฐ๋ก ์ฑ์ ๋ค. ์ฒ์์๋ ๊ตฌ์ฑ์ ํธ์คํธ๋น 5๊ฐ์ ๋ฐ์ดํฐ ์์๊ฐ ํฌํจ๋์ด ์์๊ณ ๋๋ต ๊ฐ ๋ฐ์ดํฐ ์์์๋ ํธ๋ฆฌ๊ฑฐ๊ฐ ํฌํจ๋์ด ์์์ต๋๋ค. ์ด๋ฅผ ์ํด์๋ ์ค์ ์ค์ ์ด ํ์ํ์ต๋๋ค. ๋๋ก๋ ์ฌ์ฉํ ํธ๋ฆฌ๊ฑฐ๊ฐ ๋ ๊ฐ ์ด์ ํ์ํ ์๋ ์์ต๋๋ค.
50๊ฐ์ ์์ด์ ํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ(๋ ์ถ๊ฐ)๋ฟ๋ง ์๋๋ผ ๋์ ๋ฐ์ดํฐ ์์๋ฅผ ์ฌ์ฉํ๊ณ ์
๋ฐ์ดํธ ๊ฐ๊ฒฉ์ 4์ด๋ก ์ค์ฌ ์
๋ฐ์ดํธ ๊ฐ๊ฒฉ๊ณผ ๋ก๋ ์์ฒด๋ฅผ ์กฐ์ ํ์ต๋๋ค.
์ฑ๋ฅ ๊ฒ์ฌ. PostgreSQL: 36 NVP
์ ๊ฐ ์ฒ์์ผ๋ก ์คํํ ์ฒซ ๋ฒ์งธ ์ค์ ์ ์ด ํ๋์จ์ด์ ์์ PostreSQL 10(์ด๋น 35๊ฐ ๊ฐ)์ด์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ๋ฉด์์ ๋ณผ ์ ์๋ฏ์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ ๋ฐ๋ ๋ช ์ด๋ ๊ฑธ๋ฆฌ์ง ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ํ๋ฅญํ๊ณ ๋น ๋ฆ ๋๋ค. SSD ๋๋ผ์ด๋ธ(200GB). ์ ์ผํ ๊ฒ์ 20GB๊ฐ ๋งค์ฐ ๋นจ๋ฆฌ ์ฑ์์ง๋ค๋ ๊ฒ์ ๋๋ค.
์์ผ๋ก๋ ์ด๋ฐ ๊ทธ๋ํ๊ฐ ๊ฝค ๋ง์ด ๋์ฌ ๊ฒ๋๋ค. ์ด๊ฒ์ ํ์ค Zabbix ์๋ฒ ์ฑ๋ฅ ๋์๋ณด๋์
๋๋ค.
์ฒซ ๋ฒ์งธ ๊ทธ๋ํ๋ ์ด๋น ๊ฐ ์(ํ๋์, ์ผ์ชฝ ์๋จ)์ด๋ฉฐ, ์ด ๊ฒฝ์ฐ 35๊ฐ ๊ฐ์
๋๋ค. ์ด(์๋จ ์ค์)๋ ๋น๋ ํ๋ก์ธ์ค๋ฅผ ๋ก๋ํ๋ ๊ฒ์ด๊ณ , ์ด(์ค๋ฅธ์ชฝ ์๋จ)๋ ๋ด๋ถ ํ๋ก์ธ์ค๋ฅผ ๋ก๋ํ๋ ๊ฒ์
๋๋ค. ์ฌ๊ธฐ(ํ๋จ ์ค์)๋ ๊ฝค ์ค๋ซ๋์ ์คํ๋์ด ์จ ํ์คํ ๋ฆฌ ๋๊ธฐํ ์ฅ์น ๋ฐ ํ์ฐ์คํคํผ์
๋๋ค.
์ด ๊ทธ๋ํ(ํ๋จ ์ค์)๋ ValueCache ์ฌ์ฉ๋, ์ฆ ํธ๋ฆฌ๊ฑฐ์ ๋ํ ValueCache ์ ์ค ํ์(์ด๋น ์์ฒ ๊ฐ์ ๊ฐ)๋ฅผ ๋ณด์ฌ์ค๋๋ค. ๋ ๋ค๋ฅธ ์ค์ํ ๊ทธ๋ํ๋ ๋ค ๋ฒ์งธ ๊ทธ๋ํ(์ผ์ชฝ ์๋)๋ก ์์ ์ด์ผ๊ธฐํ HistoryCache์ ์ฌ์ฉ์ ๋ณด์ฌ์ฃผ๋๋ฐ, ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฝ์ ํ๊ธฐ ์ ์ ๋ฒํผ์ ๋๋ค.
์ฑ๋ฅ ๊ฒ์ฌ. PostgreSQL: 50 NVP
๋ค์์ผ๋ก ๋์ผํ ํ๋์จ์ด์์ ๋ก๋๋ฅผ ์ด๋น 50๋ง ๊ฐ์ผ๋ก ๋๋ ธ์ต๋๋ค. Housekeeper์์ ๋ก๋ํ๋ฉด ๊ณ์ฐ๊ณผ ํจ๊ป 10~2์ด ๋ง์ 3๊ฐ์ ๊ฐ์ด ๊ธฐ๋ก๋์์ต๋๋ค. ์ค์ ๋ก ๋ค์ ์คํฌ๋ฆฐ์ท์ ํ์๋ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
'ํ์ฐ์คํคํผ'๋ ์ด๋ฏธ ์์
์ ๋ฐฉํด๊ฐ ๋๊ธฐ ์์ํ์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ํ์คํ ๋ฆฌ ์ฑ์ปค ํธ๋ํผ์ ๋ถํ๋ ์ฌ์ ํ 60% ์์ค์
๋๋ค(์ธ ๋ฒ์งธ ๊ทธ๋ํ, ์ค๋ฅธ์ชฝ ์๋จ). Housekeeper๊ฐ ์คํ๋๋ ๋์ HistoryCache๊ฐ ์ด๋ฏธ ํ๋ฐํ๊ฒ ์ฑ์์ง๊ธฐ ์์ํ์ต๋๋ค(์ผ์ชฝ ์๋). ์ฝ 20GB, XNUMX% ์ ๋ ์ฐผ์ต๋๋ค.
์ฑ๋ฅ ๊ฒ์ฌ. PostgreSQL: 80 NVP
๊ทธ๋ฐ ๋ค์ ์ด๋น 80๋ง ๊ฐ์ผ๋ก ๋๋ ธ์ต๋๋ค.
๋๋ต 400๋ง ๊ฐ์ ๋ฐ์ดํฐ ์์, 280๋ง ๊ฐ์ ํธ๋ฆฌ๊ฑฐ์์ต๋๋ค. ๋ณด์๋ค์ํผ, ํ์คํ ๋ฆฌ ์ฑ์ปค(30๊ฐ๊ฐ ์์)์ ๋ก๋ ์ธก๋ฉด์์ ์ฝ์
์ ์ด๋ฏธ ์๋นํ ๋์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ค์ํ ๋งค๊ฐ๋ณ์๋ฅผ ๋๋ ธ์ต๋๋ค: ํ์คํ ๋ฆฌ ์ฑ์ปค, ์บ์... ์ด ํ๋์จ์ด์์ ํ์คํ ๋ฆฌ ์ฑ์ปค์ ๋ก๋๋ ๊ฑฐ์ "์ ๋ฐ์์" ์ต๋์น๋ก ์ฆ๊ฐํ๊ธฐ ์์ํ์ต๋๋ค. ๋ฐ๋ผ์ HistoryCache์ ๋ก๋๋ ๋งค์ฐ ๋์์ก์ต๋๋ค.
์ด๋ฒ์๋ ๋ชจ๋ ์์คํ
๋งค๊ฐ๋ณ์(ํ๋ก์ธ์ ์ฌ์ฉ ๋ฐฉ์, RAM)๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ๋์คํฌ ํ์ฉ๋๊ฐ ์ต๋์์ ํ์ธํ์ต๋๋ค. ์ด ํ๋์จ์ด, ์ด ๊ฐ์ ๋จธ์ ์์ ์ด ๋์คํฌ์ ์ต๋ ์ฉ๋์ ๋ฌ์ฑํ์ต๋๋ค. "Postgres"๋ ์ด๋ฌํ ๊ฐ๋๋ก ๋งค์ฐ ์ ๊ทน์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋คํํ๊ธฐ ์์ํ์ผ๋ฉฐ ๋์คํฌ์๋ ๋ ์ด์ ์ฐ๊ณ ์ฝ์ ์๊ฐ์ด ์์์ต๋๋ค.
์ ๋ ์ด๋ฏธ 48๊ฐ์ ํ๋ก์ธ์์ 128GB์ RAM์ ๊ฐ์ถ ๋ค๋ฅธ ์๋ฒ๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
๋๋ ๋ํ ๊ทธ๊ฒ์ "์กฐ์ "ํ์ต๋๋ค. History syncer(60๊ฐ)๋ฅผ ์ค์นํ๊ณ ํ์ฉ ๊ฐ๋ฅํ ์ฑ๋ฅ์ ๋ฌ์ฑํ์ต๋๋ค. ์ฌ์ค, ์ฐ๋ฆฌ๋ "์ ๋ฐ"์ ์์ง๋ ์์ง๋ง ์๋ง๋ ์์ฐ์ฑ์ ํ๊ณ์ผ ๊ฒ์ด๋ฉฐ ์ด์ ๋ํด ์ด๋ฏธ ์กฐ์น๋ฅผ ์ทจํด์ผ ํ ๊ฒ์
๋๋ค.
์ฑ๋ฅ ๊ฒ์ฌ. TimescaleDB: 80NVP
๋์ ์ฃผ์ ์ ๋ฌด๋ TimescaleDB๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด์์ต๋๋ค. ๊ฐ ๊ทธ๋ํ๋ ํ๋ฝ์ ๋ณด์ฌ์ค๋๋ค.
์ด๋ฌํ ์คํจ๋ ๋ฐ๋ก ๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์
์
๋๋ค. ๊ทธ ํ Zabbix ์๋ฒ์์๋ ๋ณด์๋ค์ํผ ํ์คํ ๋ฆฌ ์ฑ์ปค์ ๋ก๋ฉ ํ๋กํ์ด ๋ง์ด ๋ณ๊ฒฝ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ฑฐ์ 3๋ฐฐ ๋ ๋น ๋ฅด๊ฒ ์ฝ์
ํ๊ณ HistoryCache๋ฅผ ๋ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์๊ฐ์ ์ ๋ฌ๋ฉ๋๋ค. ๋ค์ ๋งํ์ง๋ง, ์ด๋น 80๊ฐ์ ๊ฐ์ ์๋นํ ๋์ ๋น์จ์
๋๋ค(๋ฌผ๋ก Yandex์ ๊ฒฝ์ฐ๋ ์๋). ์ ๋ฐ์ ์ผ๋ก ์ด๊ฒ์ ํ๋์ ์๋ฒ๋ฅผ ๊ฐ์ถ ์๋นํ ํฐ ์ค์ ์
๋๋ค.
PostgreSQL ์ฑ๋ฅ ํ ์คํธ: 120๋ง NVP
๋ค์์ผ๋ก ๋ฐ์ดํฐ ์์ ์์ ๊ฐ์ 125๋ง๊ฐ๋ก ๋๋ ธ๊ณ ์ด๋น XNUMX๊ฐ์ ๊ณ์ฐ๋ ๊ฐ์ ๋ฐ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋๋ ๋ค์๊ณผ ๊ฐ์ ๊ทธ๋ํ๋ฅผ ์ป์์ต๋๋ค.
์์น์ ์ผ๋ก ์ด๊ฒ์ ์์
์ค์ ์ด๋ฏ๋ก ๊ฝค ์ค๋ซ๋์ ์๋ํ ์ ์์ต๋๋ค. ํ์ง๋ง ๋ด๊ฒ 1,5ํ
๋ผ๋ฐ์ดํธ์ ๋์คํฌ๋ฐ์ ์์๊ธฐ ๋๋ฌธ์ ๋ฉฐ์น ๋ง์ ๋ค ์จ๋ฒ๋ ธ์ต๋๋ค. ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋์์ TimescaleDB์ ์๋ก์ด ํํฐ์
์ด ์์ฑ๋์๋๋ฐ ์ด๋ MySQL์ ๋ํด์๋ ๋งํ ์ ์๋ ์ฑ๋ฅ ์ธก๋ฉด์์ ์ ํ ๋์ ๋์ง ์์๋ค๋ ๊ฒ์
๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ํํฐ์ ์ ๋ฐค์ ์์ฑ๋ฉ๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ์ฝ์ ๋ฐ ํ ์ด๋ธ ์์ ์ ์ฐจ๋จํ๊ณ ์๋น์ค ์ฑ๋ฅ ์ ํ๋ฅผ ์ด๋ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๊ฒฝ์ฐ์๋ ๊ทธ๋ ์ง ์์ต๋๋ค! ์ฃผ์ ์์ ์ TimescaleDB์ ๊ธฐ๋ฅ์ ํ ์คํธํ๋ ๊ฒ์ด์์ต๋๋ค. ๊ฒฐ๊ณผ๋ ์ด๋น 120๊ฐ์ ๊ฐ์ด์์ต๋๋ค.
์ปค๋ฎค๋ํฐ์๋ ๋ค์๊ณผ ๊ฐ์ ์๋ ์์ต๋๋ค.
๊ทธ ์ฌ๋์ ๋ํ TimescaleDB๋ฅผ ์ผฐ๊ณ io.weight ์ฌ์ฉ์ ๋ํ ๋ถํ๊ฐ ํ๋ก์ธ์์ ๋จ์ด์ก์ต๋๋ค. TimescaleDB๋ฅผ ํฌํจํจ์ผ๋ก์จ ๋ด๋ถ ํ๋ก์ธ์ค ์์์ ์ฌ์ฉ๋ ๊ฐ์ํ์ต๋๋ค. ๋ํ ์ด๋ ์ผ๋ฐ ํฌ์ผ์ดํฌ ๋์คํฌ, ์ฆ SSD๊ฐ ์๋ ์ผ๋ฐ ๋์คํฌ์ ์ผ๋ฐ ๊ฐ์ ๋จธ์ ์
๋๋ค!
๋์คํฌ ์ฑ๋ฅ์ผ๋ก ์ธํด ์ ํ๋๋ ์ผ๋ถ ์๊ท๋ชจ ์ค์ ์ ๊ฒฝ์ฐ TimescaleDB๊ฐ ๋งค์ฐ ์ข์ ์๋ฃจ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ํด ๋ ๋น ๋ฅธ ํ๋์จ์ด๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ ์ ์ ๊ณ์ ์์ ํ ์ ์์ต๋๋ค.
๋ชจ์คํฌ๋ฐ ํ์, ๋ฆฌ๊ฐ ์ ์ํ๋ด ๋ฑ์ ํ์ฌ์ ์ฌ๋ฌ๋ถ ๋ชจ๋๋ฅผ ์ด๋ํฉ๋๋ค. Telegram, ํฌ๋ผ, IRC ๋ฑ์ ์ฑ๋์ ์ฌ์ฉํ์ธ์. ์ง๋ฌธ์ด ์์ผ์๋ฉด ์ ํฌ ๋ฐ์คํฌ๋ก ์ค์ธ์. ๋ชจ๋ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํด ๋๋ฆด ์ ์์ต๋๋ค.
์ฒญ์ค ์ง๋ฌธ
์ฒญ์ค์ ์ง๋ฌธ(์ดํ A): - TimescaleDB๊ฐ ๊ตฌ์ฑํ๊ธฐ ์ฝ๊ณ ์ฑ๋ฅ์ด ํฌ๊ฒ ํฅ์๋๋ค๋ฉด Postgres๋ก Zabbix๋ฅผ ๊ตฌ์ฑํ๋ ๋ชจ๋ฒ ์ฌ๋ก๋ก ์ด๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๊น? ๊ทธ๋ฆฌ๊ณ ์ด ์๋ฃจ์ ์๋ ํจ์ ๊ณผ ๋จ์ ์ด ์์ต๋๊น? ์๋๋ฉด ๊ฒฐ๊ตญ ์ ๊ฐ Zabbix๋ฅผ ์ง์ ๋ง๋ค๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๋ฉด ์ฝ๊ฒ Postgres๋ฅผ ์ฌ์ฉํ์ฌ ๊ฑฐ๊ธฐ์ Timescale์ ์ค์นํ๊ณ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์ด๋ค ๋ฌธ์ ๋ ์๊ฐํ์ง ์์ ์ ์์ต๋๊น?
AG: โ ์, ์ด๊ฒ์ด ์ข์ ๊ถ์ฅ ์ฌํญ์ด๋ผ๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค. Postgres๋ฅผ TimescaleDB ํ์ฅ๊ณผ ํจ๊ป ์ฆ์ ์ฌ์ฉํ์ญ์์ค. ์ด๋ฏธ ๋งํ๋ฏ์ด ์ด "๊ธฐ๋ฅ"์ด ์คํ์ ์ด๋ผ๋ ์ฌ์ค์๋ ๋ถ๊ตฌํ๊ณ ๋ง์ ์ข์ ๋ฆฌ๋ทฐ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ค์ ๋ก ํ
์คํธ๋ฅผ ํตํด ์ด๊ฒ์ด ํ๋ฅญํ ์๋ฃจ์
(TimescaleDB ํฌํจ)์ด๋ผ๋ ๊ฒ์ด ๋ํ๋ฌ์ผ๋ฉฐ ์์ผ๋ก ๋ฐ์ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค! ์ฐ๋ฆฌ๋ ์ด ํ์ฅ ํ๋ก๊ทธ๋จ์ด ์ด๋ป๊ฒ ๊ฐ๋ฐ๋๊ณ ํ์์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋ ๊ฒ์ธ์ง ๋ชจ๋ํฐ๋งํ๊ณ ์์ต๋๋ค.
๊ฐ๋ฐ ์ค์๋ ์ฐ๋ฆฌ๋ ์ ์๋ ค์ง "๊ธฐ๋ฅ" ์ค ํ๋์ ์์กดํ์ต๋๋ค. ์ฆ, ์ฒญํฌ๋ฅผ ์กฐ๊ธ ๋ค๋ฅด๊ฒ ์์ ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ์ต๋๋ค. ํ์ง๋ง ๋ค์ ๋ฆด๋ฆฌ์ค์์๋ ์ด ์ฝ๋๋ฅผ ์ญ์ ํ๊ณ ์ฐ๋ฆฌ๋ ์ด ์ฝ๋์ ๋ ์ด์ ์์กดํ์ง ์๊ฒ ๋์์ต๋๋ค. ๋ค์ํ ์ค์ ์์ ์ด ์๋ฃจ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. MySQL์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ... ํ๊ท ์ค์ ์ ๊ฒฝ์ฐ ๋ชจ๋ ์๋ฃจ์ ์ด ์ ์๋ํฉ๋๋ค.
A : โ ์ปค๋ฎค๋ํฐ์ ๋ง์ง๋ง ๊ทธ๋ํ์๋ "Housekeeper"๋ผ๋ ๊ทธ๋ํ๊ฐ ์์์ต๋๋ค.
๊ทธ๋ ๊ณ์ ์ผํ์ต๋๋ค. Housekeeper๋ TimescaleDB๋ก ๋ฌด์์ ํฉ๋๊น?
AG: โ ์ง๊ธ์ ํ์คํ ๋ง์๋๋ฆด ์ ์์ต๋๋ค. โ ์ฝ๋๋ฅผ ๋ณด๊ณ ์ข ๋ ์์ธํ ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ฒญํฌ๋ฅผ ์ญ์ ํ๋ ๊ฒ์ด ์๋๋ผ ์ด๋ป๊ฒ๋ ์ง๊ณํ๊ธฐ ์ํด TimescaleDB ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์์ง ์ด ๊ธฐ์ ์ ์ธ ์ง๋ฌธ์ ๋ต๋ณํ ์ค๋น๊ฐ ๋์ง ์์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ค๋์ด๋ ๋ด์ผ ์คํ ๋์์ ์์๋ณด๊ฒ ์ต๋๋ค.
A : โ Timescale์ ์ญ์ ์์
์ฑ๋ฅ์ ๋ํด ๋น์ทํ ์ง๋ฌธ์ด ์์ต๋๋ค.
A(์ฒญ์ค์ ๋ต๋ณ): โ ํ
์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ ๋ ์ญ์ ๋ฅผ ํตํด ์ํํ๋ ๊ฒฝ์ฐ ํ
์ด๋ธ์ ํต๊ณผํด์ผ ํฉ๋๋ค. ์ญ์ , ์ ๋ฆฌ, ํฅํ ์ง๊ณต์ ์ํด ๋ชจ๋ ๊ฒ์ ํ์ํฉ๋๋ค. Timescale์์๋ ์ฒญํฌ๊ฐ ์์ผ๋ฏ๋ก ์ญ์ ํ ์ ์์ต๋๋ค. ๋๋ต์ ์ผ๋ก ๋งํ๋ฉด, ๋น
๋ฐ์ดํฐ์ ์๋ ํ์ผ์ "์ญ์ !"๋ผ๊ณ ๋งํ๋ฉด ๋ฉ๋๋ค.
Timescale์ ๊ทธ๋ฌํ ๋ฉ์ด๋ฆฌ๊ฐ ๋ ์ด์ ์กด์ฌํ์ง ์๋๋ค๋ ๊ฒ์ ๋จ์ํ ์ดํดํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฟผ๋ฆฌ ํ๋๋์ ํตํฉ๋์ด ์๊ธฐ ๋๋ฌธ์ ํํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ ๋๋ ๊ธฐํ ์์ ์์ ์กฐ๊ฑด์ ํ์ ํ๊ณ ์ด ์ฒญํฌ๊ฐ ๋ ์ด์ ์กด์ฌํ์ง ์๋๋ค๋ ๊ฒ์ ์ฆ์ ์ดํดํฉ๋๋ค. "๋ ์ด์ ๊ฑฐ๊ธฐ์ ๊ฐ์ง ์๊ฒ ์ต๋๋ค!" (๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์ ์์). ๊ทธ๊ฒ ๋ค์ผ! ์ฆ, ํ ์ด๋ธ ์ค์บ์ ๋ฐ์ด๋๋ฆฌ ํ์ผ ์ญ์ ๋ก ๋์ฒดํ๋ฏ๋ก ์๋๊ฐ ๋น ๋ฆ ๋๋ค.
A : โ ์ฐ๋ฆฌ๋ ์ด๋ฏธ ๋นSQL ์ฃผ์ ๋ฅผ ๋ค๋ฃจ์์ต๋๋ค. ๋ด๊ฐ ์๋ ํ Zabbix๋ ์ค์ ๋ก ๋ฐ์ดํฐ๋ฅผ ์์ ํ ํ์๊ฐ ์์ผ๋ฉฐ ์ด ๋ชจ๋ ๊ฒ์ ๋ก๊ทธ์ ๊ฐ์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์์ง๋ง ๋์์ ํจ์ฌ ๋น ๋ฅด๊ฒ ์ ์ฅ, ์ถ์ ๋ฐ ๋ฐฐํฌํ ์ ์๋ ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น? ์๋ฅผ ๋ค์ด Kafka์ ๊ฐ์ Clickhouse?.. Kafka๋ ๋ก๊ทธ์ ๋๋ค! ์ด๋ป๊ฒ๋ ํตํฉํ ์ ์๋์?
AG: - ์ธ๋ก๋๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ๋ฒ์ 3.4๋ถํฐ ํน์ "๊ธฐ๋ฅ"์ด ์์ต๋๋ค. ๋ชจ๋ ๊ธฐ๋ก ํ์ผ, ์ด๋ฒคํธ, ๊ธฐํ ๋ชจ๋ ๊ฒ์ ํ์ผ์ ์ธ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ผ๋ถ ํธ๋ค๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๋ณด๋ ๋๋ค. ์ค์ ๋ก ๋ง์ ์ฌ๋๋ค์ด ์ฌ์์ ์ ํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ง์ ๊ธฐ๋กํฉ๋๋ค. ์ฆ์ ํ์คํ ๋ฆฌ ์ฑ์ปค๋ ์ด ๋ชจ๋ ๊ฒ์ ํ์ผ์ ๊ธฐ๋กํ๊ณ , ์ด๋ฌํ ํ์ผ์ ํ์ ์ํค๋ ๋ฑ์ ์์ ์ ์ํํ๋ฉฐ ์ด๋ฅผ ํด๋ฆญํ์ฐ์ค๋ก ์ ์กํ ์ ์์ต๋๋ค. ๊ณํ์ ๋ํด์๋ ๋งํ ์ ์์ง๋ง NoSQL ์๋ฃจ์ (์: Clickhouse)์ ๋ํ ์ถ๊ฐ ์ง์์ ๊ณ์๋ ๊ฒ์ ๋๋ค.
A : โ ์ผ๋ฐ์ ์ผ๋ก Postgres๋ฅผ ์์ ํ ์ ๊ฑฐํ ์ ์๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค.
AG: โ ๋ฌผ๋ก , Zabbix์์ ๊ฐ์ฅ ์ด๋ ค์ด ๋ถ๋ถ์ ๊ฐ์ฅ ๋ง์ ๋ฌธ์ ์ ์ฌ๊ฑด์ ๋ง๋ค์ด๋ด๋ ๊ธฐ๋ก ํ ์ด๋ธ์ ๋๋ค. ์ด ๊ฒฝ์ฐ ์ด๋ฒคํธ๋ฅผ ์ฅ๊ธฐ๊ฐ ์ ์ฅํ์ง ์๊ณ ๋ค๋ฅธ ๋น ๋ฅธ ์คํ ๋ฆฌ์ง์ ํธ๋ ๋์ ํจ๊ป ํ์คํ ๋ฆฌ๋ฅผ ์ ์ฅํ๋ฉด ์ผ๋ฐ์ ์ผ๋ก ๋ฌธ์ ๊ฐ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
A : โ ์๋ฅผ ๋ค์ด Clickhouse๋ก ์ ํํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ผ๋ง๋ ๋ ๋นจ๋ฆฌ ์๋ํ ์ง ์์ธกํ ์ ์์ต๋๊น?
AG: โ ํ ์คํธํด๋ณธ ์ ์ ์์ต๋๋ค. Clickhouse์ ์์ฒด ์ธํฐํ์ด์ค๊ฐ ์๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด ์ต์ํ ๋์ผํ ์์น๋ฅผ ๋งค์ฐ ๊ฐ๋จํ๊ฒ ๋ฌ์ฑํ ์ ์๋ค๊ณ ์๊ฐํ์ง๋ง ํ์คํ๊ฒ ๋งํ ์๋ ์์ต๋๋ค. ํ ์คํธํด ๋ณด๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๊ฒ์ ๋ชจ๋ ๊ตฌ์ฑ, ์ฆ ๋ณด์ ํ๊ณ ์๋ ํธ์คํธ ์ ๋ฑ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ฝ์ ๋ ์ค์ํ์ง๋ง ์ด ๋ฐ์ดํฐ(Grafana ๋ฑ)๋ฅผ ๊ฒ์ํด์ผ ํฉ๋๋ค.
A : โ ๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ๋ ๋๋ฑํ ์ธ์์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์๋ ๊ฒ์ด์ง ์ด๋ฌํ ๋น ๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํฐ ์ด์ ์ ๋ํด์๋ ์ด์ผ๊ธฐํ๊ณ ์์ง ์์ต๋๊น?
AG: - ํตํฉํ๋ฉด ์ข ๋ ์ ํํ ํ ์คํธ๊ฐ ๋์ฌ ๊ฒ ๊ฐ์์.
A : โ ์๋ RRD๋ ์ด๋๋ก ๊ฐ๋์? SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ ํํ๊ฒ ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ฒ์์๋ ๋ชจ๋ ์งํ๊ฐ RRD์์ ์์ง๋์์ต๋๋ค.
AG: โ Zabbix์๋ ์๋ง๋ ๋งค์ฐ ์ค๋๋ ๋ฒ์ ์ RRD๊ฐ ์์์ต๋๋ค. SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํญ์ ์กด์ฌํด ์์ผ๋ฉฐ ์ด๋ ๊ณ ์ ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค. ๊ณ ์ ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ MySQL, PostgreSQL์ ๋๋ค(๋งค์ฐ ์ค๋ซ๋์ ์กด์ฌํด ์์ต๋๋ค). ์ฐ๋ฆฌ๋ SQL ๋ฐ RRD ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ณตํต ์ธํฐํ์ด์ค๋ฅผ ๊ฑฐ์ ์ฌ์ฉํ์ง ์์์ต๋๋ค.
์ผ๋ถ ๊ด๊ณ ๐
์ฐ๋ฆฌ์ ํจ๊ป์์ด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ฐ๋ฆฌ ๊ธฐ์ฌ๊ฐ ๋ง์์ ๋์ญ๋๊น? ๋ ์ฌ๋ฏธ์๋ ์ฝํ
์ธ ๋ฅผ ๋ณด๊ณ ์ถ๋ค๋ฉด? ์ฃผ๋ฌธํ๊ฑฐ๋ ์น๊ตฌ์๊ฒ ์ถ์ฒํ์ฌ ์ฐ๋ฆฌ๋ฅผ ์ง์ํ์ญ์์ค.
Dell R730xd๋ ์์คํ
๋ฅด๋ด์ Equinix Tier IV ๋ฐ์ดํฐ ์ผํฐ์์ 2๋ฐฐ ๋ ์ ๋ ดํฉ๋๊น? ์ฌ๊ธฐ์ ๋ง
์ถ์ฒ : habr.com