Files
explorer-monorepo/deployment/scripts/setup-health-check.sh

45 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# Setup health check script and cron job
set -e
echo "Setting up health check system..."
# Create health check script
cat > /usr/local/bin/explorer-health-check.sh << 'EOF'
#!/bin/bash
API_URL="http://localhost:8080/health"
LOG_FILE="/var/log/explorer-health-check.log"
# Check API health
STATUS=$(curl -s -o /dev/null -w "%{http_code}" $API_URL 2>/dev/null || echo "000")
if [ "$STATUS" != "200" ]; then
echo "$(date): Health check failed - Status: $STATUS" >> $LOG_FILE
# Restart API service
systemctl restart explorer-api
# Wait a bit and check again
sleep 10
STATUS2=$(curl -s -o /dev/null -w "%{http_code}" $API_URL 2>/dev/null || echo "000")
if [ "$STATUS2" != "200" ]; then
echo "$(date): API still unhealthy after restart - Status: $STATUS2" >> $LOG_FILE
# Send alert (configure email/Slack/etc here)
else
echo "$(date): API recovered after restart" >> $LOG_FILE
fi
fi
EOF
chmod +x /usr/local/bin/explorer-health-check.sh
# Add to crontab (every 5 minutes)
(crontab -l 2>/dev/null | grep -v explorer-health-check.sh; echo "*/5 * * * * /usr/local/bin/explorer-health-check.sh") | crontab -
echo "Health check system configured!"
echo "Health checks will run every 5 minutes"
echo "Log file: /var/log/explorer-health-check.log"