Cloudflare Workers로 만드는 서버 상태 모니터링 도구

서버가 살아 있는지 확인하는 모니터링 서버가 먼저 죽는 상황을 몇 번 겪고 나서, 서버리스로 하는 편이 낫겠다고 생각했다.

그래서 바이브 코딩으로 Cloudflare Workers 기반 서버 상태 모니터링 도구를 만들었다.

👉 코드: https://gitlab.com/mytory/mytory-monitor

1. 소개

목적은 개인 용도의 간단한 모니터링이다.

죽었는지 여부만 판단하고(살았다고 판단하는 상태 코드는 설정할 수 있음), 알림은 슬랙으로 받는다.

대규모 모니터링 가능성은 모르겠다. 나는 현재 4개를 등록해서 받고 있다.

2. Cloudflare Workers로 등록하는 방법

커맨드라인에서 작업을 해야 한다.

2-1. GitLab 저장소 clone

git clone https://gitlab.com/mytory/mytory-monitor.git
cd mytory-monitor

2-2. wrangler 소개 및 설치

wrangler는 Cloudflare Workers의 공식 CLI 도구다. 배포, 환경변수 관리, 로그 확인을 전부 이걸로 한다.

Node.js 18 이상이면 문제없다.

npm install -g wrangler

Cloudflare 계정에 로그인:

wrangler login

브라우저가 열리면서 인증된다.

2-3. config 설정 후 deploy

1) 설정 파일 만들기

cp src/config.sample.js src/config.js

config.js에서 다음 항목들을 수정한다.

config.js는 Git로 추적하지 않고 있으니 안심하라.

2) Slack Webhook URL 설정 (Secret)

wrangler secret put SLACK_WEBHOOK_URL

프롬프트가 뜨면 Slack Webhook URL을 입력한다. 이 값은 코드나 Git 저장소에 남지 않는다.

Slack Webhook URL은 여기서 만든다.

3) 배포

wrangler deploy

3. 잘 deploy됐는지 확인하는 방법

서버를 다운시키고 1분 기다려서 알림을 받아 보면 가장 확실할 테지만, Cloudflare 대시보드에서도 확인할 수 있다.

Workers 애플리케이션 확인

  1. Cloudflare Dashboard 접속
  2. Build > Compute & AI > Workers & Pages
  3. mytory-monitor 클릭

Metrics 탭 – Subrequests 확인

Metrics → Subrequests

여기서 실제 모니터링 요청이 발생하는 걸 확인할 수 있다.

Observability 탭 – Cron 작동 여부

Observability 탭을 보면:

Cron이 안 돌고 있으면 여기서 바로 드러난다.

워커 도메인은 무엇?

클라우드플레어에 들어가면 도메인도 준다. 아래와 같은 형식이다.

https://mytory-monitor.your-name.workers.dev

우리 워커에서 이 도메인은 실제로는 쓸모가 없다. 그냥 간단한 응답만 하게 만들어 뒀으니 신경쓸 필요 없다.

실제 모니터링은 Cron Trigger로 동작한다.

마무리

이 도구는 단순하면서 신뢰할 수 있는 모니터링이 목적이다.

카테고리

17년차 풀스택 웹 개발자 Mytory입니다

웹 개발에서도 중요한 것은 개념입니다.
이 블로그에는 제가 개발하며 익힌 개념들을 정리합니다.

워드프레스를 오래 다뤄 왔고 강의도 두 편 찍었습니다.
– 인프런 “워드프레스 제대로 개발하기 어드민 편, 클라이언트 편
– 클래스101 “누구나 할 수 있는 워드프레스 홈페이지 만들기 – 기획부터 출시까지 한 방에 OK

유튜브 채널에 워드프레스 관련 팁들을 올리고 있습니다.

👉 소개 더 보기

대표글

댓글 남기기