Zabbix๋ ๋ชจ๋ํฐ๋ง ์์คํ ์ ๋๋ค. ๋ค๋ฅธ ์์คํ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ชจ๋ ๋ชจ๋ํฐ๋ง ์์คํ ์ ์ธ ๊ฐ์ง ์ฃผ์ ๋ฌธ์ , ์ฆ ๋ฐ์ดํฐ ์์ง ๋ฐ ์ฒ๋ฆฌ, ๊ธฐ๋ก ์ ์ฅ ๋ฐ ์ ๋ฆฌ์ ์ง๋ฉดํฉ๋๋ค.
๋ฐ์ดํฐ ์์ , ์ฒ๋ฆฌ, ๊ธฐ๋ก ๋จ๊ณ์๋ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค. ๋ง์ง๋ ์์ง๋ง ๋๊ท๋ชจ ์์คํ ์ ๊ฒฝ์ฐ ์ด๋ก ์ธํด ํฐ ์ง์ฐ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ ์ฅ ๋ฌธ์ ๋ ๋ฐ์ดํฐ ์ก์ธ์ค ๋ฌธ์ ์ ๋๋ค. ์ด๋ ๋ณด๊ณ ์, ํ์ธ ๋ฐ ํธ๋ฆฌ๊ฑฐ์ ์ฌ์ฉ๋ฉ๋๋ค. ๋ฐ์ดํฐ ์ก์ธ์ค ์ง์ฐ๋ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ปค์ง๋ฉด ๊ด๋ จ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํด์ผ ํฉ๋๋ค. ์ ๊ฑฐ๋ ์ผ๋ถ ๋ฆฌ์์ค๋ฅผ ์๋ชจํ๋ ์ด๋ ค์ด ์์ ์ ๋๋ค.
Zabbix์์ ์์ง ๋ฐ ์ ์ฅ ์ค ์ง์ฐ ๋ฌธ์ ๋ ์บ์ฑ(์ฌ๋ฌ ์ ํ์ ์บ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์บ์ฑ)์ ํตํด ํด๊ฒฐ๋ฉ๋๋ค. ์ธ ๋ฒ์งธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์บ์ฑ์ด ์ ํฉํ์ง ์์ Zabbix๋ TimescaleDB๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ๊ทธ ์ฌ๋์ด ๋น์ ์๊ฒ ๊ทธ๊ฒ์ ๋ํด ๋งํด ์ค ๊ฑฐ์์ ์๋๋ ์ด ๊ตฌ์ฌ์น - ๊ธฐ์ ์ง์ ์์ง๋์ด
TimescaleDB๋ ์ด๋ป๊ฒ ์๋ํ๋ฉฐ ์ผ๋ฐ PostgreSQL๊ณผ ๋น๊ตํ์ฌ ์ด๋ค ์ฑ๋ฅ์ ์ ๊ณตํ ์ ์์ต๋๊น? TimescaleDB ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ Zabbix๋ ์ด๋ค ์ญํ ์ ํฉ๋๊น? ์ฒ์๋ถํฐ ์์ํ๋ ๋ฐฉ๋ฒ๊ณผ PostgreSQL์์ ๋ง์ด๊ทธ๋ ์ด์
ํ๋ ๋ฐฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ ์ด๋ค ๊ตฌ์ฑ์ ์ฑ๋ฅ์ด ๋ ์ข์ต๋๊น? ์ด ๋ชจ๋ ๊ฒ์ ๋ํด ์ปท ์๋์ ์์ต๋๋ค.
์์ฐ์ฑ ๋ฌธ์
๋ชจ๋ ๋ชจ๋ํฐ๋ง ์์คํ ์ ํน์ ์ฑ๋ฅ ๋ฌธ์ ์ ์ง๋ฉดํด ์์ต๋๋ค. ๊ทธ ์ค ๋ฐ์ดํฐ ์์ง ๋ฐ ์ฒ๋ฆฌ, ์ ์ฅ, ์ด๋ ฅ ์ญ์ ์ธ ๊ฐ์ง์ ๋ํด ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋น ๋ฅธ ๋ฐ์ดํฐ ์์ง ๋ฐ ์ฒ๋ฆฌ. ์ข์ ๋ชจ๋ํฐ๋ง ์์คํ ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ๊ฒ ์์ ํ๊ณ ํด๋น ๊ธฐ์ค์ ๋ฐ๋ผ ํธ๋ฆฌ๊ฑฐ ํํ์ ๋ฐ๋ผ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ์ฒ๋ฆฌ ํ ์์คํ ์ ๋์ค์ ์ฌ์ฉํ ์ ์๋๋ก ์ด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ํ๊ฒ ์ ์ฅํด์ผ ํฉ๋๋ค.
์ญ์ฌ ์ ์ฅ. ์ข์ ๋ชจ๋ํฐ๋ง ์์คํ ์ ๊ธฐ๋ก์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ณ ์ธก์ ํญ๋ชฉ์ ์ฝ๊ฒ ์ก์ธ์คํ ์ ์๋๋ก ํด์ผ ํฉ๋๋ค. ๋ณด๊ณ ์, ๊ทธ๋ํ, ํธ๋ฆฌ๊ฑฐ, ์๊ณ๊ฐ ๋ฐ ๊ณ์ฐ๋ ๊ฒฝ๊ณ ๋ฐ์ดํฐ ํญ๋ชฉ์ ์ฌ์ฉํ๋ ค๋ฉด ๊ธฐ๋ก์ด ํ์ํฉ๋๋ค.
๊ธฐ๋ก์ ์ญ์ ํฉ๋๋ค. ๋๋ก๋ ์ธก์ ํญ๋ชฉ์ ์ ์ฅํ ํ์๊ฐ ์๋ ๋ ์ด ์ต๋๋ค. 5๋ , ํ๋ ๋ฌ ์ ์ ์์ง๋ ๋ฐ์ดํฐ๊ฐ ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ผ๋ถ ๋ ธ๋๋ ์ญ์ ๋์์ผ๋ฉฐ, ์ผ๋ถ ํธ์คํธ ๋๋ ๋ฉํธ๋ฆญ์ ์ค๋๋์ด ๋ ์ด์ ์์ง๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ ์ด์ ํ์ํ์ง ์์ต๋๋ค. ์ข์ ๋ชจ๋ํฐ๋ง ์์คํ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ปค์ง์ง ์๋๋ก ๊ธฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์์๋ก ์ญ์ ํด์ผ ํฉ๋๋ค.
์ค๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฆฌํ๋ ๊ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ฏธ์น๋ ์ค์ํ ๋ฌธ์ ์ ๋๋ค.
Zabbix์ ์บ์ฑ
Zabbix์์๋ ์ฒซ ๋ฒ์งธ์ ๋ ๋ฒ์งธ ํธ์ถ์ด ์บ์ฑ์ ์ฌ์ฉํ์ฌ ํด๊ฒฐ๋ฉ๋๋ค. RAM์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ์ฒ๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ ์ฅ์ฉ - ํธ๋ฆฌ๊ฑฐ, ๊ทธ๋ํ ๋ฐ ๊ณ์ฐ๋ ๋ฐ์ดํฐ ์์์ ๊ธฐ๋ก์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธก์๋ ๊ทธ๋ํ์ ๊ฐ์ ๊ธฐ๋ณธ ์ ํ ํญ๋ชฉ์ ๋ํ ์ผ๋ถ ์บ์ฑ์ด ์์ต๋๋ค.
Zabbix ์๋ฒ ์์ฒด ์ธก์ ์บ์ฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๊ตฌ์ฑ์บ์;
- ๊ฐ์น์บ์;
- ํ์คํ ๋ฆฌ ์บ์;
- ํธ๋ ๋์บ์.
๊ทธ๋ค์ ๋ ์์ธํ ๊ณ ๋ คํ์ญ์์ค.
๊ตฌ์ฑ์บ์
์ด๋ ๋ฉํธ๋ฆญ, ํธ์คํธ, ๋ฐ์ดํฐ ํญ๋ชฉ, ํธ๋ฆฌ๊ฑฐ(์ ์ฒ๋ฆฌ ๋ฐ ๋ฐ์ดํฐ ์์ง์ ํ์ํ ๋ชจ๋ ๊ฒ)๋ฅผ ์ ์ฅํ๋ ๊ธฐ๋ณธ ์บ์์ ๋๋ค.
์ด ๋ชจ๋ ๊ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถํ์ํ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ์ง ์๋๋ก ConfigurationCache์ ์ ์ฅ๋ฉ๋๋ค. ์๋ฒ๊ฐ ์์๋ ํ ์ด ์บ์๋ฅผ ์
๋ฐ์ดํธํ๊ณ ๊ตฌ์ฑ์ ์์ฑํ๊ณ ์ฃผ๊ธฐ์ ์ผ๋ก ์
๋ฐ์ดํธํฉ๋๋ค.
๋ฐ์ดํฐ ์์ง
๋ค์ด์ด๊ทธ๋จ์ ๊ฝค ํฌ์ง๋ง ๊ทธ ์์ ์๋ ์ฃผ์ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์์ง๊ฐ. ์ด๋ ๋ค์ํ "ํด๋ฌ"(์กฐ๋ฆฝ ํ๋ก์ธ์ค)์ ๋๋ค. ์ด๋ค์ ๋ค์ํ ์ ํ์ ์ด์ ๋ธ๋ฆฌ๋ฅผ ๋ด๋นํฉ๋๋ค. SNMP, IPMI๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ์ด๋ฅผ ๋ชจ๋ PreProcessing์ผ๋ก ์ ์กํฉ๋๋ค.
์์ง๊ฐ๋ ์ฃผํฉ์์ผ๋ก ์ค๊ณฝ์ ์ด ํ์๋์ด ์์ต๋๋ค.
Zabbix๋ ์ํ ์ง๊ณ์ ํ์ํ ์ง๊ณ ํญ๋ชฉ์ ๊ณ์ฐํ์ต๋๋ค. ํด๋น ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ValueCache์์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
์ ์ฒ๋ฆฌ ๊ธฐ๋ก์บ์
๋ชจ๋ ์์ง๊ธฐ๋ ConfigurationCache๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ ์์ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๋ฅผ PreProcessing์ผ๋ก ์ฎ๊น๋๋ค.
์ ์ฒ๋ฆฌ๋ ConfigurationCache๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฒ๋ฆฌ ๋จ๊ณ๋ฅผ ์์ ํฉ๋๋ค. ์ด ๋ฐ์ดํฐ๋ ๋ค์ํ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
PreProcessing์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ํ ์ฒ๋ฆฌ๋ฅผ ์ํด HistoryCache์ ์ ์ฅํฉ๋๋ค. ์ด๊ฒ์ผ๋ก ๋ฐ์ดํฐ ์์ง์ด ์ข ๋ฃ๋๊ณ Zabbix์ ์ฃผ์ ํ๋ก์ธ์ค๋ก ์ด๋ํฉ๋๋ค. ๊ธฐ๋ก ๋๊ธฐํ ์ฅ์น, ๋ชจ๋๋ฆฌ์ ์ํคํ ์ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฐธ๊ณ : ์ ์ฒ๋ฆฌ๋ ์๋นํ ์ด๋ ค์ด ์์ ์ ๋๋ค. v 4.2์์๋ ํ๋ก์๋ก ์ด๋๋์์ต๋๋ค. ๋ฐ์ดํฐ ์์ ์๊ฐ ๋ง๊ณ ์์ง ๋น๋๊ฐ ๋์ Zabbix๊ฐ ๋งค์ฐ ํฐ ๊ฒฝ์ฐ ์์ ์ด ํจ์ฌ ์ฌ์์ง๋๋ค.
ValueCache, ๊ธฐ๋ก ๋ฐ ๋ํฅ ์บ์
ํ์คํ ๋ฆฌ ์ฑํฌ๋ ๊ฐ ๋ฐ์ดํฐ ์์, ์ฆ ๊ฐ ๊ฐ์ ์์์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ์ฃผ์ ํ๋ก์ธ์ค์ ๋๋ค.
๊ธฐ๋ก ๋๊ธฐํ ์ฅ์น๋ HistoryCache์์ ๊ฐ์ ๊ฐ์ ธ์ ๊ตฌ์ฑ์์ ๊ณ์ฐ์ ์ํ ํธ๋ฆฌ๊ฑฐ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ์กด์ฌํ๋ ๊ฒฝ์ฐ ๊ณ์ฐํฉ๋๋ค.
๊ธฐ๋ก ๋๊ธฐํ ์ฅ์น๋ ์ด๋ฒคํธ๋ฅผ ์์ฑํ๊ณ ๊ตฌ์ฑ์ ํ์ํ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ฅผ ์์ฑํ๊ธฐ ์ํ ์์ค์ปฌ๋ ์ด์ ๋ฐ ๊ธฐ๋ก์ ์์ฑํฉ๋๋ค. ํ์ ์ฒ๋ฆฌ๋ฅผ ์ํ ํธ๋ฆฌ๊ฑฐ๊ฐ ์๋ ๊ฒฝ์ฐ ์ด ๊ฐ์ ValueCache์ ์ ์ฅํ์ฌ ๊ธฐ๋ก ํ ์ด๋ธ์ ์ก์ธ์คํ์ง ์์ต๋๋ค. ์ด๋ ValueCache๊ฐ ํธ๋ฆฌ๊ฑฐ ๋ฐ ๊ณ์ฐ๋ ์์๋ฅผ ๊ณ์ฐํ๋ ๋ฐ ํ์ํ ๋ฐ์ดํฐ๋ก ์ฑ์์ง๋ ๋ฐฉ์์ ๋๋ค.
๊ธฐ๋ก ๋๊ธฐํ ์ฅ์น๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋กํ๊ณ ๋์คํฌ์ ๊ธฐ๋กํฉ๋๋ค. ์ฒ๋ฆฌ ๊ณผ์ ์ ์ฌ๊ธฐ์ ๋๋ฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์บ์ฑ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธก์๋ ์ด๋ฒคํธ์ ๋ํ ๊ทธ๋ํ๋ ๋ณด๊ณ ์๋ฅผ ๋ณด๋ ค๋ ๊ฒฝ์ฐ ๋ค์ํ ์บ์๊ฐ ์์ต๋๋ค.
Innodb_buffer_pool
MySQL ์ธก์์;shared_buffers
PostgreSQL ์ธก์์;effective_cache_size
์ค๋ผํด ์ธก์์;shared_pool
DB2 ์ธก์์.
๋ค๋ฅธ ๋ง์ ์บ์๊ฐ ์์ง๋ง ์ด๊ฒ์ด ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฃผ์ ์บ์์ ๋๋ค. ์ฟผ๋ฆฌ์ ์์ฃผ ํ์ํ ๋ฐ์ดํฐ๋ฅผ RAM์ ์ ์ฅํ ์ ์์ต๋๋ค. ๊ทธ๋ค์ ์ด์ ๋ํ ์์ฒด ๊ธฐ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ์ด ์ค์ํฉ๋๋ค
Zabbix ์๋ฒ๋ ์ง์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ๊ธฐ๋กํฉ๋๋ค. ๋ค์ ์์ํ๋ฉด ๊ธฐ๋ก์์ ์ฝ์ด ValueCache๋ฅผ ์ฑ์๋๋ค. ์คํฌ๋ฆฝํธ ๋ฐ ๋ณด๊ณ ์ ์ฌ์ฉ ์๋น ์ค API, ์น ์ธํฐํ์ด์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์ต๋๋ค. Zabbix API๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ก์ธ์คํ์ฌ ๊ทธ๋ํ, ๋ณด๊ณ ์, ์ด๋ฒคํธ ๋ชฉ๋ก ๋ฐ ์ต์ ๋ฌธ์ ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํฉ๋๋ค.
์๊ฐํ๋ฅผ ์ํด - ๊ทธ๋ผ ํ๋. ์ด๋ ์ฌ์ฉ์๋ค ์ฌ์ด์์ ์ธ๊ธฐ ์๋ ์๋ฃจ์
์
๋๋ค. Zabbix API์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํตํด ์ง์ ์์ฒญ์ ๋ณด๋ผ ์ ์์ผ๋ฉฐ ๋ฐ์ดํฐ ์์ ์ ์ํด ํน์ ๊ฒฝ์์ ๋ง๋ญ๋๋ค. ๋ฐ๋ผ์ ๊ฒฐ๊ณผ ๋ฐ ํ
์คํธ์ ๋น ๋ฅธ ์ ๋ฌ์ ์ํด์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณด๋ค ์ธ๋ฐํ๊ณ ํจ๊ณผ์ ์ผ๋ก ์กฐ์ ํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค.
๊ฐ์ฌ๋์ฐ๋ฏธ
Zabbix์ ์ธ ๋ฒ์งธ ์ฑ๋ฅ ๊ณผ์ ๋ Housekeeper๋ฅผ ์ฌ์ฉํ ๊ธฐ๋ก ์ญ์ ์ ๋๋ค. ๋ชจ๋ ์ค์ ์ ๋ฐ๋ฆ ๋๋ค. ๋ฐ์ดํฐ ์์๋ ๋ณํ์ ์ญํ(์ถ์ธ)์ ๋ฉฐ์น ๋จ์๋ก ์ ์ฅํ๋ ๊ธฐ๊ฐ์ ๋ํ๋ ๋๋ค.
TrendsCache๋ฅผ ์ฆ์ ๊ณ์ฐํฉ๋๋ค. ๋ฐ์ดํฐ๊ฐ ๋์ฐฉํ๋ฉด ์ด๋ฅผ ํ ์๊ฐ ๋์ ์ง๊ณํ์ฌ ์ถ์ธ ๋ณํ์ ์ญํ์ ํ ์ด๋ธ์ ๊ธฐ๋กํฉ๋๋ค.
Housekeeper๋ ์ผ๋ฐ์ ์ธ "์ ํ"์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ๋ณด๋ฅผ ์์ํ๊ณ ์ญ์ ํฉ๋๋ค. ๋ด๋ถ ํ๋ก์ธ์ค์ ์ฑ๋ฅ ๊ทธ๋ํ์์ ๋ณผ ์ ์๋ฏ์ด ์ด๋ ํญ์ ํจ๊ณผ์ ์ธ ๊ฒ์ ์๋๋๋ค.
๋นจ๊ฐ์ ๊ทธ๋ํ๋ ๊ธฐ๋ก ๋๊ธฐํ ์ฅ์น๊ฐ ์ง์์ ์ผ๋ก ์ฌ์ฉ ์ค์์ ๋ํ๋
๋๋ค. ์๋จ์ ์ฃผํฉ์ ๊ทธ๋ํ๋ ์ง์์ ์ผ๋ก ์คํ๋๋ Housekeeper์
๋๋ค. ๊ทธ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ ์ด ์ง์ ํ ๋ชจ๋ ํ์ ์ญ์ ํ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค.
์ธ์ Housekeeper๋ฅผ ๋นํ์ฑํํด์ผ ํฉ๋๊น? ์๋ฅผ ๋ค์ด, "ํญ๋ชฉ ID"๊ฐ ์๊ณ ํน์ ์๊ฐ ๋ด์ ๋ง์ง๋ง 5๊ฐ์ ํ์ ์ญ์ ํด์ผ ํฉ๋๋ค. ๋ฌผ๋ก ์ด๋ ์ธ๋ฑ์ค๋ณ๋ก ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ ์ธํธ๋ ๋งค์ฐ ํฌ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ์ ํ ๋์คํฌ์์ ์ฝ์ด ์บ์์ ์ ์ฅํฉ๋๋ค. ์ด๋ ํญ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋งค์ฐ ๋น์ฉ์ด ๋ง์ด ๋๋ ์์ ์ด๋ฉฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํฌ๊ธฐ์ ๋ฐ๋ผ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
๊ฐ์ ๋ถ๋ ๋นํ์ฑํํ๊ธฐ ์ฝ์ต๋๋ค. ์น ์ธํฐํ์ด์ค์๋ Housekeeper์ ๋ํ "๊ด๋ฆฌ ์ผ๋ฐ" ์ค์ ์ด ์์ต๋๋ค. ๋ด๋ถ ์ถ์ธ ๊ธฐ๋ก์ ๋ํ ๋ด๋ถ ๊ด๋ฆฌ๋ฅผ ๋นํ์ฑํํ๊ณ ๋ ์ด์ ๊ด๋ฆฌํ์ง ์์ต๋๋ค.
Housekeeper๊ฐ ๊บผ์ง๊ณ ๊ทธ๋ํ๊ฐ ๊ท ๋ฑํด์ก์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ด๋ค ๋ฌธ์ ๊ฐ ์์ ์ ์์ผ๋ฉฐ ์ธ ๋ฒ์งธ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋ฌด์์ด ๋์์ด ๋ ์ ์์ต๋๊น?
ํํฐ์ ๋ - ํํฐ์ ๋ ๋๋ ํํฐ์ ๋
์ผ๋ฐ์ ์ผ๋ก ํํฐ์ ๋์ ๋ด๊ฐ ๋์ดํ ๊ฐ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ฐ๊ฐ ๊ณ ์ ํ ๊ธฐ์ ์ด ์์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ์ ์ฌํฉ๋๋ค. ์ ํํฐ์ ์ ์์ฑํ๋ฉด ํน์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ํํฐ์ ์ ํ๋ฃจ์ ์์ฑ๋๋ ๋ฐ์ดํฐ ์์ธ "์ค์ "์ ๋ฐ๋ผ ๊ตฌ์ฑ๋ฉ๋๋ค. ์์น์ ์ผ๋ก ํํฐ์ ๋์ ํ๋ฃจ ์์ ์คํ๋๋ฉฐ ์ด๊ฒ์ด ์ต์์ ๋๋ค. ์๋ก์ด ๋ฐฐ์น์ ์ถ์ธ - 1๊ฐ์.
"์ค์ "์ด ๋งค์ฐ ํฐ ๊ฒฝ์ฐ ๊ฐ์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ์์ "์ค์ "์ด ์ต๋ 5nvps(์ด๋น ์ ๊ฐ)์ธ ๊ฒฝ์ฐ ์ค๊ฐ ์ค์ ์ 000~5์ด๊ณ ํฐ ์ค์ ์ 000nvps ์ด์์ ๋๋ค. ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์คํ๊ฒ ๊ตฌ์ฑํด์ผ ํ๋ ๋๊ท๋ชจ ์ค์น์ ๋๋ค.
๋๊ท๋ชจ ์ค์น์์๋ ํ๋ฃจ๋ผ๋ ๊ธฐ๊ฐ์ด ์ต์ ์ด ์๋ ์ ์์ต๋๋ค. ํ๋ฃจ์ 40GB ์ด์์ MySQL ํํฐ์ ์ ๋ณธ ์ ์ด ์์ต๋๋ค. ์ด๋ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ ๋งค์ฐ ํฐ ์์ ๋ฐ์ดํฐ์ด๋ฏ๋ก ์ค์ฌ์ผ ํฉ๋๋ค.
ํํฐ์ ๋์ ๋ฌด์์ ์ ๊ณตํฉ๋๊น?
ํํฐ์ ๋๋๊ธฐ ํ ์ด๋ธ. ์ข ์ข ์ด๋ค์ ๋์คํฌ์ ๋ณ๋์ ํ์ผ๋ก ์กด์ฌํฉ๋๋ค. ์ฟผ๋ฆฌ ๊ณํ์ ํ๋์ ํํฐ์ ์ ๋ ์ต์ ์ผ๋ก ์ ํํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํํฐ์ ๋์ ๋ฒ์๋ณ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ Zabbix์์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ์ฌ๊ธฐ์๋ ์๋๊ฐ ์์๋ ์ดํ์ ์๊ฐ์ธ "ํ์์คํฌํ"๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ํ๋ฒํ ์ซ์์ ๋๋ค. ํ๋ฃจ์ ์์๊ณผ ๋์ ์ค์ ํฉ๋๋ค. ์ด๊ฒ์ ํํฐ์ ์ ๋๋ค.
๋น ๋ฅธ ์ ๊ฑฐ - DELETE
. ์ญ์ ํ ํ์ ์ ํํ๋ ๋์ ํ๋์ ํ์ผ/ํ์ ํ
์ด๋ธ์ด ์ ํ๋ฉ๋๋ค.
๋ฐ์ดํฐ ๊ฒ์ ์๋๊ฐ ๋ํญ ํฅ์๋ฉ๋๋ค. SELECT
- ์ ์ฒด ํ
์ด๋ธ์ด ์๋ ํ๋ ์ด์์ ํํฐ์
์ ์ฌ์ฉํฉ๋๋ค. ์ดํ์ด ์ง๋ ๋ฐ์ดํฐ์ ์ก์ธ์คํ๋ ๊ฒฝ์ฐ ํฐ ํ
์ด๋ธ์ด ์๋ ํ๋์ ํ์ผ๋ง ์บ์์ ๋ก๋ํ๊ณ ๋ฐํํ๋ฉด ๋๋ฏ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ ๋นจ๋ฆฌ ๊ฒ์๋ฉ๋๋ค.
์ข
์ข
๋ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ฐ์ํ๋ฉ๋๋ค. INSERT
โ ํ์ ํ
์ด๋ธ์ ์ฝ์
ํฉ๋๋ค.
ํ์์ค์ผ์ผDB
v 4.2์์๋ TimescaleDB์ ๊ด์ฌ์ ๋๋ ธ์ต๋๋ค. ์ด๋ ๊ธฐ๋ณธ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ถ PostgreSQL์ฉ ํ์ฅ์ ๋๋ค. ํ์ฅ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด์ ์ ์์ง ์์ผ๋ฉด์ ์๊ณ์ด ๋ฐ์ดํฐ์ ํจ๊ณผ์ ์ผ๋ก ์๋ํฉ๋๋ค. TimescaleDB๋ ์๋์ผ๋ก ํํฐ์ ์ ๋๋๋๋ค.
TimescaleDB์๋ ๊ฐ๋ ์ด ์์ต๋๋ค ํ์ดํผํ ์ด๋ธ (ํ์ดํผํ ์ด๋ธ)์ ์์ฑํฉ๋๋ค. ๊ทธ๊ฒ์ ํฌํจ ๋ฉ์ด๋ฆฌ - ํํฐ์ . ์ฒญํฌ๋ ๋ค๋ฅธ ์กฐ๊ฐ์ ์ํฅ์ ์ฃผ์ง ์๋ ์๋์ผ๋ก ๊ด๋ฆฌ๋๋ ํ์ดํผํ ์ด๋ธ ์กฐ๊ฐ์ ๋๋ค. ๊ฐ ์ฒญํฌ์๋ ๊ณ ์ ํ ์๊ฐ ๋ฒ์๊ฐ ์์ต๋๋ค.
TimescaleDB์ PostgreSQL
TimescaleDB๋ ์ ๋ง ํจ์จ์ ์ผ๋ก ์๋ํฉ๋๋ค. ํ์ฅ ํ๋ก๊ทธ๋จ ์ ์กฐ์ ์ฒด๋ ๋ณด๋ค ์ ํํ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ, ํนํ inserts ์ฌ์ฉํ๋ค๊ณ ์ฃผ์ฅํฉ๋๋ค. ๋ฐ์ดํฐ ์ธํธ ์ฝ์ ํฌ๊ธฐ๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์ผ์ ํ ์ฑ๋ฅ์ ์ ์งํฉ๋๋ค.
200์ต ํ ์ดํ PostgreSQL์ ์ผ๋ฐ์ ์ผ๋ก ํฌ๊ฒ ์ ํ๋๊ธฐ ์์ํ๊ณ ์ฑ๋ฅ์ด 0์ผ๋ก ๋จ์ด์ง๋๋ค. TimescaleDB๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ์์ ๋ฐ์ดํฐ์ ๋ํด "์ฝ์
"์ ํจ์จ์ ์ผ๋ก ์ฝ์
ํ ์ ์์ต๋๋ค.
์ค์น
TimescaleDB ์ค์น๋ ๋ชจ๋ ํจํค์ง์์ ๋งค์ฐ ์ฝ์ต๋๋ค. ์์
Zabbix ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฒฝ์ฐ ํ์ฅ ๊ธฐ๋ฅ์ ํ์ฑํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix
๋น์ ์ ํ์ฑํ extension
Zabbix ๋ฐ์ดํฐ๋ฒ ์ด์ค์ฉ์ผ๋ก ์์ฑํฉ๋๋ค. ๋ง์ง๋ง ๋จ๊ณ๋ ํ์ดํผํ
์ด๋ธ์ ๋ง๋๋ ๊ฒ์
๋๋ค.
๊ธฐ๋ก ํ ์ด๋ธ์ TimescaleDB๋ก ๋ง์ด๊ทธ๋ ์ด์
์ฌ๊ธฐ์๋ ํน๋ณํ ๊ธฐ๋ฅ์ด ์์ต๋๋ค create_hypertable
:
SELECT create_hypertable(โhistoryโ, โclockโ, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(โhistory_unitโ, โclockโ, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(โhistory_logโ, โclockโ, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(โhistory_textโ, โclockโ, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(โhistory_strโ, โclockโ, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(โtrendsโ, โclockโ, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(โtrends_unitโ, โclockโ, chunk_time_interval => 86400, migrate_data => true);
UPDATE config SET db_extension=โtimescaledbโ, hk_history_global=1, hk_trends_global=1
์ด ํจ์์๋ ์ธ ๊ฐ์ง ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ - ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ
์ด๋ธ, ํ์ดํผํ
์ด๋ธ์ ์์ฑํด์ผ ํฉ๋๋ค. ๋๋ฒ์งธ - ๋คํ, ์ด์ ๋ฐ๋ผ ์์ฑํด์ผ ํ chunk_time_interval
โ ์ฌ์ฉํ ํํฐ์
์ฒญํฌ์ ๊ฐ๊ฒฉ์
๋๋ค. ๋ด ๊ฒฝ์ฐ ๊ฐ๊ฒฉ์ ํ๋ฃจ - 86์
๋๋ค.
์ธ ๋ฒ์งธ ๋งค๊ฐ๋ณ์ - migrate_data
. ์ค์ ํ๋ฉด true
, ๊ทธ๋ฌ๋ฉด ํ์ฌ์ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ๋ฏธ๋ฆฌ ์์ฑ๋ ์ฒญํฌ๋ก ์ ์ก๋ฉ๋๋ค. ์ ๊ฐ ์ง์ ์ฌ์ฉํ์ด์ migrate_data
. 1TB ์ ๋ ์์๋๋ฐ XNUMX์๊ฐ ๋๊ฒ ๊ฑธ๋ ธ์ต๋๋ค. ์ด๋ค ๊ฒฝ์ฐ์๋ ํ
์คํธ ์ค์ ์ ์ฅ์ ํ์ํ์ง ์์ ๋ฌธ์ ์ ํ์ ๊ธฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ์ฌ ์ ์กํ์ง ์๋๋ก ํ์ต๋๋ค.
๋ง์ง๋ง ๋จ๊ณ - UPDATE
:์์ db_extension
๋๋ค timescaledb
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด ํ์ฅ์ด ์กด์ฌํ๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค. Zabbix๋ ์ด๋ฅผ ํ์ฑํํ๊ณ TimescaleDB์ ํ์ํ ๊ธฐ๋ฅ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ๊ตฌ๋ฌธ๊ณผ ์ฟผ๋ฆฌ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํฉ๋๋ค.
ํ๋์จ์ด ๊ตฌ์ฑ
์ ๋ ๋ ๋์ ์๋ฒ๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ฒซ ๋ฒ์งธ - VMware ๋จธ์ . 20๊ฐ์ Intelยฎ Xeonยฎ CPU E5-2630 v 4 @ 2.20GHz ํ๋ก์ธ์, 16GB RAM ๋ฐ 200GB SSD๋ก ๋งค์ฐ ์์ต๋๋ค.
Debian 10.8-10.8.pgdg1+90 OS ๋ฐ xfs ํ์ผ ์์คํ ๊ณผ ํจ๊ป PostgreSQL 1์ ์ค์นํ์ต๋๋ค. Zabbix ์์ฒด์์ ์ฌ์ฉํ๋ ๊ฒ์ ์ ์ธํ๊ณ ์ด ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ชจ๋ ๊ฒ์ ์ต์ํ์ผ๋ก ๊ตฌ์ฑํ์ต๋๋ค.
๋์ผํ ์์คํ
์๋ Zabbix ์๋ฒ, PostgreSQL ๋ฐ ๋ก๋ ์์ด์ ํธ. ์ฌ์ฉ ์ค์ธ ํ์ฑ ์์ด์ ํธ๊ฐ 50๊ฐ ์์์ต๋๋ค. LoadableModule
์ซ์, ๋ฌธ์์ด ๋ฑ ๋ค์ํ ๊ฒฐ๊ณผ๋ฅผ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์์ฑํฉ๋๋ค. ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง์ ๋ฐ์ดํฐ๋ก ์ฑ์ ๋ค.
์ฒ์์ ํฌํจ๋ ๊ตฌ์ฑ 5๊ฐ ์์ ํธ์คํธ๋น ๋ฐ์ดํฐ. ๊ฑฐ์ ๋ชจ๋ ์์์๋ ์ค์ ์ค์น์ ์ ์ฌํ๊ฒ ๋ง๋๋ ํธ๋ฆฌ๊ฑฐ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์ด๋ค ๊ฒฝ์ฐ์๋ ํ๋ ์ด์์ ํธ๋ฆฌ๊ฑฐ๊ฐ ๋ฐ์ํ์ต๋๋ค. ํ๋์ ๋คํธ์ํฌ ๋ ธ๋์๋ 3~000๊ฐ์ ํธ๋ฆฌ๊ฑฐ.
๋ฐ์ดํฐ ํญ๋ชฉ ์ ๋ฐ์ดํธ ๊ฐ๊ฒฉ - 4-7 ์ด. ์์ด์ ํธ๋ฅผ 50๊ฐ๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋ผ ๋ ์ถ๊ฐํ์ฌ ๋ถํ ์์ฒด๋ฅผ ์กฐ์ ํ์ต๋๋ค. ๋ํ ๋ฐ์ดํฐ ์์๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๋๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํ๊ณ ์ ๋ฐ์ดํธ ๊ฐ๊ฒฉ์ 4์ด๋ก ์ค์์ต๋๋ค.
PostgreSQL. 35NVPS
์ด ํ๋์จ์ด์์์ ์ฒซ ๋ฒ์งธ ์คํ์ ์์ PostgreSQL์์ ์ด๋ฃจ์ด์ก์ต๋๋ค. ์ด๋น 35๊ฐ์ ๊ฐ์ด์์ต๋๋ค. ๋ณด์๋ค์ํผ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ ๋ฐ๋ ๋ช ๋ถ์ 200์ด๋ฐ์ ๊ฑธ๋ฆฌ์ง ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ํ๋ฅญํ๊ณ ๋น ๋ฆ ๋๋ค. ์ ์ผํ ๊ฒ์ XNUMXGB SSD ๋์คํฌ๊ฐ ๋นจ๋ฆฌ ์ฑ์์ง๋ค๋ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ ํ์ค Zabbix ์๋ฒ ์ฑ๋ฅ ๋์๋ณด๋์
๋๋ค.
์ฒซ ๋ฒ์งธ ํ๋์ ๊ทธ๋ํ๋ ์ด๋น ๊ฐ์ ๊ฐ์์
๋๋ค. ์ค๋ฅธ์ชฝ์ ๋ ๋ฒ์งธ ๊ทธ๋ํ๋ ๋น๋ ํ๋ก์ธ์ค์ ๋ก๋ฉ์
๋๋ค. ์ธ ๋ฒ์งธ๋ ๋ด๋ถ ๋น๋ ํ๋ก์ธ์ค๋ฅผ ๋ก๋ํ๋ ๊ฒ์
๋๋ค. ํ์คํ ๋ฆฌ ๋๊ธฐํ ์ฅ์น์ Housekeeper๋ ์ฌ๊ธฐ์์ ๊ฝค ์ค๋ซ๋์ ์คํ๋์ด ์์ต๋๋ค.
๋ค ๋ฒ์งธ ๊ทธ๋ํ๋ HistoryCache ์ฌ์ฉ๋์ ๋ณด์ฌ์ค๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฝ์ ํ๊ธฐ ์ ์ ์ผ์ข ์ ๋ฒํผ์ด๋ค. ๋ น์ ๋ค์ฏ ๋ฒ์งธ ๊ทธ๋ํ๋ ValueCache ์ฌ์ฉ๋, ์ฆ ํธ๋ฆฌ๊ฑฐ์ ๋ํ ValueCache ์ ์ค ํ์๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ด๋ ์ด๋น ์์ฒ ๊ฐ์ ๊ฐ์ ๋๋ค.
PostgreSQL. 50NVPS
๊ทธ๋ฐ ๋ค์ ๋์ผํ ํ๋์จ์ด์์ ๋ก๋๋ฅผ ์ด๋น 50๋ง ๊ฐ์ผ๋ก ๋๋ ธ์ต๋๋ค.
Housekeeper์์ ๋ก๋ํ ๋ 10๊ฐ์ ๊ฐ์ ์ฝ์
ํ๋ ๋ฐ 2~3์ด๊ฐ ๊ฑธ๋ ธ์ต๋๋ค.
๊ฐ์ ๋ถ๋ ์ด๋ฏธ ์ผ์ ๋ฐฉํดํ๊ธฐ ์์ํ์ต๋๋ค.
์ธ ๋ฒ์งธ ๊ทธ๋ํ๋ ์ผ๋ฐ์ ์ผ๋ก ํธ๋ฉํผ ๋ฐ ๊ธฐ๋ก ๋๊ธฐํ ์ฅ์น์ ๋ก๋๊ฐ ์ฌ์ ํ 60%์์ ๋ณด์ฌ์ค๋๋ค. ๋ค ๋ฒ์งธ ๊ทธ๋ํ์์๋ Housekeeper ์์ ์ค์ HistoryCache๊ฐ ์ด๋ฏธ ํ๋ฐํ๊ฒ ์ฑ์์ง๊ธฐ ์์ํ์ต๋๋ค. 20% ์ ๋ ์ฐจ์ ์ฝ 0,5GB ์ ๋ ๋ฉ๋๋ค.
PostgreSQL. 80NVPS
๊ทธ๋ฐ ๋ค์ ์ด๋น 80๋ง ๊ฐ์ผ๋ก ๋ถํ๋ฅผ ๋๋ ธ์ต๋๋ค. ์ด๋ ์ฝ 400๋ง ๊ฐ์ ๋ฐ์ดํฐ ์์์ 280๋ง ๊ฐ์ ํธ๋ฆฌ๊ฑฐ์ ๋๋ค.
ํ์คํ ๋ฆฌ ์ฑํฌ๋ก๋์
XNUMX๊ฐ์ ๋ก๋ฉ ๋น์ฉ์ ์ด๋ฏธ ์๋นํ ๋์ต๋๋ค.
๋ํ ๊ธฐ๋ก ๋๊ธฐํ ์ฅ์น, ์บ์ ๋ฑ ๋ค์ํ ๋งค๊ฐ๋ณ์๋ ๋๋ ธ์ต๋๋ค.
๋ด ํ๋์จ์ด์์๋ ๊ธฐ๋ก ๋๊ธฐํ ์ฅ์น์ ๋ก๋ฉ์ด ์ต๋์น๋ก ์ฆ๊ฐํ์ต๋๋ค. HistoryCache๋ ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ๋ก ์ฑ์์ก์ต๋๋ค. ์ฒ๋ฆฌํ ๋ฐ์ดํฐ๊ฐ ๋ฒํผ์ ์ถ์ ๋์์ต๋๋ค.
์ด๋ฒ์๋ ํ๋ก์ธ์, RAM ๋ฐ ๊ธฐํ ์์คํ ๋งค๊ฐ๋ณ์๊ฐ ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง ๊ด์ฐฐํ๊ณ ๋์คํฌ ํ์ฉ๋๊ฐ ์ต๋์น์ ๋๋ฌํ๋ค๋ ์ฌ์ค์ ๋ฐ๊ฒฌํ์ต๋๋ค.
๋๋ ์ฌ์ฉ์ ๋ฌ์ฑํ๋ค ์ต๋ ๋์คํฌ ์ฉ๋ ์ด ํ๋์จ์ด์ ์ด ๊ฐ์ ๋จธ์ ์์. ์ด๋ฌํ ๊ฐ๋๋ก ์ธํด PostgreSQL์ ๋ฐ์ดํฐ๋ฅผ ๋งค์ฐ ์ ๊ทน์ ์ผ๋ก ํ๋ฌ์ํ๊ธฐ ์์ํ์ผ๋ฉฐ ๋์คํฌ์๋ ๋ ์ด์ ์ฐ๊ณ ์ฝ์ ์๊ฐ์ด ์์์ต๋๋ค.
๋ ๋ฒ์งธ ์๋ฒ
์ ๋ ์ด๋ฏธ 48๊ฐ์ ํ๋ก์ธ์์ 128GB์ RAM์ ๊ฐ์ถ ๋ค๋ฅธ ์๋ฒ๋ฅผ ๊ฐ์ ธ๊ฐ์ต๋๋ค. ์กฐ์ ํ์ต๋๋ค. ๊ธฐ๋ก ๋๊ธฐํ ์ฅ์น๋ฅผ 60์ผ๋ก ์ค์ ํ๊ณ ํ์ฉ ๊ฐ๋ฅํ ์ฑ๋ฅ์ ์ป์์ต๋๋ค.
์ค์ ๋ก ์ด๋ ์ด๋ฏธ ๋ฌด์ธ๊ฐ๋ฅผ ์ํํด์ผ ํ๋ ์์ฐ์ฑ์ ํ๊ณ์
๋๋ค.
TimescaleDB. 80NVPS
๋์ ์ฃผ์ ์๋ฌด๋ Zabbix ๋ก๋์ ๋ํด TimescaleDB์ ๊ธฐ๋ฅ์ ํ ์คํธํ๋ ๊ฒ์ ๋๋ค. ์ด๋น 80๊ฐ์ ๊ฐ์ ๋ง๊ณ ์ธก์ ํญ๋ชฉ ์์ง ๋น๋(๋ฌผ๋ก Yandex ์ ์ธ)์ ์๋นํ ํฐ "์ค์ "์ ๋๋ค.
๋ชจ๋ ๊ทธ๋ํ์๋ ํ๋ฝ์ด ์์ต๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์
์
๋๋ค. Zabbix ์๋ฒ์ ์ฅ์ ๊ฐ ๋ฐ์ํ ํ ๊ธฐ๋ก ๋๊ธฐํ ์ฅ์น์ ๋ก๋ฉ ํ๋กํ์ด ๋ง์ด ๋ณ๊ฒฝ๋์ด ์ธ ๋ฒ ๋จ์ด์ก์ต๋๋ค.
TimescaleDB๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๊ฑฐ์ 3๋ฐฐ ๋น ๋ฅด๊ฒ ์ฝ์ ํ๊ณ HistoryCache๋ฅผ ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ์ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค.
TimescaleDB. 120NVPS
๊ทธ๋ฐ ๋ค์ ๋ฐ์ดํฐ ์์ ์๋ฅผ 500๋ง ๊ฐ๋ก ๋๋ ธ์ต๋๋ค. ์ฃผ์ ์์ ์ TimescaleDB์ ๊ธฐ๋ฅ์ ํ ์คํธํ๋ ๊ฒ์ด์๊ณ ์ด๋น 125๊ฐ์ ๊ฐ์ผ๋ก ๊ณ์ฐ๋ ๊ฐ์ ๋ฐ์์ต๋๋ค.
์ด๊ฒ์ ์ค๋ซ๋์ ์๋ํ ์ ์๋ ์๋ "์ค์ "์
๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ด ๋์คํฌ๊ฐ 1,5TB์ ๋ถ๊ณผํด์ ๋ฉฐ์น ๋ง์ ๋ค ์ฐผ์ด์.
๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋์์ ์๋ก์ด TimescaleDB ํํฐ์
์ด ์์ฑ๋์๋ค๋ ๊ฒ์
๋๋ค.
์ด๋ ์ฑ๋ฅ์ ์ ํ ๋์ ๋์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด MySQL์์ ํํฐ์ ์ด ์์ฑ๋๋ฉด ๋ชจ๋ ๊ฒ์ด ๋ฌ๋ผ์ง๋๋ค. ์ด๋ ์ผ๋ฐ ์ฝ์ ์ ์ฐจ๋จํ๊ณ ํ ์ด๋ธ ์์ ์ ํ๋ฉฐ ์๋น์ค ์ ํ๋ฅผ ์ผ์ผํฌ ์ ์๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก ๋ฐค์ ๋ฐ์ํฉ๋๋ค. TimescaleDB์ ๊ฒฝ์ฐ๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์ปค๋ฎค๋ํฐ์ ๋ง์ ๊ทธ๋ํ ์ค ํ๋๋ฅผ ๋ณด์ฌ ๋๋ฆฌ๊ฒ ์ต๋๋ค. ๊ทธ๋ฆผ์์๋ TimescaleDB๊ฐ ํ์ฑํ๋์ด ํ๋ก์ธ์์์ io.weight๋ฅผ ์ฌ์ฉํ ๋์ ๋ถํ๊ฐ ๊ฐ์ํ์ต๋๋ค. ๋ด๋ถ ํ๋ก์ธ์ค ์์์ ์ฌ์ฉ๋ ๊ฐ์ํ์ต๋๋ค. ๊ฒ๋ค๊ฐ ์ด๊ฒ์ SSD๊ฐ ์๋ ์ผ๋ฐ ํฌ์ผ์ดํฌ ๋์คํฌ์ ์ผ๋ฐ ๊ฐ์ ๋จธ์ ์ ๋๋ค.
์กฐ์ฌ ๊ฒฐ๊ณผ
TimescaleDB๋ ์๊ท๋ชจ "์ค์ "์ ์ ํฉํ ์๋ฃจ์ ์ ๋๋ค., ์ด๋ ๋์คํฌ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ํ๋์จ์ด๋ก ๋ง์ด๊ทธ๋ ์ด์ ๋ ๋๊น์ง ๊ณ์ํด์ ์ํํ๊ฒ ์์ ํ ์ ์์ต๋๋ค.
TimescaleDB๋ ๊ตฌ์ฑ์ด ์ฝ๊ณ ์ฑ๋ฅ ํฅ์์ ์ ๊ณตํ๋ฉฐ Zabbix ๋ฐ PostgreSQL์ ๋นํด ์ฅ์ ์ด ์์.
PostgreSQL์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ๋ณ๊ฒฝํ ๊ณํ์ด ์๋ค๋ฉด ๋ค์์ ๊ถ์ฅํฉ๋๋ค. Zabbix์ ํจ๊ป TimescaleDB ํ์ฅ๊ณผ ํจ๊ป PostgreSQL ์ฌ์ฉ. ์ด ์๋ฃจ์ ์ ์ค๊ฐ ์์ค์ "์ค์ "๊น์ง ํจ๊ณผ์ ์ผ๋ก ์๋ํฉ๋๋ค.
"๊ณ ์ฑ๋ฅ"์ด๋ผ๊ณ ํ๋ฉด
HighLoad ++ . ์๋ฐฑ๋ง ๋ช ์ ์ฌ์ฉ์์๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์๋ ๊ธฐ์ ๊ณผ ๊ดํ์ ๋ํด ๋ฐฐ์ฐ๊ธฐ ์ํด ์ค๋ ๊ธฐ๋ค๋ฆฌ์ง ์์ ๊ฒ์ ๋๋ค. ๋ชฉ๋ก๋ณด๊ณ ์ 7์ 8์ผ๊ณผ XNUMX์ผ์ ๋ํด์๋ ์ด๋ฏธ ํธ์งํ์ง๋ง ์ฌ๊ธฐ์๋๋ชจ์ ๋ ๋ง์ ๊ฒ์ ์ ์ํ ์ ์์ต๋๋ค.์ฐ๋ฆฌ์ ๊ตฌ๋
๋ด์ค ๋ ํฐ ะธ์ ๋ณด ์์ ๋ค๊ฐ์ค๋ ์ปจํผ๋ฐ์ค์ ํน์ง์ ๊ณต๊ฐํ๊ณ ์ด๋ฅผ ์ต๋ํ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ด ๋๋ค.
์ถ์ฒ : habr.com