Agent skill
monitoring-sites
Use this skill for monitoring website health, checking uptime, SSL certificates, performance, or managing client site portfolio. Runs health checks across all managed sites, alerts on issues, and tracks site status. Invoke for site monitoring, health checks, uptime verification, or portfolio status reviews.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/monitoring-sites
SKILL.md
Site Monitoring System
Monitor health and status of all managed client sites.
Managed Sites Portfolio
| Site | Platform | Hosting | Profile | Status Page |
|---|---|---|---|---|
| support-forge.com | Next.js | GCP Cloud Run | support-forge | - |
| vineyardvalais.com | Next.js | Amplify | default | - |
| witchsbroomcleaning.com | Static | S3/CloudFront | default | - |
| sweetmeadow-bakery.com | Next.js | Amplify | sweetmeadow | - |
| homebasevet.com | Static | S3 | default | - |
| jpbailes.com | Next.js | GCP Cloud Run | support-forge | - |
Quick Health Check
All Sites Status
# Quick ping check for all sites
for site in support-forge.com vineyardvalais.com witchsbroomcleaning.com sweetmeadow-bakery.com homebasevet.com jpbailes.com; do
status=$(curl -s -o /dev/null -w "%{http_code}" "https://$site")
echo "$site: $status"
done
Individual Site Check
# Full health check for single site
SITE="support-forge.com"
# HTTP Status
curl -s -o /dev/null -w "HTTP Status: %{http_code}\n" "https://$SITE"
# Response time
curl -s -o /dev/null -w "Response Time: %{time_total}s\n" "https://$SITE"
# SSL Check
echo | openssl s_client -servername $SITE -connect $SITE:443 2>/dev/null | openssl x509 -noout -dates
# DNS Check
nslookup $SITE
Health Check Checklist
Daily Checks (Automated)
□ All sites responding (200 OK)
□ SSL certificates valid
□ Response time < 3 seconds
□ No error pages
Weekly Checks
□ SSL expiry > 14 days
□ Domain expiry checked
□ Backup verification
□ Performance review
□ Error log review
Monthly Checks
□ Full performance audit
□ Security scan
□ Content freshness
□ Analytics review
□ Hosting costs review
Site-Specific Details
support-forge.com
Type: Next.js Monorepo (Docker)
Hosting: GCP Cloud Run
Project: support-forge
Region: us-central1
Direct URL: https://support-forge-301352865144.us-central1.run.app
Deploy:
cd ~/support-forge-app
gcloud run deploy support-forge --source . --region us-central1 --allow-unauthenticated --project support-forge
Health Endpoints:
- https://support-forge.com (main)
- https://support-forge.com/client-setup/index.html
DR Backup: EC2 ({LEGACY_EC2_IP}) - Legacy, deprecated
DR Plan: ~/support-forge-app/Support_Forge_DR_Plan.pdf
vineyardvalais.com
Type: Next.js
Hosting: AWS Amplify
Profile: default
App ID: [check Amplify console]
Deploy: Push to main branch (auto-deploy)
Check Status:
aws amplify list-apps --profile default
witchsbroomcleaning.com
Type: Static HTML
Hosting: S3 + CloudFront
Profile: default
Bucket: [check S3]
Deploy: aws s3 sync ./dist s3://[bucket] --profile default
Invalidate: aws cloudfront create-invalidation --distribution-id [id] --paths "/*"
sweetmeadow-bakery.com
Type: Next.js
Hosting: AWS Amplify
Profile: sweetmeadow
App ID: dqa0p0t9xllsd
Deploy: Push to main branch (auto-deploy)
Check Status:
aws amplify get-app --app-id dqa0p0t9xllsd --profile sweetmeadow
homebasevet.com
Type: Static
Hosting: S3
Profile: default
Bucket: homebasevet-staging
Deploy: aws s3 sync ./dist s3://homebasevet-staging --profile default
jpbailes.com / me.jbailes.com
Type: Next.js
Hosting: GCP Cloud Run
Project: support-forge
Region: us-central1
Service: jpbailes
Direct URL: https://jpbailes-301352865144.us-central1.run.app
Deploy:
cd ~/me.jbailes.com
gcloud run deploy jpbailes --source . --region us-central1 --allow-unauthenticated --project support-forge
DR Backup: Render.com (jpbailes.onrender.com)
DR Plan: ~/me.jbailes.com/JPbailes_DR_Plan.md
SSL Certificate Monitoring
Check SSL Expiry
# Check single site
echo | openssl s_client -servername support-forge.com -connect support-forge.com:443 2>/dev/null | openssl x509 -noout -enddate
# Check all sites
for site in support-forge.com vineyardvalais.com witchsbroomcleaning.com sweetmeadow-bakery.com homebasevet.com jpbailes.com; do
expiry=$(echo | openssl s_client -servername $site -connect $site:443 2>/dev/null | openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)
echo "$site: $expiry"
done
SSL Renewal
- Amplify sites: Auto-renewed by AWS
- S3/CloudFront: ACM auto-renews
- EC2 (support-forge.com): Let's Encrypt via certbot
bash
# On EC2 server sudo certbot renew docker-compose restart nginx
Performance Monitoring
PageSpeed Check
Sites to check monthly:
1. https://pagespeed.web.dev/analysis?url=https://support-forge.com
2. https://pagespeed.web.dev/analysis?url=https://vineyardvalais.com
3. https://pagespeed.web.dev/analysis?url=https://witchsbroomcleaning.com
4. https://pagespeed.web.dev/analysis?url=https://sweetmeadow-bakery.com
5. https://pagespeed.web.dev/analysis?url=https://homebasevet.com
Target Metrics
| Metric | Target | Warning | Critical |
|---|---|---|---|
| Response Time | < 1s | 1-3s | > 3s |
| TTFB | < 200ms | 200-600ms | > 600ms |
| LCP | < 2.5s | 2.5-4s | > 4s |
| PageSpeed Score | > 90 | 70-90 | < 70 |
Uptime Monitoring (Free Tools)
UptimeRobot (Recommended)
- URL: https://uptimerobot.com
- Free tier: 50 monitors, 5-min intervals
- Setup: Add all sites with email alerts
Freshping
- URL: https://www.freshworks.com/website-monitoring/
- Free tier: 50 monitors, 1-min intervals
StatusCake
- URL: https://www.statuscake.com
- Free tier: 10 monitors
Error Monitoring
Check Error Logs
EC2 (support-forge.com):
ssh -i ~/.ssh/support-forge-key.pem ubuntu@{LEGACY_EC2_IP}
docker-compose logs --tail=100 web
docker-compose logs --tail=100 nginx
Amplify Sites:
# Check build logs
aws amplify list-jobs --app-id [APP_ID] --branch-name main --profile [PROFILE]
Common Issues & Fixes
| Issue | Symptom | Fix |
|---|---|---|
| Site down | 502/503 error | Restart containers/services |
| SSL error | Certificate warning | Renew SSL cert |
| Slow load | > 3s response | Check server resources, optimize |
| 404 errors | Broken links | Fix links or add redirects |
| Build failed | Amplify error | Check build logs, fix code |
Incident Response
Site Down Protocol
1. VERIFY
- Check from multiple locations
- Confirm not local network issue
2. IDENTIFY
- Check server status
- Review error logs
- Check recent deployments
3. COMMUNICATE
- Notify client if extended outage
- Update status if applicable
4. RESOLVE
- Apply fix
- Verify site is back
5. DOCUMENT
- Log incident
- Root cause analysis
- Prevention measures
Quick Restart Commands
EC2 Docker (support-forge.com):
ssh -i ~/.ssh/support-forge-key.pem ubuntu@{LEGACY_EC2_IP}
cd /home/ubuntu/support-forge-app
docker-compose restart
# or full rebuild:
docker-compose down && docker-compose up -d --build
Amplify (trigger redeploy):
aws amplify start-job --app-id [APP_ID] --branch-name main --job-type RELEASE --profile [PROFILE]
Status Dashboard Template
SITE STATUS DASHBOARD
=====================
Last Updated: [Timestamp]
SITE STATUS RESPONSE SSL EXPIRY
─────────────────────────────────────────────────────────
support-forge.com ✓ UP 0.8s 45 days
vineyardvalais.com ✓ UP 1.2s 90 days
witchsbroomcleaning.com ✓ UP 0.5s 60 days
sweetmeadow-bakery.com ✓ UP 1.1s 90 days
homebasevet.com ✓ UP 0.4s 30 days
jpbailes.com ✓ UP 0.9s 90 days
RECENT INCIDENTS
────────────────
[Date] - [Site] - [Issue] - [Resolution]
UPCOMING MAINTENANCE
────────────────────
[Date] - [Site] - [Planned work]
Quick Commands
"Check all sites" → Run health check on entire portfolio
"Status of [domain]" → Detailed status for single site
"SSL expiry check" → Check SSL certificates for all sites
"Restart [site]" → Restart/redeploy specific site
"Performance report" → Run PageSpeed checks on all sites
Didn't find tool you were looking for?