VPS 모니터링 완벽 가이드 2026: Uptime Kuma + Netdata로 24시간 서버 감시

VPS 모니터링, 왜 필요한가?

VPS를 설정하고 서비스를 배포했다면, 다음으로 해야 할 일은 모니터링이다. 서버가 다운되었을 때 사용자가 알려주는 상황 — 누구나 겪고 싶지 않은 악몽이다. 이 가이드에서는 무료 도구만으로 VPS를 24시간 감시하는 완벽한 모니터링 시스템을 구축하는 방법을 설명한다.

필자는 Vultr, DigitalOcean, Hetzner 세 곳의 VPS에서 모니터링 스택을 운영하며 검증한 설정을 공유한다. 모든 도구는 오픈소스이며, VPS 1대면 충분하다.


1. 모니터링 스택 아키텍처

완벽한 VPS 모니터링을 위해 두 가지 도구를 조합한다:

도구 역할 비용 설치 난이도
Uptime Kuma 외부 업타임 모니터링 (HTTP/TCP/Ping) 무료 (오픈소스) 쉬움 (Docker 1줄)
Netdata 서버 내부 메트릭 (CPU/RAM/Disk/Network) 무료 (오픈소스) 매우 쉬움 (원라인 설치)

Uptime Kuma는 서비스가 살아있는지 외부에서 확인하고, Netdata는 서버 내부 상태를 실시간으로 보여준다. 둘을 함께 쓰면 “서비스 다운”과 “서버 과부하”를 동시에 감지할 수 있다.


2. VPS 준비: 추천 스펙

모니터링 스택은 가벼운 편이지만, 24시간 실행되므로 안정적인 VPS가 필요하다.

추천 VPS (모니터링 서버용)

VPS 스펙 월 비용 특징
Vultr 1 vCPU / 1GB / 25GB SSD $6/월 서울 리전, $100 크레딧
DigitalOcean 1 vCPU / 1GB / 25GB SSD $6/월 글로벌 리전, $200 크레딧
Hetzner 1 vCPU / 2GB / 20GB €3.29/월 압도적 가성비

: 모니터링 서버는 감시 대상 서버와 다른 provider에 두는 것이 좋다. 같은 provider가 장애 나면 모니터링도 함께 죽기 때문이다.

아직 VPS가 없다면 Vultr에서 $100 크레딧으로 시작하는 것을 추천한다. Vultr WordPress 배포 튜토리얼도 참고하자.


3. Uptime Kuma 설치 (Docker)

Uptime Kuma는 self-hosted 업타임 모니터링 도구다. UptimeRobot의 셀프 호스팅 버전이라고 생각하면 된다.

3.1 Docker 설치


curl -fsSL https://get.docker.com | sh
sudo systemctl enable docker
sudo systemctl start docker

3.2 Uptime Kuma 컨테이너 실행

docker run -d \
  --restart=always \
  -p 3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:1

3.3 첫 모니터 추가

브라우저에서 http://[VPS-IP]:3001로 접속하면 Uptime Kuma 대시보드가 나온다.

  1. Monitor Type: HTTP(s) 선택
  2. Friendly Name: 내 웹사이트
  3. URL: https://example.com
  4. Heartbeat Interval: 60초 (1분마다 체크)
  5. Retries: 2 (2번 연속 실패 시 다운으로 간주)

“Save”를 누르면 즉시 모니터링이 시작된다.

3.4 알림 설정

Uptime Kuma는 90+ 알림 채널을 지원한다:
Telegram: 봇 생성 → 토크 입력 → 채팅 ID 입력
Discord: Webhook URL 입력
Email: SMTP 설정 (Gmail App Password 사용)
Slack: Webhook URL 입력

추천은 Telegram이다. 설정이 가장 간단하고, 푸시 알림이 빠르다.


4. Netdata 설치 (원라인)

Netdata는 서버 내부 메트릭을 실시간으로 시각화하는 도구다. 설치가 정말 간단하다.

4.1 자동 설치 스크립트

wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh
sh /tmp/netdata-kickstart.sh --non-interactive

설치가 끝나면 http://[VPS-IP]:19999로 접속한다.

4.2 핵심 대시보드

Netdata가 보여주는 주요 메트릭:

메트릭 설명 주의 임계값
CPU 사용률 프로세서 부하 지속 80%+ 위험
RAM 사용률 메모리 사용량 90%+ 위험 (OOM 위험)
Disk I/O 디스크 읽기/쓰기 속도 비정상적 스파이크 확인
Network 트래픽 인바운드/아웃바운드 대역폭 한도 확인
Disk 공간 저장공간 사용량 85%+ 위험

4.3 알림 설정

Netdata는 기본적으로 이메일/Slack/Discord/Telegram 알림을 지원한다. /etc/netdata/health_alarm_notify.conf를 편집:

sudo /etc/netdata/edit-config health_alarm_notify.conf

Telegram 알림을 설정하려면:

SEND_TELEGRAM="YES"
TELEGRAM_BOT_TOKEN="your-bot-token"
DEFAULT_RECIPIENT_TELEGRAM="your-chat-id"

변경 후 Netdata 재시작:

sudo systemctl restart netdata

5. 모니터링 대시보드 통합

Uptime Kuma와 Netdata를 하나의 대시보드에서 보고 싶다면 Grafana를 추가할 수 있다. 하지만 초보자에게는 Uptime Kuma + Netdata 조합만으로 충분하다.

상태 페이지 (Status Page)

Uptime Kuma의 Status Pages 기능을 사용하면 공개용 상태 페이지를 만들 수 있다:

  1. “Status Pages” → “New Status Page”
  2. 모니터 추가 (웹사이트, API, DB 등)
  3. 커스텀 도메인 연결 (예: status.example.com)

사용자에게 서비스 상태를 투명하게 공개할 수 있다.


6. 비용 최적화 팁

6.1 Hetzner에서 모니터링 서버 운영

모니터링 서버는 트래픽이 적으므로 Hetzner의 가장 저렴한 CX11(€3.29/월)으로 충분하다. 월 $4도 안 되는 비용으로 24시간 모니터링이 가능하다.

Hetzner Cloud 가이드는 여기를 참고.

6.2 Vultr $100 크레딧 활용

Vultr 신규 가입 시 $100 크레딧을 받을 수 있다. $6/월 기준 16개월 무료로 모니터링 서버를 운영할 수 있다.

6.3 여러 서버 모니터링

감시 대상이 여러 대라면:
– 각 서버에 Netdata Agent 설치
– 중앙 Uptime Kuma에서 모든 서버 HTTP 모니터 추가
– Netdata Cloud (무료)로 여러 서버 메트릭 통합


7. 보안 주의사항

모니터링 도구의 웹 인터페이스를 그대로 노출하면 보안 위험이 있다:

7.1 Uptime Kuma 보안

  • 관리자 비밀번호 반드시 설정
  • Cloudflare Tunnel 또는 Nginx Reverse Proxy + Basic Auth 사용
  • 포트 3001을 공개하지 말고, 도메인 + SSL로 접근

7.2 Netdata 보안

Netdata는 기본적으로 모든 IP에서 접근 가능하다. 반드시 제한:

sudo /etc/netdata/edit-config netdata.conf
[web]
    bind to = 127.0.0.1

Nginx Reverse Proxy 뒤에 두고 Basic Auth를 걸거나, Cloudflare Access로 보호한다.

7.3 방화벽 설정


sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp       # SSH
sudo ufw allow 80/tcp       # HTTP
sudo ufw allow 443/tcp      # HTTPS
sudo ufw enable

VPS 보안 전체 가이드는 VPS 보안 완벽 가이드를 참고.


8. FAQ

Q. Uptime Kuma vs UptimeRobot, 뭐가 다르나요?

UptimeRobot은 클라우드 서비스(무료 50개 모니터), Uptime Kuma는 셀프 호스팅입니다. Uptime Kuma의 장점은 모니터 수 제한 없음, 데이터 자체 보관, 커스텀 알림 조건입니다. 반면 관리가 필요 없다면 UptimeRobot 무료 플랜도 좋은 선택입니다.

Q. Netdata는 서버 성능에 영향을 주나요?

Netdata는 매우 가볍습니다. CPU 1-2%, RAM 50-100MB 수준입니다. 모니터링 오버헤드가 체감되지 않습니다.

Q. 여러 VPS를 한 곳에서 모니터링할 수 있나요?

네. 중앙 Uptime Kuma에서 각 VPS의 HTTP 엔드포인트를 모니터로 추가하면 됩니다. 내부 메트릭은 Netdata Cloud(무료)로 통합할 수 있습니다.

Q. 모니터링 서버가 다운되면 어떡하죠?

이중화하는 것이 정석이지만, 비용이 발생합니다. 최소한 Uptime Kuma 컨테이너에 --restart=always를 설정하고, VPS 자체를 모니터링하기 위한 보조 체크(예: 무료 UptimeRobot 1개)를 병행하는 것을 추천합니다.


요약

단계 도구 시간 비용
VPS 준비 Vultr / DO / Hetzner 5분 $4-6/월
Uptime Kuma 설치 Docker 10분 무료
Netdata 설치 원라인 스크립트 5분 무료
알림 설정 Telegram 10분 무료
상태 페이지 Uptime Kuma 15분 무료

총 설치 시간 45분, 월 비용 $4-6로 프로 수준의 모니터링 시스템을 구축할 수 있다.

다음 단계


어필리에이트 공개문구: 이 글의 링크를 통해 Vultr ($100 크레딧), DigitalOcean ($200 크레딧)에 가입하시면 크레딧을 받으실 수 있습니다. 추가 비용은 없습니다.

관련 글

📎 이 영상의 발표 자료

누구나 무료로 다운로드할 수 있습니다.