RECIPE 073
서버 상태 모니터링 → 장애 자동 알림
- ▸웹사이트/API 엔드포인트 가용성 주기적 체크
- ▸응답시간 이상 감지 시 즉각 알림 발송
- ▸장애 이력을 Sheets에 자동 기록하여 SLA 추적
✅사전 준비
- □모니터링할 URL 목록 준비 (최대 20개)
- □응답시간 임계값 설정 (예: 2000ms 초과 시 경고)
- □Slack 장애 알림 채널 및 웹훅 URL
- □Google Sheets 장애 이력 기록 시트
HTTP 상태 체크 (모든 URL 병렬 처리)
// Cron: */5 * * * * (5분마다)
// URL 목록 → SplitInBatches → HTTP Request
Node: HTTP Request
Method: GET
URL: {{ $json.url }}
Timeout: 5000ms
Ignore SSL Errors: true
// 응답 체크 (Code 노드)
const statusCode = $json.statusCode;
const responseTime = $json.responseTime; // ms
const isDown = statusCode >= 400 || statusCode === undefined;
const isSlow = responseTime > 2000;
return [{ json: { ...$json, isDown, isSlow, checkTime: $now.toISO() } }];Slack 장애 알림 메시지
:red_circle: *서비스 장애 감지*
서비스: {{ $json.service_name }}
URL: {{ $json.url }}
상태코드: {{ $json.statusCode || 'TIMEOUT' }}
응답시간: {{ $json.responseTime }}ms
감지시각: {{ $now.toFormat('yyyy-MM-dd HH:mm:ss') }}
@oncall 즉시 확인 바랍니다.💡 TIP동일한 URL에 대해 2회 연속 장애가 확인된 경우에만 알림을 보내도록 설계하면 일시적인 네트워크 오류로 인한 오탐(false positive)을 크게 줄일 수 있습니다.
⚡
워크플로우 JSON
아래 JSON을 복사해 n8n에 바로 임포트하세요
📥 n8n 임포트 방법
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
{
"recipeId": "recipe073",
"title": "뉴스레터 발행 → 워드프레스 자동 업로드",
"chapter": 7,
"category": "콘텐츠 & 미디어 자동화",
"difficulty": "⭐⭐",
"estimatedTime": "30분",
"usedApps": [
"Mailchimp",
"WordPress"
],
"description": "Mailchimp에서 새 캠페인이 발송되면 뉴스레터 제목·내용·발행일을 자동 추출해 WordPress 블로그 포스팅으로 자동 등록합니다. 즉시 발행 또는 임시 저장 여부를 선택할 수 있어 이중 작업을 완전히 제거합니다.",
"nodes": [
{
"id": "node1",
"type": "n8n-nodes-base.mailchimpTrigger",
"name": "Mailchimp 캠페인 발송 감지",
"parameters": {
"event": "campaign"
}
},
{
"id": "node2",
"type": "n8n-nodes-base.httpRequest",
"name": "캠페인 본문 내용 가져오기",
"parameters": {
"method": "GET",
"url": "https://{{$env.MAILCHIMP_DC}}.api.mailchimp.com/3.0/campaigns/{{$json['id']}}/content",
"authentication": "basicAuth",
"basicAuth": {
"user": "anystring",
"password": "={{$env.MAILCHIMP_API_KEY}}"
}
}
},
{
"id": "node3",
"type": "n8n-nodes-base.wordpress",
"name": "WordPress 포스팅 자동 등록",
"parameters": {
"resource": "post",
"operation": "create",
"title": "={{$node['Mailchimp 캠페인 발송 감지'].json['settings']['subject_line']}}",
"content": "={{$json['html']}}",
"status": "draft",
"date": "={{$now.toISO()}}"
}
}
],
"envVariables": {
"MAILCHIMP_DC": "Mailchimp 데이터센터 코드 (예: us21)",
"MAILCHIMP_API_KEY": "Mailchimp API 키"
},
"tips": [
"WordPress 노드의 status를 'publish'로 변경하면 즉시 발행, 'draft'로 두면 임시 저장 후 편집이 가능해요.",
"뉴스레터 HTML에 이메일 전용 스타일이 포함되어 있다면 Code 노드에서 불필요한 스타일 태그를 정리한 뒤 업로드하면 더 깔끔하게 보입니다.",
"스티비(Stibee) 사용자는 스티비 Webhook을 n8n Webhook 노드로 연결해 동일한 방식으로 구성할 수 있어요."
],
"qrUrl": "www.koreaaitimes.com/books/n8n-vol2/recipe073"
}