๋ด ์ด๋ฆ์ ์ํค ๋ฒ ์ด๋๋ฆฐ์ ๋๋ค. ์ ๋ ์ฒจ๋จ๊ธฐ์ ์ผํฐ์์ ์์คํ ๊ด๋ฆฌ ์ ๋ฌด๋ฅผ ๋ด๋นํ๊ณ ์์ต๋๋ค. ํ ๋ฌ ์ , ์ฐ๋ฆฌ ๋์์ IT ์ปค๋ฎค๋ํฐ์ ์ถ์ ๋ ๊ฒฝํ์ ๊ณต์ ํ๋ ๊ธฐ์ ์ปจํผ๋ฐ์ค๊ฐ ๋๋ฌ์ต๋๋ค. ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ํฐ๋ง์ ๋ํด ์ด์ผ๊ธฐํ์ต๋๋ค. ์ด ์๋ฃ๋ ์ด ํ๋ก์ธ์ค๋ฅผ ์ฒ์๋ถํฐ ๊ตฌ์ถํ์ง ์์ ์ค๊ธ ๋๋ ์ค๊ธ ์์ค์ ๋์์ผ๋ก ์์ฑ๋์์ต๋๋ค.
๋ชจ๋ ๋ชจ๋ํฐ๋ง ์์คํ ์ ๊ธฐ๋ณธ์ ๋น์ฆ๋์ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ๋๋ค. ๋ชจ๋ํฐ๋ง์ ์ํ ๋ชจ๋ํฐ๋ง์ ๋๊ตฌ์๊ฒ๋ ๊ด์ฌ์ด ์์ต๋๋ค. ๊ธฐ์ ์ ๋ฌด์์ ์ํ๋๊ฐ? ๋ชจ๋ ๊ฒ์ด ์ค๋ฅ ์์ด ์ ์ํ๊ฒ ์๋ํ๋๋ก ํฉ๋๋ค. ๊ธฐ์ ์ ์๋น์ค์ ๋ฌธ์ ๋ฅผ ์ค์ค๋ก ์๋ณํ๊ณ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ํด๊ฒฐํ ์ ์๋๋ก ์ ๊ทน์ ์ผ๋ก ๋ ธ๋ ฅํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ์ฌ์ค ์ด๊ฒ์ ์ ๊ฐ ์๋ ์ ์ฐ๋ฆฌ ๊ณ ๊ฐ ์ค ํ ๋ช ์ ์ํ ํ๋ก์ ํธ์์ ํด๊ฒฐํ ๋ฌธ์ ์ ๋๋ค.
ํ๋ก์ ํธ์ ๋ํ
์ด ํ๋ก์ ํธ๋ ๋ฏธ๊ตญ ์ต๋ ๊ท๋ชจ์ ๋ก์ดํฐ ํ๋ก๊ทธ๋จ ์ค ํ๋์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋ณด๋์ค ์นด๋์ ๊ฐ์ ๋ค์ํ ๋ง์ผํ ๋๊ตฌ๋ฅผ ํตํด ์๋งค ์ฒด์ธ์ด ํ๋งค ๋น๋๋ฅผ ๋์ผ ์ ์๋๋ก ๋์ต๋๋ค. ์ ์ฒด์ ์ผ๋ก ์ด ํ๋ก์ ํธ์๋ 14๊ฐ์ ์๋ฒ์์ ์คํ๋๋ XNUMX๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํฌํจ๋ฉ๋๋ค.
์ธํฐ๋ทฐ ๊ณผ์ ์์ ์ ๋ ๊ด๋ฆฌ์๊ฐ ํญ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ํฐ๋ง์ ์ฌ๋ฐ๋ฅด๊ฒ ์ ๊ทผํ์ง ์๋๋ค๋ ์ฌ์ค์ ๋ฐ๋ณตํด์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๋ง์ ๊ด๋ฆฌ์๊ฐ ์ฌ์ ํ ์ด์ ์ฒด์ ์ธก์ ํญ๋ชฉ์ ์ด์ ์ ๋ง์ถ๊ณ ๊ฐ๋ ์๋น์ค๋ฅผ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
์ ๊ฒฝ์ฐ์๋ ์ด์ ์ ๊ณ ๊ฐ์ ๋ชจ๋ํฐ๋ง ์์คํ ์ด Icinga๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ต๋๋ค. ์์ ๋ฌธ์ ๋ ์ด๋ค ์์ผ๋ก๋ ํด๊ฒฐ๋์ง ์์์ต๋๋ค. ๊ณ ๊ฐ์ด ์ง์ ๋ฌธ์ ์ ๋ํด ์๋ ค์ฃผ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์ผ๋ฉฐ, ์์ธ์ ํ์ ํ๊ธฐ์ ์ถฉ๋ถํ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์ต๋๋ค.
๋ํ ์ถ๊ฐ ๊ฐ๋ฐ์ ๋ฌด์ตํจ์ ๋ํ ๋ช ํํ ์ดํด๊ฐ์์์ต๋๋ค. ์ด์ฑ๊ฐ์ ๋ํด ์ ์์๋ ๋ถ๋ค์ ์ ๋ฅผ ์ดํดํ์ค ๊ฑฐ๋ผ ์๊ฐํฉ๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ํ๋ก์ ํธ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ํฐ๋ง ์์คํ ์ ์์ ํ ์ฌ์ค๊ณํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
ํ๋ก ๋ฉํ ์ฐ์ค
์ฐ๋ฆฌ๋ ์ธ ๊ฐ์ง ์ฃผ์ ์งํ๋ฅผ ๋ฐํ์ผ๋ก Prometheus๋ฅผ ์ ํํ์ต๋๋ค.
- ์ฌ์ฉ ๊ฐ๋ฅํ ์ธก์ ํญ๋ชฉ์ด ์์ฒญ๋๊ฒ ๋ง์ต๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ์๋ 60๋ง ๊ฐ๊ฐ ์์ต๋๋ค. ๋ฌผ๋ก ์ฐ๋ฆฌ๋ ๊ทธ ์ค ๋๋ค์(์ฝ 95% ์ ๋)๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ ์ ์ ์ฃผ๋ชฉํ ํ์๊ฐ ์์ต๋๋ค. ๋ฐ๋ฉด์, ๊ทธ๊ฒ๋ค์ ๋ชจ๋ ์๋์ ์ผ๋ก ์ ๋ ดํฉ๋๋ค. ์ฐ๋ฆฌ์๊ฒ ์ด๊ฒ์ ์ด์ ์ ์ฌ์ฉ๋ Icinga์ ๋น๊ตํ ๋ ๋ค๋ฅธ ๊ทน๋จ์ ๋๋ค. ๊ทธ ์์์ ์ธก์ ํญ๋ชฉ์ ์ถ๊ฐํ๋ ๊ฒ์ ํน๋ณํ ๊ณ ํต์ด์์ต๋๋ค. ๊ธฐ์กด ์ธก์ ํญ๋ชฉ์ ๋น์ฉ์ด ๋ง์ด ๋ค์์ต๋๋ค(ํ๋ฌ๊ทธ์ธ์ ์์ค ์ฝ๋๋ฅผ ์ดํด๋ณด์ธ์). ๋ชจ๋ ํ๋ฌ๊ทธ์ธ์ Bash ๋๋ Python์ ์คํฌ๋ฆฝํธ์์ผ๋ฉฐ ์คํ ์ ๋ฆฌ์์ค ์๋น ์ธก๋ฉด์์ ๋น์ฉ์ด ๋ง์ด ๋ญ๋๋ค.
- ์ด ์์คํ ์ ์๋์ ์ผ๋ก ์ ์ ์์ ๋ฆฌ์์ค๋ฅผ ์๋นํฉ๋๋ค. 600MB RAM, 15๊ฐ ์ฝ์ด์ XNUMX%, ์์ญ ๊ฐ์ IOPS์ด๋ฉด ๋ชจ๋ ์ธก์ ํญ๋ชฉ์ ์ถฉ๋ถํฉ๋๋ค. ๋ฌผ๋ก ๋ฉํธ๋ฆญ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์คํํด์ผ ํ์ง๋ง ๋ชจ๋ Go๋ก ์์ฑ๋์์ผ๋ฉฐ ์ ๋ ฅ ์๋ชจ๋ ํฌ์ง ์์ต๋๋ค. ๋๋ ํ๋ ํ์ค์์ ์ด๊ฒ์ด ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
- Kubernetes๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๊ณ ๊ฐ์ ๊ณํ์ ๊ณ ๋ คํ๋ฉด ์ ํ์ ๋ถ๋ช ํฉ๋๋ค.
๊ณ ๋ผ๋
์ด์ ์๋ ๋ก๊ทธ๋ฅผ ์์งํ๊ฑฐ๋ ์ฒ๋ฆฌํ์ง ์์์ต๋๋ค. ๋จ์ ์ ๋๊ตฌ์๊ฒ๋ ๋ถ๋ช ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฏธ ์ด ์์คํ ์ ๋ํ ๊ฒฝํ์ด ์์๊ธฐ ๋๋ฌธ์ ELK๋ฅผ ์ ํํ์ต๋๋ค. ์ฌ๊ธฐ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ก๊ทธ๋ง ์ ์ฅ๋ฉ๋๋ค. ์ฃผ์ ์ ํ ๊ธฐ์ค์ ์ ์ฒด ํ ์คํธ ๊ฒ์๊ณผ ์๋์์ต๋๋ค.
ํด๋ฆญํ์ฐ์ค
์ฒ์์๋ InfluxDB๋ฅผ ์ ํํ์ต๋๋ค. ์ฐ๋ฆฌ๋ Nginx ๋ก๊ทธ, pg_stat_statements์ ํต๊ณ๋ฅผ ์์งํ๊ณ Prometheus ๊ธฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด์ผ ํ ํ์์ฑ์ ๊นจ๋ฌ์์ต๋๋ค. ์ฐ๋ฆฌ๋ Influx๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ง์ ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋นํ๊ธฐ ์์ํ๊ณ ์ถฉ๋ํ๊ธฐ ๋๋ฌธ์ ๋ง์์ ๋ค์ง ์์์ต๋๋ค. ๊ฒ๋ค๊ฐ, Remote_addr๋ณ๋ก ์ฟผ๋ฆฌ๋ฅผ ๊ทธ๋ฃนํํ๊ณ ์ถ์๋๋ฐ, ์ด DBMS์์๋ ํ๊ทธ๋ณ๋ก ๊ทธ๋ฃนํ๋ง ๋๋ค์. ํ๊ทธ๋ ๋น์ฉ์ด ๋ง์ด ๋ค๊ณ (๋ฉ๋ชจ๋ฆฌ) ๊ฐ์๊ฐ ์กฐ๊ฑด๋ถ๋ก ์ ํ๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ค์ ๊ฒ์์ ์์ํ์ต๋๋ค. ํ์ํ ๊ฒ์ ๋ฆฌ์์ค ์๋น๋ฅผ ์ต์ํํ๊ณ ๊ฐ๊ธ์ ์ด๋ฉด ๋์คํฌ์ ๋ฐ์ดํฐ๋ฅผ ์์ถํ๋ ๋ถ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ต๋๋ค.
Clickhouse๋ ์ด๋ฌํ ๋ชจ๋ ๊ธฐ์ค์ ์ถฉ์กฑํ๋ฉฐ, ์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ์ ์ ํ์ ๊ฒฐ์ฝ ํํํ ์ ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ์์ฒญ๋ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฐ์ง ์์ต๋๋ค(์ฝ์ ํ์๋ ๋ถ๋น ์ฝ XNUMXํ์ ๋ถ๊ณผํฉ๋๋ค).
NewRelic
NewRelic์ ๊ณ ๊ฐ์ ์ ํ์ด์๊ธฐ ๋๋ฌธ์ ์ญ์ฌ์ ์ผ๋ก ์ฐ๋ฆฌ์ ํจ๊ปํด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ APM์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
์ ๋น์ธ
์ฐ๋ฆฌ๋ ๋ค์ํ API์ ๋ธ๋๋ฐ์ค๋ฅผ ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํด Zabbix๋ฅผ ๋ ์ ์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
๋ชจ๋ํฐ๋ง ์ ๊ทผ ๋ฐฉ์ ์ ์
์ฐ๋ฆฌ๋ ์์ ์ ๋ถํดํ์ฌ ๋ชจ๋ํฐ๋ง ์ ๊ทผ ๋ฐฉ์์ ์ฒด๊ณํํ๊ณ ์ถ์์ต๋๋ค.
์ด๋ฅผ ์ํด ์ ๋ ์์คํ ์ ๋ค์๊ณผ ๊ฐ์ ์์ค์ผ๋ก ๋๋์์ต๋๋ค.
- ํ๋์จ์ด ๋ฐ VMS;
- ์ด์ ์ฒด์
- ์์คํ ์๋น์ค, ์ํํธ์จ์ด ์คํ;
- ์ ํ๋ฆฌ์ผ์ด์ ;
- ๋น์ฆ๋์ค ๋ ผ๋ฆฌ.
์ด ์ ๊ทผ ๋ฐฉ์์ด ํธ๋ฆฌํ ์ด์ :
- ์ฐ๋ฆฌ๋ ๊ฐ ์์ค์ ์์ ์ ๋ด๋นํ๋ ์ฌ๋์ด ๋๊ตฌ์ธ์ง ์๊ณ ์์ผ๋ฉฐ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฒฝ๊ณ ๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค.
- ๊ฒฝ๊ณ ๋ฅผ ์ต์ ํ ๋ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฐ์ ๋จธ์ ์ ์ฒด๋ฅผ ์ฌ์ฉํ ์ ์์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฉ์ฑ์ ๋ํ ๊ฒฝ๊ณ ๋ฅผ ๋ณด๋ด๋ ๊ฒ์ ์ด์ํ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ์ ์๋ฌด๋ ์์คํ ์ด์์ ์๋ฐ ์ฌํญ์ ์๋ณํ๋ ๊ฒ์ด๋ฏ๋ก ๊ฐ ์์ค์์ ๊ฒฝ๊ณ ๊ท์น์ ์์ฑํ ๋ ์ฃผ์ํ ๊ฐ์น๊ฐ ์๋ ํน์ ์ธก์ ํญ๋ชฉ ์งํฉ์ ๊ฐ์กฐํด์ผ ํฉ๋๋ค. ๋ค์์ผ๋ก "VMS", "์ด์ ์ฒด์ " ๋ฐ "์์คํ ์๋น์ค, ์ํํธ์จ์ด ์คํ" ์์ค์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๊ฐ์ ๋จธ์
ํธ์คํ ์ ์ฐ๋ฆฌ์๊ฒ ํ๋ก์ธ์, ๋์คํฌ, ๋ฉ๋ชจ๋ฆฌ ๋ฐ ๋คํธ์ํฌ๋ฅผ ํ ๋นํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ฒ์ ๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ธก์ ํญ๋ชฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
CPU ๋๋ ์๊ฐ - Amazon์์ ๊ฐ์ ๋จธ์ (์: t2.micro)์ ๊ตฌ๋งคํ ๋ ์ ์ฒด ํ๋ก์ธ์ ์ฝ์ด๊ฐ ํ ๋น๋์ง ์๊ณ ์๊ฐ ํ ๋น๋๋ง ํ ๋น๋๋ค๋ ์ ์ ์ดํดํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์์งํ๋ฉด ํ๋ก์ธ์๊ฐ ๋น์ ์๊ฒ์ ๋ฉ์ด ์ง ๊ฒ์ ๋๋ค.
์ด ์งํ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ทธ๋ฌํ ์๊ฐ์ ์ถ์ ํ๊ณ ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ ๋์ ์๊ธ์ ๋ถ๊ณผํ๊ฑฐ๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ๋ฐ API ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ๋ค๋ฅธ ์๋ฒ์ ๋ถ์ฐํด์ผ ํฉ๋๊น?
IOPS + CPU iowait ์๊ฐ - ์ด๋ค ์ด์ ๋ก ๋ง์ ํด๋ผ์ฐ๋ ํธ์คํ ์ด ์ถฉ๋ถํ IOPS๋ฅผ ์ ๊ณตํ์ง ์์์ผ๋ก์จ ์ฃ๋ฅผ ์ง์ต๋๋ค. ๊ฒ๋ค๊ฐ IOPS๊ฐ ๋ฎ์ ์ผ์ ์ ๊ทธ๋ค์๊ฒ ๋ ผ์๊ฑฐ๋ฆฌ๊ฐ ๋์ง ์์ต๋๋ค. ๋ฐ๋ผ์ CPU iowait๋ฅผ ์์งํ ๊ฐ์น๊ฐ ์์ต๋๋ค. IOPS๊ฐ ๋ฎ๊ณ I/O ๋๊ธฐ๊ฐ ๋์ ์ด ๊ทธ๋ํ ์์ ์ฌ์ฉํ๋ฉด ์ด๋ฏธ ํธ์คํ ๊ณผ ๋ํํ๊ณ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ด์ ์ฒด์
์ด์ ์ฒด์ ์ธก์ ํญ๋ชฉ:
- ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ์(%);
- ์ค์ ์ฌ์ฉ ํ๋: vmstat swapin, swapout;
- ์ฌ์ฉ ๊ฐ๋ฅํ inode ์ ๋ฐ ํ์ผ ์์คํ ์ ์ฌ์ ๊ณต๊ฐ(%)
- ํ๊ท ๋ถํ;
- tw ์ํ์ ์ฐ๊ฒฐ ์;
- conntrack ํ ์ด๋ธ ์ถฉ๋ง๋;
- ๋คํธ์ํฌ ํ์ง์ ss ์ ํธ๋ฆฌํฐ์ธ iproute2 ํจํค์ง๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค. ์ถ๋ ฅ์์ โโRTT ์ฐ๊ฒฐ ํ์๊ธฐ๋ฅผ ๊ฐ์ ธ์ ๋์ ํฌํธ๋ณ๋ก ๊ทธ๋ฃนํํฉ๋๋ค.
๋ํ ์ด์ ์ฒด์ ์์ค์๋ ํ๋ก์ธ์ค์ ๊ฐ์ ์ํฐํฐ๊ฐ ์์ต๋๋ค. ์์คํ ์ด์์ ์ค์ํ ์ญํ ์ ํ๋ ์ผ๋ จ์ ํ๋ก์ธ์ค๋ฅผ ์์คํ ์์ ์๋ณํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ๋ฌ pgpool์ด ์๋ ๊ฒฝ์ฐ ๊ฐ๊ฐ์ ๋ํ ์ ๋ณด๋ฅผ ์์งํด์ผ ํฉ๋๋ค.
์ธก์ ํญ๋ชฉ ์งํฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- CPU;
- ๊ธฐ์ต์ ์ฃผ๋ก ์์ฃผํฉ๋๋ค.
- IO - ๋ฐ๋์งํ๊ฒ๋ IOPS์ ๋๋ค.
- FileFd - ์ด๊ธฐ ๋ฐ ์ ํ;
- ์ฌ๊ฐํ ํ์ด์ง ์ค๋ฅ - ์ด๋ฅผ ํตํด ์ด๋ค ํ๋ก์ธ์ค๊ฐ ๊ต์ฒด๋๊ณ ์๋์ง ์ดํดํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ Docker์ ๋ชจ๋ ๋ชจ๋ํฐ๋ง์ ๋ฐฐํฌํ๊ณ Advisor๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉํธ๋ฆญ ๋ฐ์ดํฐ๋ฅผ ์์งํฉ๋๋ค. ๋ค๋ฅธ ์ปดํจํฐ์์๋ ํ๋ก์ธ์ค ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์์คํ ์๋น์ค, ์ํํธ์จ์ด ์คํ
๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์๋ ๊ณ ์ ํ ํน์ฑ์ด ์์ผ๋ฏ๋ก ํน์ ์ธก์ ํญ๋ชฉ ์งํฉ์ ๊ณจ๋ผ๋ด๋ ๊ฒ์ ์ด๋ ต์ต๋๋ค.
๋ฒ์ฉ ์ธํธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์์ฒญ๋ฅ ;
- ์ค์์ ์;
- ์ง์ฐ ์๊ฐ;
- ํฌํ.
์ด ์์ค์์ ๊ฐ์ฅ ๋์ ๋๋ ๋ชจ๋ํฐ๋ง ์ฌ๋ก๋ Nginx์ PostgreSQL์ ๋๋ค.
์ฐ๋ฆฌ ์์คํ ์์ ๊ฐ์ฅ ๋ง์ด ๋ก๋๋๋ ์๋น์ค๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค. ๊ณผ๊ฑฐ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ฌด์์ ํ๊ณ ์๋์ง ํ์ ํ๋ ๋ฐ ์ข ์ข ์ด๋ ค์์ ๊ฒช์์ต๋๋ค.
๋์คํฌ์ ๋ก๋๊ฐ ๋์ ๊ฒ์ ํ์ธํ์ง๋ง ๋๋ฆฐ ๋ก๊ทธ์๋ ์ค์ ๋ก ์๋ฌด ๊ฒ๋ ํ์๋์ง ์์์ต๋๋ค. ์ฟผ๋ฆฌ ํต๊ณ๋ฅผ ์์งํ๋ ๋ทฐ์ธ pg_stat_statements๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
์ด๊ฒ์ด ๊ด๋ฆฌ์์๊ฒ ํ์ํ ์ ๋ถ์ ๋๋ค.
์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์์ฒญ ํ๋์ ๋ํ ๊ทธ๋ํ๋ฅผ ์์ฑํฉ๋๋ค.
๋ชจ๋ ๊ฒ์ด ๊ฐ๋จํ๊ณ ๋ช ํํ๋ฉฐ ๊ฐ ์์ฒญ์๋ ๊ณ ์ ํ ์์์ด ์์ต๋๋ค.
๋๊ฐ์ด ๋์ ๋๋ ์๋ Nginx ๋ก๊ทธ์ ๋๋ค. ํ์ํ ๋ชฉ๋ก์์ ์ด๋ฅผ ๋ถ์ํ๊ฑฐ๋ ์ธ๊ธํ๋ ์ฌ๋์ด ๊ฑฐ์ ์๋ค๋ ๊ฒ์ ๋๋ผ์ด ์ผ์ด ์๋๋๋ค. ํ์ค ํ์์ ๊ทธ๋ค์ง ์ ์ตํ์ง ์์ผ๋ฏ๋ก ํ์ฅ์ด ํ์ํฉ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก request_time, upstream_response_time, body_bytes_sent, request_length, request_id๋ฅผ ์ถ๊ฐํ๊ณ ์๋ต ์๊ฐ๊ณผ ์ค๋ฅ ์๋ฅผ ํ์ํฉ๋๋ค.
์ฐ๋ฆฌ๋ ์๋ต ์๊ฐ๊ณผ ์ค๋ฅ ์์ ๋ํ ๊ทธ๋ํ๋ฅผ ์์ฑํฉ๋๋ค. ๊ธฐ์ตํ๋ค? ๋ด๊ฐ ์ฌ์ ๋ชฉํ์ ๋ํด ์ด์ผ๊ธฐํ๋์? ๋น ๋ฅด๊ณ ์ค๋ฅ ์์ด? ์ฐ๋ฆฌ๋ ์ด๋ฏธ ๋ ๊ฐ์ ์ฐจํธ๋ฅผ ํตํด ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋ค๋ฃจ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ทผ๋ฌด ์ค์ธ ๊ด๋ฆฌ์์๊ฒ ์ ํํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ฌ๊ฑด์ ์์ธ์ ์ ์ํ๊ฒ ์ ๊ฑฐํ๋ ๋ฐ ๋ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ๋จ์ ์์ต๋๋ค.
์ฌ๊ณ ํด๊ฒฐ
๋ฌธ์ ์๋ณ๋ถํฐ ํด๊ฒฐ๊น์ง์ ์ ์ฒด ํ๋ก์ธ์ค๋ ์ฌ๋ฌ ๋จ๊ณ๋ก ๋๋ ์ ์์ต๋๋ค.
- ๋ฌธ์ ์๋ณ;
- ์ง๋ฌด ๊ด๋ฆฌ์์๊ฒ ํต์ง;
- ์ฌ๊ฑด์ ๋ํ ๋์;
- ์์ธ ์ ๊ฑฐ.
์ด ์์ ์ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ์ํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ์๋ฆผ์ ๋ณด๋ด๋ ๋จ๊ณ์์ ๋ง์ ์๊ฐ์ ์ป์ ์ ์๋ค๋ฉด ์ด๋ค ๊ฒฝ์ฐ์๋ XNUMX๋ถ์ด ์์๋๋ฉฐ ํ์ ๋ฌธ์ ๋ ๊ฐ์ ์ ์ํด ๋จ์ํ ๊ฒฝ์๋์ง ์์ ๋ถ์ผ์ ๋๋ค.
๋น์ง ์ฅ๊ต์ ์ ํ๊ฐ ์ธ๋ ธ๋ค๊ณ ์์ํด ๋ด ์๋ค. ๊ทธ๋ ๋ฌด์์ ํ ๊ฒ์ธ๊ฐ? ์ง๋ฌธ์ ๋ํ ๋ต์ ์ฐพ์๋ณด์ธ์. ๋ฌด์์ด ๊ณ ์ฅ๋ฌ๊ณ , ์ด๋์ ๊ณ ์ฅ๋ฌ์ผ๋ฉฐ, ์ด๋ป๊ฒ ๋์ํด์ผ ํ ๊น์? ์ด๋ฌํ ์ง๋ฌธ์ ๋ตํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์๋ฆผ ํ ์คํธ์ ์ด ๋ชจ๋ ์ ๋ณด๋ฅผ ํฌํจํ๊ณ , ์ด ๋ฌธ์ ์ ๋์ํ๋ ๋ฐฉ๋ฒ, ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์์ค์ปฌ๋ ์ด์ ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ ์ํค ํ์ด์ง ๋งํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ ๋ ์์ง ์ ํ๋ฆฌ์ผ์ด์ ๋ ์ด์ด์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ํด ์๋ฌด ๋ง๋ ํ์ง ์์์ต๋๋ค. ์ํ๊น๊ฒ๋ ์ฐ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ง ์ธก์ ํญ๋ชฉ ์์ง์ ๊ตฌํํ์ง ์์ต๋๋ค. ์ด๋ฌํ ์์ค์ ์ ๋ณด์ ๋ํ ์ ์ผํ ์์ค๋ ๋ก๊ทธ์ ๋๋ค.
๋ช ๊ฐ์ง ์์ .
๋จผ์ ๊ตฌ์กฐํ๋ ๋ก๊ทธ๋ฅผ ์์ฑํฉ๋๋ค. ๋ฉ์์ง ํ ์คํธ์ ์ปจํ ์คํธ๋ฅผ ํฌํจํ ํ์๋ ์์ต๋๋ค. ์ด๋ก ์ธํด ๊ทธ๋ฃนํํ๊ณ ๋ถ์ํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. Logstash๋ ์ด ๋ชจ๋ ๊ฒ์ ์ ๊ทํํ๋ ๋ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค.
๋์งธ, ์ฌ๊ฐ๋ ์์ค์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ์ญ์์ค. ๊ฐ ์ธ์ด์๋ ๊ณ ์ ํ ํ์ค์ด ์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ ๋ ๋ค ๊ฐ์ง ์์ค์ ๊ตฌ๋ถํฉ๋๋ค.
- ์ค๋ฅ ์์;
- ํด๋ผ์ด์ธํธ ์ธก ์ค๋ฅ;
- ์ค์๋ ์ฐ๋ฆฌ ํธ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋์ ์์ง ์์ผ๋ฉฐ ์ํ์ ๊ฐ์ํ์ง๋ ์์ต๋๋ค.
- ์ค์๋ ์ฐ๋ฆฌ ํธ์ด๊ณ ์ฐ๋ฆฌ๋ ๋์ ์์ต๋๋ค.
์์ฝํ๊ฒ ์ต๋๋ค. ๋น์ฆ๋์ค ๋ก์ง์ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ํฐ๋ง์ ๊ตฌ์ถํด์ผ ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์์ฒด๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ํ๋งค๋, ์ ๊ท ์ฌ์ฉ์ ๋ฑ๋ก ์, ํ์ฌ ํ์ฑ ์ฌ์ฉ์ ์ ๋ฑ๊ณผ ๊ฐ์ ์งํ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ํด ๋ณด์ธ์.
์ ์ฒด ๋น์ฆ๋์ค๊ฐ ๋ธ๋ผ์ฐ์ ์ ๋ฒํผ ํ๋๋ผ๋ฉด ํด๋ฆญ์ด ์ ๋๋ก ์๋ํ๋์ง ๋ชจ๋ํฐ๋งํด์ผ ํฉ๋๋ค. ๋๋จธ์ง๋ ๋ชจ๋ ์ค์ํ์ง ์์ต๋๋ค.
์ด๊ฒ์ด ์๋ค๋ฉด ์ฐ๋ฆฌ๊ฐ ํ๋ ๊ฒ์ฒ๋ผ ์ ํ๋ฆฌ์ผ์ด์ ๋ก๊ทธ, Nginx ๋ก๊ทธ ๋ฑ์์ ๋ฐ๋ผ์ก์ ์ ์์ต๋๋ค. ๊ฐ๋ฅํ ํ ์ง์์์ ๊ฐ๊น์ด ์์ด์ผ ํฉ๋๋ค.
์ด์ ์ฒด์ ์ธก์ ํญ๋ชฉ์ ๋ฌผ๋ก ์ค์ํ์ง๋ง ๊ธฐ์ ์ ์ด์ ๊ด์ฌ์ด ์์ผ๋ฉฐ ์ด์ ๋ํ ๋๊ฐ๋ฅผ ๋ฐ์ง๋ ์์ต๋๋ค.
์ถ์ฒ : habr.com