떠 있는 섬 위에서 실시간 그래프·게이지·상태등 홀로그램과 보호막을 바라보는 사람 - 업타임 쿠마와 넷데이터로 서버를 24시간 모니터링하는 모습을 표현한 일러스트

서버가 죽으면, 내가 자고 있어도 폰이 먼저 압니다 (업타임 쿠마 + 넷데이터)

땅(서버)을 샀고, 직원(서비스)도 고용했어요.

그런데 문득 무서운 생각이 들더라고요.

이 직원들, 지금 일하고 있는 거 맞아?


저는 교대근무를 해요. 출근 시간이 불규칙하고, 새벽에 자는 날도 많아요.

제가 자고 있거나 일하러 나가 있는 그 순간에 서버가 조용히 죽으면?

저는 몰라요. 며칠 뒤에야 “어, 블로그 왜 안 열려?” 하고 알게 되겠죠.

그건 너무 늦어요.

그래서 직원을 두 명 더 고용했습니다. 당직 근무자관제실장이요.


결과부터. 지금은 이렇게 돼요

서버가 죽으면, 제 폰 텔레그램으로 즉시 알림이 옵니다.

자다가도 알아요. 출근길에도 알아요.

업타임 쿠마가 서버 다운을 감지해 텔레그램으로 보낸 Down/Up 알림 화면 - 서버 모니터링 자동 알림
서버가 죽으면 이렇게 폰으로 바로 날아와요. 내가 자도 당직 근무자는 안 자거든요.

빨간불(Down)이 뜨면 “죽었다”, 초록불(Up)이 뜨면 “다시 살았다”예요.

위 사진을 보면 다운됐다가 1분 만에 복구된 게 그대로 찍혀 있어요.

그리고 궁금할 때 폰을 열면, 내 서버 속이 실시간으로 보여요.

CPU가 몇 %인지, 메모리가 얼마나 찼는지, 지금 뭐가 자원을 먹고 있는지.

넷데이터로 본 실시간 CPU·메모리·네트워크 사용량 대시보드 - 오라클 무료 서버 자원 모니터링
관제실장이 보여주는 내 서버 속. CPU 4.82%, 아주 한가해요.

이걸 어떻게 만들었는지, 지금부터 풀어볼게요.


새 직원 두 명 : 당직 근무자와 관제실장

2편에서 제가 서비스를 직원에 비유했던 거 기억하세요?

이번 두 명도 역할이 딱 갈려요.

업타임 쿠마 = 당직 근무자 “살아있냐, 죽었냐”를 감시해요. 서버가 죽으면 곧장 저를 깨웁니다.

넷데이터 = 관제실장 “왜 아픈지”를 들여다봐요. CPU·메모리·디스크 상태를 실시간으로 짚어줍니다.

※ 모니터링 : 서버가 잘 돌아가는지 24시간 대신 지켜봐 주는 것.

당직은 “불이야!” 하고 소리치는 사람이고, 관제실장은 “어디서 불났는지” 알려주는 사람이에요.

둘은 역할이 달라서, 한 명만 있으면 반쪽짜리예요.

업타임 쿠마 vs 넷데이터
한 명은 깨우고, 한 명은 들여다본다 — 역할이 다른 두 직원
🐻 업타임 쿠마
당직 근무자
“살아있냐, 죽었냐”
  • 계속 노크해서 생존 확인
  • 죽으면 텔레그램으로 즉시 알림
  • 가동률·응답 시간 기록
불 났을 때 “불이야!” 외치는 사람
📊 넷데이터
관제실장
“왜 아픈지”
  • CPU·메모리·디스크 실시간
  • 매초 갱신되는 그래프
  • 느려진 원인 추적
“어디서 불났는지” 알려주는 사람
한 명만 있으면 반쪽 — 깨우는 사람과 들여다보는 사람은 따로다

당직 근무자, 업타임 쿠마가 하는 일

업타임 쿠마는 정말 단순해요. 그래서 좋아요.

내가 감시할 주소(내 블로그, n8n, 다른 서비스들)를 등록해두면,

쿠마가 계속 노크를 해요. “살아있어? 살아있어?”

대답이 없으면 → 그 즉시 텔레그램으로 알림.

게다가 이런 것도 기록해줘요.

  • 가동률(uptime %) : 그동안 몇 % 살아있었는지
  • 응답 시간 : 페이지가 느려지고 있진 않은지
  • 상태 페이지 : “지금 다 정상”을 한 화면으로

※ 가동률 : 전체 시간 중 서버가 정상으로 살아있던 비율. 100%면 그동안 한 번도 안 죽었다는 뜻이에요. (99.9%만 돼도 한 달에 약 43분은 죽은 셈이고요.)

업타임 쿠마의 응답 시간 그래프와 온라인/오프라인 상태 기록 - 서버 가동 현황 모니터링
응답 시간이 들쭉날쭉해도 대부분 정상. 빨간 줄 하나가 그날의 짧은 다운이에요.

그런데 가동률 100%, 어떻게요?

사실 처음엔 위 사진처럼 가끔 다운(timeout) 기록이 찍혔어요.

그런데 2편에서 정문 경비(클라우드플레어)를 세운 뒤로는, 가동률이 100%로 유지되고 있어요.

왜 그런지는 아래 “공격은 정문에서 막힌다”에서 풀게요.

폰에 앱처럼 설치해서 봐요 (PWA)

업타임 쿠마는 플레이스토어에 공식 앱이 없어요.

근데 폰 브라우저로 들어가서 앱처럼 설치할 수 있어요.

※ PWA : 웹사이트를 앱처럼 폰 홈 화면에 설치해 쓰는 기술. 플레이스토어·앱스토어 없이 바로 깔려요.

방법은 간단해요. 폰 브라우저로 쿠마에 접속한 뒤, **오른쪽 위 점 세 개(⋮) 메뉴 → “홈 화면에 추가”**를 누르면 설치 버튼이 떠요.

업타임 쿠마를 폰 홈 화면에 추가하는 PWA 설치 화면 - 플레이스토어 없이 앱처럼 사용
‘홈 화면에 추가’를 누르면 플레이스토어 없이도 앱처럼 설치 가능해요.

저는 브라우저보다 이 앱(PWA)을 써요. 이유는 단순해요.

브라우저로 들어가면 매번 주소 치고 로그인을 해야 하거든요.

근데 앱으로 깔아두면 아이콘만 누르면 바로 떠요. 로그인도 유지되고요.

자다 깨서 비몽사몽 확인할 땐, 이 한 번의 차이가 꽤 커요.

설치법은 따로 안 다룰게요. 환경마다 다르고, 솔직히 저도 막히면 AI한테 물어봤거든요.

이 글은 “어떻게 까냐”가 아니라 **”뭘, 왜 두냐”**에 대한 이야기예요.

자세한 건 업타임 쿠마 공식 깃허브에 다 나와 있어요.


관제실장, 넷데이터가 하는 일

쿠마가 “죽었다!”만 알려준다면, 넷데이터는 속을 다 보여줘요.

매초 갱신되는 그래프로 CPU·메모리·디스크·네트워크를 실시간으로 보여줍니다.

“어제 새벽에 왜 느렸지?” 싶을 때, 그 시간대를 짚어보면 범인이 보여요.

저는 오라클 무료 서버라 자원이 넉넉하지 않거든요. (1편에서 2 OCPU / 12GB로 사양이 줄었죠.)

그래서 **”뭐가 메모리를 야금야금 먹고 있나”**를 보는 게 생각보다 중요하더라고요.

근데 막상 열어보면 (이미지 2처럼) CPU 5% 안팎, 메모리 20%대로 아주 한가해요.

오라클 서버가 생각보다 튼튼하더라고요.

넷데이터 공식 사이트는 netdata.cloud, 오픈소스 코드는 깃허브에 있어요.

솔직히 말하면, 넷데이터는 좀 어려워요

여기서 솔직한 얘기 하나.

넷데이터는 보여주는 게 너무 많아요. 화면이 그래프로 가득 차요.

저 같은 비개발자 입장에선, 솔직히 아직 뭘 봐야 할지 잘 모르겠어요.

CPU랑 메모리 정도만 겨우 보는 수준이에요.

그래서 앞으로는 그라파나(Grafana) + 프로메테우스(Prometheus) 조합으로 갈아탈 생각이에요.

※ 그라파나+프로메테우스 : 내가 보고 싶은 지표만 골라서 예쁜 대시보드로 직접 만드는 조합. 초기 설정은 넷데이터보다 훨씬 어려워요.

초기 세팅은 분명 골치 아플 거예요.

근데 그 과정에서 공부가 많이 될 것 같아서 오히려 기대돼요. (이것도 다음에 글로 풀게요.)

알람은 걸어뒀는데, 아직 한 번도 안 울렸어요

넷데이터에 “자원이 위험하면 알려줘” 알람을 걸어는 뒀어요.

근데 지금까지 단 한 번도 안 울렸어요.

당직(쿠마)은 가끔 깨우는데, 관제실장(넷데이터) 알람은 잠잠해요.

서버가 그만큼 튼튼하다는 뜻이라, 기분 나쁜 침묵은 아니에요.


공격은 정문(클라우드플레어)에서 막혀요

여기서 가동률 100%의 비밀을 풀게요.

내 블로그에는 매일 이상한 노크가 들어와요. 로그인 파일을 찔러보거나, 비밀 설정 파일(.env)을 훔쳐보려는 시도들요.

근데 이게 내 서버까지 오지도 못해요.

2편의 정문 경비, 클라우드플레어가 입구에서 막아버리거든요.

클라우드플레어 보안 규칙으로 XML-RPC 공격과 .env 스캔을 차단한 화면 - 서버 도달 전 공격 차단
공격은 정문(클라우드플레어)에서 막혀요. 722건, 1,010건 — 내 서버까지 오지도 못했어요.

사진을 보면, 두 개의 규칙이 각각 722건, 1,010건을 막았어요.

  • XML-RPC(워드프레스 공격 단골 통로) 차단
  • .env(비밀 설정 파일) 스캔 차단

이 공격들은 전부 정문에서 끊겨서, 당직(쿠마)도 관제실장(넷데이터)도 깨울 일이 없었어요.

좋은 경비를 두면, 안에 있는 직원들이 편해지는 거죠.

내 서버를 지키는 3겹 방어선
막고 → 알리고 → 들여다본다
🛡️
1. 클라우드플레어 — 정문 경비
공격을 입구에서 막는다. 서버까지 오지도 못함
XML-RPC·.env 스캔 등 차단 → “안까지 안 들어옴”
🐻
2. 업타임 쿠마 — 당직 근무자
그래도 죽으면 즉시 깨운다
텔레그램 알림 → “죽었다!”
📊
3. 넷데이터 — 관제실장
폰으로 속을 들여다본다
CPU·메모리 실시간 → “왜?”
좋은 경비를 두면, 안에 있는 직원들이 편해진다

왜 다 같이 쓰냐고요? 막고 → 알리고 → 들여다본다

정리하면 이래요.

  • 클라우드플레어(정문 경비) : 공격을 입구에서 막아요. → 안까지 안 들어옴
  • 업타임 쿠마(당직 근무자) : 그래도 죽으면 즉시 깨워요. → “죽었다!”
  • 넷데이터(관제실장) : 폰으로 속을 들여다봐요. → “왜?”

막는 사람, 깨우는 사람, 진단하는 사람이 따로 있는 거예요.

이 조합이 ITNOPER가 굴러가는 방식이에요.


솔직한 단점 (직접 겪은 것)

좋은 얘기만 하면 광고죠. 부딪힌 것도 적어둘게요.

1) 처음엔 알림이 좀 시끄러워요. 잠깐 끊긴 것까지 다 알려주면, 새벽에 폰이 울려서 깨요. 그래서 “몇 초 이상, 몇 번 이상 실패했을 때만 알림” 같은 조건을 손봐야 잠을 자요.

2) 넷데이터는 정보가 너무 많아요. 앞에서 말했듯, 비개발자한텐 화면이 부담스러워요. 가볍게 “지금 서버 괜찮나?” 보기엔 좋은데, 깊이 파고들려면 공부가 필요해요.

3) 무료의 한계. 공짜로 쓰는 만큼 기능이나 보관 기간에 선이 있어요. 저처럼 1인 블로그엔 차고 넘치지만, 규모가 커지면 다른 걸 봐야 할 수도 있어요.


마무리 — 이게 ITNOPER의 차별점이에요

남의 땅(임대 호스팅)에 살면, 서버가 죽어도 남이 알아서 해줘요. 대신 속은 못 봐요.

내 땅이라 내가 직접 지켜봐요. 그게 번거롭지만, 그래서 다 보여요.

정문 경비(클라우드플레어), 당직 근무자(쿠마), 관제실장(넷데이터)이 24시간 제 서버를 지키는 동안,

저는 자고, 출근하고, 아내랑 저녁 먹어요.

직원을 공짜로 부려먹는 거죠. AI한테 뺏기지 말고, AI를 부려먹는 사람이 되자 — 그 얘기랑 똑같아요.


다음 편 예고.

지금까진 내 서버 안에 감시자를 뒀어요.

근데 서버 자체가 통째로 죽으면? 내 안의 당직도 같이 죽어서 알림을 못 보내요.

그래서 밖에서 지켜봐 주는 무료 서비스가 따로 있어요.

다음 편은 UptimeRobot vs Better Stack — 바깥에 세워두는 또 다른 당직, 둘을 직접 비교해볼게요.

글쓴이 · itnoper

IT 전공했지만 그 길을 떠난 지 10년, 지금은 현장에서 6년째 일하고 있어요. 개발자는 아니에요. AI한테 밀려나지 않으려고, 남의 땅 말고 내 땅에 서버 하나 직접 굴리면서 배운 걸 기록합니다. 소개 →

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다