발행일: 2026-10-06(화) 11:44
홈›도서›하루 30분 n8n ④›모니터링과 알림 시스템 구축
DAY 13★★★JSON 제공

모니터링과 알림 시스템 구축

📖 이론10분
🛠️ 실습15분
🎯 미션5분

"상상할 수 있다면 만들 수 있다."

— 윌리엄 아서 워드 (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.com60초
n8n 헬스체크HTTP(s)https://n8n.mycompany.com/healthz60초
PostgreSQLTCP Portlocalhost:5432120초
서버 리소스 모니터링 스크립트 — ~/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 설치 및 모니터 추가
  1. docker-compose.yml에 uptime-kuma 서비스 추가
  2. docker compose up -d uptime-kuma 실행
  3. https://도메인:3001 접속 후 초기 계정 생성
  4. n8n 웹사이트, 헬스체크, PostgreSQL 모니터 3개 추가
Step 2Error Workflow 설정
  1. 위 워크플로우 JSON Import
  2. Slack 크리덴셜 연결 후 Publish
  3. n8n Settings → Workflows → Error Workflow 에서 선택
  4. 테스트: 일부러 오류 내는 워크플로우 실행 → Slack 알림 확인
Step 3리소스 모니터링 스크립트 설정
  1. ~/check-resources.sh 작성 및 chmod +x
  2. 스크립트 수동 실행으로 현재 메모리/디스크 확인
  3. 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에 알림이 오는 상태
← 이전
백업과 재해 복구 전략
다음 →
PART 2 미니 프로젝트: 절대 멈추지 않는 n8n
← 목차로 돌아가기