ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
๐Ÿ—๏ธ Building my home server: Part 9
Dev.toDev.to
Infrastructure

๋ฐ์ดํ„ฐ ํฌํŠธ ์—†๋Š” UPS๋ฅผ ์œ„ํ•œ Router Ping ๊ธฐ๋ฐ˜ Graceful Shutdown ๊ตฌํ˜„

๐Ÿ—๏ธ Building my home server: Part 9

denesbeck2026๋…„ 4์›” 12์ผ8๋ถ„intermediate

Context

๋ฐ์ดํ„ฐ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์—†๋Š” Consumer-grade UPS ์‚ฌ์šฉ์œผ๋กœ ์ธํ•ด ์ „์› ์ฐจ๋‹จ ์‹œ ์„œ๋ฒ„์˜ Graceful Shutdown ๋ถˆ๊ฐ€ ์ƒํ™ฉ ๋ฐœ์ƒ. ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ์ „์› ์ข…๋ฃŒ์— ๋”ฐ๋ฅธ Filesystem ์†์ƒ ๋ฐ Docker Container ๋ฐ์ดํ„ฐ ์œ ์‹ค ์œ„ํ—˜์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ž๋™ํ™” ๊ธฐ์ œ ํ•„์š”.

Technical Solution

  • Router์˜ ์ „์› ์˜์กด์„ฑ์„ ์ด์šฉํ•œ Network-based Detection ์ฒด๊ณ„ ์„ค๊ณ„
  • 30์ดˆ ๊ฐ„๊ฒฉ์˜ Ping ์ „์†ก๊ณผ 10ํšŒ ์—ฐ์† ์‹คํŒจ ์‹œ 5๋ถ„ ๋‚ด ์ข…๋ฃŒํ•˜๋Š” Threshold ๊ธฐ๋ฐ˜ ์ƒํƒœ ํŒ๋ณ„ ๋กœ์ง ๊ตฌํ˜„ -- Router Reboot์™€ Power Outage ๊ตฌ๋ถ„์„ ์œ„ํ•ด 5๋ถ„์ด๋ผ๋Š” ์‹œ๊ฐ„์  ์ž„๊ณ„์น˜๋ฅผ ์„ค์ •ํ•œ Trade-off ์ ์šฉ
  • node-exporter์˜ Textfile Collector๋ฅผ ํ†ตํ•œ Prometheus ๋ฉ”ํŠธ๋ฆญ ๋…ธ์ถœ๋กœ ๋ณ„๋„ Exporter ์—†๋Š” ๊ด€์ธก์„ฑ ํ™•๋ณด
  • Ansible Playbook์„ ํ†ตํ•œ ์Šคํฌ๋ฆฝํŠธ ๋ฐฐํฌ ๋ฐ @reboot Cron Job ๋“ฑ๋ก์œผ๋กœ ์„ค์ • ์ž๋™ํ™” ๋ฐ ๋ณต๊ตฌ ์ฒด๊ณ„ ๊ตฌ์ถ•

- ํ•˜๋“œ์›จ์–ด ์ œ์•ฝ ์‹œ ์ฃผ๋ณ€ ์žฅ์น˜์˜ ์ƒํƒœ ๋ณ€ํ™”๋ฅผ ํ†ตํ•œ ๊ฐ„์ ‘ ํƒ์ง€ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ๊ฒ€ํ†  - ์ผ์‹œ์  ์žฅ์• ์™€ ์น˜๋ช…์  ์žฅ์• ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ์ ์ ˆํ•œ Retry ํšŸ์ˆ˜ ๋ฐ Timeout ์„ค์ • - ์ถ”๊ฐ€ ์„œ๋น„์Šค ์„ค์น˜ ์—†์ด ๊ธฐ์กด Monitoring Agent์˜ ํ™•์žฅ ๊ธฐ๋Šฅ(Textfile Collector ๋“ฑ) ํ™œ์šฉ ๋ฐฉ์•ˆ ๊ณ ๋ ค

์›๋ฌธ ์ฝ๊ธฐ