Prometheus
๐ฟ Node Exporter
์ฃผ๋ก ์ด์ ์์คํ ์ปค๋์์ ์ค๋ ๋จธ์ ์์ค์ ๋ฉํธ๋ฆญ์ ๊ฒ์ํ๋ค.
- ์ฆ ๋จธ์ ์์ฒด๋ฅผ ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํ ๊ฒ
CPU ์์ง๊ธฐ
- ์ฃผ์ ๋ฉํธ๋ฆญ: node_cpu_seconds_total: ๊ฐ ๋ชจ๋์์ CPU๋ง๋ค ์ผ๋ง๋ ๋ง์ ์๊ฐ์ ์๋นํ๋์ง ๋ํ๋ด๋ ์นด์ดํฐ
- ๋ ์ด๋ธ: cpu, mode
- avg without(cpu, mode)(rate(node_cpu_seconds_total{mode=โidleโ}[1m])
- CPU๋ง๋ค ์ด๋น ์ ํด ์๊ฐ์ ๊ณ์ฐํ ๋ค์ ๋จธ์ ์์ ๋ชจ๋ CPU์ ํ๊ตฐ์ ๊ณ์ฐ
FileSystem ์์ง๊ธฐ
df ๋ช ๋ น์ด์์ ์ป์ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ง์ดํธ ๋ ํ์ผ ์์คํ ์ ๋ฉํธ๋ฆญ์ ์์ง
- โcollector.filesystem.ignored-mount-points์ โcollector.filesystem.ignored-fs-types๋ ํฌํจ๋๋ ํ์ผ ์์คํ ์ ์ ํํ ์ ์์
- ๋ฃจํธ ์ฌ์ฉ์๋ก Exporter๋ฅผ ์คํ์ํค์ง ์์์ ๋ง์ดํธ ์ง์ ์์ statfs ์์คํ ํธ์ถ์ ์ฌ์ฉํ ์ ์๋ ํ์ผ ์ ๊ทผ ๊ถํ ํ์ธ
- ๋ชจ๋ ๋ฉํธ๋ฆญ์ node_filesystem_ ์ ๋์ด๊ฐ ๋ถ์ด์์
- node_filesystem_avail_bytes, node_filesystem_free_bytes
- ์ ์: ์ผ๋ฐ ์ฌ์ฉ์๋ค์ด ์ด์ฉํ ์ ์๋ ๊ณต๊ฐ
- ์ฌ์ฉ๋ ๋์คํฌ ๊ณต๊ฐ์ ๊ณ์ฐํ๋ ๊ฒฝ์ฐ: node_filesystem_avail_bytes / node_filesystem_size_bytes
- ํ์: ์ ์ฒด inode ๊ฐ์์ ์ด๋ค ์ค ์ฌ์ฉ๊ฐ๋ฅํ inode ๊ฐ์ ์ด๋ฅผ ํตํด ํ์ผ ์์คํ ์ด ๊ฐ๊ณ ์๋ ๋๋ต์ ์ธ ํ์ผ ๊ฐ์๋ฅผ ์ ์ ์์(df -i)
diskstats ์์ง๊ธฐ
/proc/diskstats์์ ์ป์ ๋์คํฌ I/O ๋ฉํธ๋ฆญ์ ๊ฒ์ํ๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก โcollector.diskstats.ignored-device๋ ํํฐ์ ๊ณผ ๋ฃจํ๋ฐฑ ์ฅ์น๊ฐ์ด ์ค์ ๋์คํฌ๊ฐ ์๋ ๊ฒฝ์ฐ๋ ์ ์ธ
netdev ์์ง๊ธฐ
node_network_ ์ ๋์ด์ device ๋ ์ด๋ธ์ ์ฌ์ฉํด ๋คํธ์ํฌ ๋๋ฐ์ด์ค์ ๋ํ ๋ฉํธ๋ฆญ์ ๊ฒ์ํ๋ค.
- ์ฃผ์ ๋ฉํธ๋ฆญ
- node_network_receive_bytes_total
- node_network_transmit_bytes_total
- node_network_receive_packets_total
- node_network_transmit_packets_total
meminfo ์์ง๊ธฐ
/proc/meminfo์์ ์ป๋ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ จ ํ์ค ๋ฉํธ๋ฆญ์ ๊ฐ๊ณ ์์
- ์ฃผ์ ๋ฉํธ๋ฆญ
- node_memory_MemTotal_bytes: ๋จธ์ ์ ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ด๋
- ํ์ง๋ง ์ฌ์ฉ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ํ ๋ฉํธ๋ฆญ์ ์์
- ๋ค๋ฅธ ๋ฉํธ๋ฆญ์์ ์ฌ์ฉ๋์ง ์์ ๋ฉ๋ชจ๋ฆฌ ์๋ ๊ณ์ฐํด์ผํจ
- node_memory_MemFree_bytes: ์ฌ์ฉ๋์ง ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ด๋
- ๋ณด์ ํ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ฌ์ ๋ถ์ด๋ผ๋ ๊ฒ์ ์๋
- ์ด๋ก ์ ์ผ๋ก, ํ์ด์ง ์บ์๋ ์ฐ๊ธฐ ๋ฒํผ์ฒ๋ผ ๋ค์ ํ๋ณด๋ ์ ์์ง๋ง ์ฑ๋ฅ์ ๋ถ์ ์ ์ํฅ์ ์ค ์ ์์
- slab๊ณผ ํ์ด์ง ํ ์ด๋ธ๊ฐ์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด์ฉํ๋ ๋ค์ํ ์ปค๋ ๊ตฌ์กฐ๋ค๋ ์์
- node_memory_MemAvailable๋ ์ปค๋์์ ์ผ๋ง๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ค์ ๋ก ์ฌ์ฉํ ์ ์๋์ง์ ๋ํ ๊ฒ
- ๋ฉ๋ชจ๋ฆฌ ์๋ชจ๋ฅผ ๊ฐ์งํ๋๋ฐ ์ฌ์ฉ
- node_memory_MemTotal_bytes: ๋จธ์ ์ ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ด๋
hwmon ์์ง๊ธฐ
๋ฒ ์ด ๋ฉํ์ ๊ฒฝ์ฐ hwmon ์์ง๊ธฐ๋ ์จ๋, ํฌ ์๋ ๋ฑ node_hwmon_ ์ ๋์ด๋ฅผ ๊ฐ๋ ๋ฉํธ๋ฆญ์ ์ ๊ณต
stat ์์ง๊ธฐ
/proc/stat์์ ์ ๊ณตํ๋ ๋ค์ํ ์ฑ๊ฒฉ์ ๋ฉํธ๋ฆญ
- ์ฃผ์ ๋ฉํธ๋ฆญ
- node_boot_time_seconds: ์ปค๋์ด ์์๋ ์๊ฐ
- node_intr_total: ๋์ ๋ ํ๋์จ์ด ์ธํฐ๋ฝํธ ๊ฐ์
- ๋์ ์นด๋๋๋ฆฌํฐ ๋๋ฌธ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ
uname ์์ง๊ธฐ
node_uname_info ๊ฒ์
loadavg ์์ง๊ธฐ
๊ฐ๊ฐ 1๋ถ, 5๋ถ, 15๋ถ ๋ถํ ํ๊ท ์ ์๋ฏธํ๋ node_load1/5/15 ๋ฉํธ๋ฆญ ์ ๊ณต
- ๋ฆฌ๋ ์ค์์๋ ์คํ ๋๊ธฐ์ด์์ ๋๊ธฐ์ค์ธ ํ๋ก์ธ์ค์ ๊ฐ์ ๋ฟ ์๋๋ผ I/O๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ํ๋ก์ธ์ค๊ฐ์ด ์ธํฐ๋ฝํธ ํ ์ ์๋ ํ๋ก์ธ์ค๋ ์๋ฏธ
textfile ์์ง๊ธฐ
์ฐ๋ฆฌ๊ฐ ๋ง๋ ํ์ผ์์ ๊ฐ์ ธ์ด
- ์ปค๋์์ ์๊ฐ์ ธ์ด
๐ฟ Service Discovery
๋์ ํ๊ฒฝ์์ ์ถ๊ฐ๋๊ฑฐ๋ ์ญ์ ๋๋ ๋จธ์ ์ ๋ณด๋ฅผ ๋งค๋ฒ prometheus.yml์ ์ง์ ๋ฐ์ํ๋ ๊ฒ์ ๋งค์ฐ ์ฑ๊ฐ์ ์ผ์ด๋ค.
- ์ฆ ๋ณ๋์ ์ค์ ์์ด Consul, EC2, K8s ๊ฐ์ ๋ค์ํ ์๋น์ค ์์ค์์ ์ฐ๋์ ์ง์
- ์ง์ํ์ง ์ใด์ผ๋ฉด ๋ณ๋์ ํ์ผ๊ธฐ๋ง ์๋น์ค ๊ฒ์์ ํตํด ๊ด๋ จ ์ ๋ณด๋ฅผ ํ๋คํ ์ ์๋ค.
- ์ค์๋ธ์ด๋ ์ ฐํ์ฒ๋ผ ์ ์ ํ ํ์์ผ๋ก ๋จธ์ ๊ณผ ์๋น์ค ๋ชฉ๋ก์ ์์ฑํด์ฃผ๋ ํ๊ฒฝ ๊ตฌ์ฑ ๊ด๋ฆฌ์์คํ ์ ์ด์ฉํ
- ๋ฐ์ดํฐ ์์ค์์ ์ ๊ธฐ์ ์ผ๋ก ์คํ๋๋ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ
### ๋ฉ์ปค๋์ฆ
์๋น์ค ๊ฒ์์ ๋จธ์ ๋ชฉ๋ก์ ์ ๊ณตํ๊ฑฐ๋ ์ด๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๊ฒ๋ง์ด ์๋๋ผ ์์คํ ์ ๋ฐ์ ๊ฑธ์ณ ๋ํ๋ ์ข ๋ ์ผ๋ฐ์ ์ธ ๊ด์ฌ์ฌํญ ๊ฐ์ ๊ฒ
- ๋ฐ๋ผ์ ๋จธ์ ๋ค์ด ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ ์ด๋ค ์๋ช ์ฃผ๊ธฐ๋ก ์ด์๋๋์ง์ ๋ํ ๊ท์น๋ ํ๋ณด
- ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํด์ผ ํ๋ค.
- ๋ฉํ๋ฐ์ดํฐ: ์๋น์ค ์ด๋ฆ, ์ค๋ช ์๋น์ค ๋ณด์ ํ, ๊ตฌ์กฐํ๋ ํ๊ทธ๋ฑ
- ๋ฉํ๋ฐ์ดํฐ๋ ๋์ ๋ ์ด๋ธ๋ก ๋ณํ๋ ์ ์์ผ๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก ๋ฉํ๋ฐ์ดํฐ๊ฐ ๋ง์์๋ก ๋ ์ข๋ค.
- ์ํฅ์: ์ปจ์ค์ฒ๋ผ ์๋น์ค ์ธ์คํด์ค๋ฅผ ๋ฑ๋กํ ๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์์ฑํด ์๋น์ค ๊ฒ์ ๋ฉ์ปค๋์ฆ์ ํจ๊ป ๋ฑ๋กํ๋ ๋ฐฉ์
- ์๋น์ค ์คํ ์, ๋๊ธฐํ๋ฅผ ์ํ ๋ณ๋์ ์ ์ถฉ ๊ณผ์ ์ด ํ์ํ ์ ์์
- ๋ฐ๋ผ์ App ์ธ์คํด์ค๊ฐ ๋ฑ๋ก๋๊ธฐ ์ ์ ์ค๋จ๋ ๊ฒฝ์ฐ์ ๊ฐ์ ์ํฉ์ ๊ฐ์ง
- ํํฅ์: EC2 ์ฒ๋ผ ์๋น์ค ๊ฒ์ ๋ฉ์ปค๋์ฆ ์ค์ค๋ก ๊ตฌ์ฑ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์ด๋ค ํญ๋ชฉ์ด ์์ด์ผ ํ๋์ง ํ์
ํ๊ณ ์ ๊ทผํ๋ ๋ฐฉ์
- ์ด๋ค ์๋น์ค๊ฐ ์คํ๋ ์์ ์ด์์ง๋ง ์ค์ ๋ก ์คํ๋์ง ์์ ๊ฒฝ์ฐ๋ฅผ ์ฝ๊ฒ ๊ฐ์ง