"상상할 수 있다면 만들 수 있다."
— 윌리엄 아서 워드 (William Arthur Ward, 작가)🎯 오늘의 학습 목표- Uptime Kuma를 설치하고 n8n 헬스체크 모니터를 추가할 수 있다.
- Error Trigger 워크플로우를 만들어 Slack으로 오류 알림을 받을 수 있다.
- 서버 리소스 모니터링 스크립트를 작성하고 cron으로 자동 실행할 수 있다.
모니터링해야 할 3가지가용성: n8n 자체가 살아있는가?
워크플로우 실패: 특정 워크플로우가 오류 나진 않았나?
서버 리소스: CPU, 메모리, 디스크가 한계에 가까워지진 않았나?
Uptime Kuma 설치 — docker-compose.yml에 추가
yaml
uptime-kuma:
image: louislam/uptime-kuma:1
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- ./data/uptime-kuma:/app/data
Uptime Kuma 실행
bash
docker compose up -d uptime-kuma
ufw allow 3001
💡 보안 강화를 위해 Uptime Kuma도 Nginx 뒤에 두는 것을 권장합니다. 운영 환경에서는 ufw allow 3001 대신 별도 서브도메인(예: monitor.mycompany.com)으로 Nginx 프록시를 설정하세요.
📊 추가할 모니터 목록| 모니터 이름 | 타입 | URL | 확인 주기 |
|---|
| n8n 웹사이트 | HTTP(s) | https://n8n.mycompany.com | 60초 |
| n8n 헬스체크 | HTTP(s) | https://n8n.mycompany.com/healthz | 60초 |
| PostgreSQL | TCP Port | localhost:5432 | 120초 |
서버 리소스 모니터링 스크립트 — ~/check-resources.sh
bash
#!/bin/bash
MEM_USAGE=$(free | grep Mem | awk '{printf "%.0f", $3/$2 * 100}')
DISK_USAGE=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')
echo "메모리 사용률: ${MEM_USAGE}%"
echo "디스크 사용률: ${DISK_USAGE}%"
if [ $MEM_USAGE -gt 85 ]; then
echo "경고: 메모리 사용률 ${MEM_USAGE}% 초과!"
curl -X POST "https://n8n.mycompany.com/webhook/resource-alert" \
-H "X-Secret-Token: 여기에_웹훅_시크릿_토큰" \
-d "{\"type\":\"memory\",\"usage\":${MEM_USAGE}}"
fi
if [ $DISK_USAGE -gt 80 ]; then
echo "경고: 디스크 사용률 ${DISK_USAGE}% 초과!"
curl -X POST "https://n8n.mycompany.com/webhook/resource-alert" \
-H "X-Secret-Token: 여기에_웹훅_시크릿_토큰" \
-d "{\"type\":\"disk\",\"usage\":${DISK_USAGE}}"
fi
스크립트 권한 설정 및 cron 등록
bash
chmod +x ~/check-resources.sh
crontab -e
# 추가: 매 정시마다 실행
0 * * * * /root/check-resources.sh >> /root/resource-check.log 2>&1
🛠️ DAY 13 실습Step 1Uptime Kuma 설치 및 모니터 추가
- docker-compose.yml에 uptime-kuma 서비스 추가
- docker compose up -d uptime-kuma 실행
- https://도메인:3001 접속 후 초기 계정 생성
- n8n 웹사이트, 헬스체크, PostgreSQL 모니터 3개 추가
Step 2Error Workflow 설정
- 위 워크플로우 JSON Import
- Slack 크리덴셜 연결 후 Publish
- n8n Settings → Workflows → Error Workflow 에서 선택
- 테스트: 일부러 오류 내는 워크플로우 실행 → Slack 알림 확인
Step 3리소스 모니터링 스크립트 설정
- ~/check-resources.sh 작성 및 chmod +x
- 스크립트 수동 실행으로 현재 메모리/디스크 확인
- crontab에 매 정시 실행 추가
🚀 DAY 13 미션Uptime Kuma 모니터링과 Error Workflow 알림을 모두 설정하고 테스트 완료하세요.
☑️ 미션 체크리스트- Uptime Kuma 설치 및 모니터 3개 추가 완료
- Error Workflow 설정 및 Slack 알림 테스트 성공
- 서버 리소스 모니터링 스크립트 cron 등록 완료
- 테스트 오류 워크플로우 실행 → Slack 알림 수신 확인
💡 힌트: Error Workflow 테스트는 Code 노드에 throw new Error('테스트 오류') 한 줄 짜리 워크플로우를 실행하면 됩니다.
🎯 성공 기준: Uptime Kuma 대시보드에 n8n이 초록불이고, 오류 발생 시 Slack에 알림이 오는 상태