Skip to main content

Monitoring and Operations

This guide covers monitoring, maintenance, and troubleshooting for GCS-hosted static websites.

Monitoring Setup

1. Cloud Monitoring Configuration

# Enable monitoring service
gcloud services enable monitoring.googleapis.com

# Create monitoring workspace
gcloud monitoring workspaces create [WORKSPACE_NAME] \
--display-name="GCS Website Monitoring"

2. Key Metrics

ComponentMetrics to Monitor
CDNCache hit ratio, Edge latency
Load BalancerRequest count, Response latency
StorageStorage usage, Egress costs

Troubleshooting

1. SSL/Certificate Issues

# Check certificate status
gcloud compute ssl-certificates describe [SSL_CERT_NAME]

# Verify domain mapping
gcloud compute target-https-proxies describe [HTTPS_PROXY_NAME]

# Update certificate
gcloud compute ssl-certificates create [SSL_CERT_NAME]-new \
--domains=[DOMAIN_NAME]

2. CDN/Cache Issues

# Check object metadata
gsutil stat gs://[BUCKET_NAME]/path/to/file

# Invalidate specific path
gcloud compute url-maps invalidate-cdn-cache [URL_MAP_NAME] \
--path "/static/*"

# Invalidate all cache
gcloud compute url-maps invalidate-cdn-cache [URL_MAP_NAME] \
--path "/*"

3. Access Issues

# Check bucket permissions
gsutil iam get gs://[BUCKET_NAME]

# Update permissions
gsutil iam ch allUsers:objectViewer gs://[BUCKET_NAME]

# Test access
curl -I https://[DOMAIN_NAME]

Maintenance Tasks

Daily

  • Monitor error rates
  • Check CDN performance
  • Review access logs

Weekly

  • Review cost metrics
  • Check SSL certificate status
  • Analyze traffic patterns

Monthly

  • Review IAM permissions
  • Update security policies
  • Optimize cache settings

Cost Management

# Get current month's cost
gcloud billing accounts list

# View CDN usage
gcloud compute backend-buckets describe [BACKEND_BUCKET_NAME] \
--format="get(cdnPolicy)"

# Optimize storage class
gsutil rewrite -s STANDARD gs://[BUCKET_NAME]/**

Backup Configuration

# Create backup script
cat > backup.sh <<EOF
#!/bin/bash
BACKUP_DATE=\$(date +%Y%m%d)
gsutil -m cp -r gs://[BUCKET_NAME] gs://[BACKUP_BUCKET]/\$BACKUP_DATE
gsutil lifecycle set lifecycle.json gs://[BACKUP_BUCKET]
EOF

# Configure retention policy
cat > lifecycle.json <<EOF
{
"rule": [
{
"action": {"type": "Delete"},
"condition": {"age": 30}
}
]
}
EOF