#!/bin/bash # Healthchecks.io 자동 설정 스크립트 # API Key를 입력하면 7개 크론잡 체크를 자동 생성하고 healthchecks.json 업데이트 # # 사전 준비: # 1. https://healthchecks.io 가입 (무료, 20개 체크) # 2. Settings → API Access → API key 복사 # # 사용법: setup-healthchecks.sh set -euo pipefail API_KEY="${1:-}" HC_CONFIG="$HOME/.openclaw/healthchecks.json" HC_API="https://healthchecks.io/api/v3" if [[ -z "$API_KEY" ]]; then echo "============================================" echo " Healthchecks.io 설정 가이드" echo "============================================" echo "" echo "1. https://healthchecks.io 가입 (GitHub 로그인 가능)" echo "2. Settings → API Access → API key (read-write) 복사" echo "3. 다시 실행:" echo " ~/openclaw/scripts/setup-healthchecks.sh YOUR_API_KEY" echo "" exit 0 fi echo "Healthchecks.io 체크 생성 중..." # 크론잡 체크 정의 (이름, 스케줄, Grace Period(초)) declare -A CHECKS=( ["guardian"]="*/3 * * * *|300|LaunchAgent Guardian 감시" ["rate-monitor"]="*/5 * * * *|600|Discord Rate Limit 감시" ["latency-tracker"]="*/5 * * * *|600|Gateway 지연 추적" ["security-audit"]="0 2 * * *|7200|보안 감사" ["level2-tune"]="0 3 * * *|7200|Level 2 파라미터 자동튜닝" ["morning-standup"]="0 8 * * *|3600|통합 모닝 브리핑" ["maintenance"]="0 3 * * 0|86400|서버 정비 (일요일)" ) # JSON 초기화 CHECKS_JSON="{}" for slug in "${!CHECKS[@]}"; do IFS='|' read -r schedule grace desc <<< "${CHECKS[$slug]}" # API로 체크 생성 response=$(curl -s -X POST "${HC_API}/checks/" \ -H "X-Api-Key: ${API_KEY}" \ -H "Content-Type: application/json" \ -d "{\"name\": \"openclaw-${slug}\", \"slug\": \"openclaw-${slug}\", \"tags\": \"openclaw\", \"timeout\": 0, \"schedule\": \"${schedule}\", \"grace\": ${grace}, \"desc\": \"${desc}\", \"channels\": \"*\"}" 2>&1) uuid=$(echo "$response" | jq -r '.ping_url // empty' 2>/dev/null | sed 's|.*/||') if [[ -n "$uuid" ]] && [[ "$uuid" != "null" ]]; then echo " ✓ ${slug} → ${uuid}" CHECKS_JSON=$(echo "$CHECKS_JSON" | jq --arg k "$slug" --arg v "$uuid" '. + {($k): $v}') else echo " ✗ ${slug} 생성 실패: $(echo "$response" | jq -r '.error // "unknown"' 2>/dev/null)" fi done # healthchecks.json 업데이트 cat > "$HC_CONFIG" <