← 返回文章列表

AWS 资源周度趋势报告:温水煮青蛙?每周泼冷水

📖 预计阅读 3 分钟
𝕏in

AWS 资源周度趋势报告

背景

CloudWatch 告警只能发现突变——CPU 突然飙到 90%、磁盘突然满了。但有一类问题它发现不了:

Redis 内存每周涨 2%,三个月后就炸了。

这种"温水煮青蛙"式的缓慢增长,等告警触发时已经来不及了。

方案

Lambda 每周一和周五自动执行,生成趋势报告。

监控范围

| 资源 | 指标 | 筛选条件 | |------|------|----------| | Redis | 内存使用率、CPU、连接数 | 内存 > 50% 或 CPU > 30% | | DocumentDB | 存储、CPU、连接数 | 全部实例 | | RDS/Aurora | 存储空间、CPU | 全部实例 | | S3 | 桶大小、对象数量 | 指定桶列表 |

趋势计算

def calc_trend(this_week, last_week):
    if last_week == 0:
        return "NEW"
    change = (this_week - last_week) / last_week * 100
    if change > 10:
        return f"↑ {change:.1f}%"  # 上升趋势
    elif change < -10:
        return f"↓ {abs(change):.1f}%"  # 下降趋势
    else:
        return f"→ {change:.1f}%"  # 平稳

动态筛选

不是监控所有 Redis 集群,而是只关注"有风险"的:

# 只监控内存 > 50% 或 CPU > 30% 的集群
clusters = elasticache.describe_cache_clusters()
for cluster in clusters:
    mem_usage = get_metric(cluster, "DatabaseMemoryUsagePercentage")
    cpu_usage = get_metric(cluster, "CPUUtilization")
    if mem_usage > 50 or cpu_usage > 30:
        add_to_report(cluster)

报告示例

📊 AWS 资源周度趋势报告 (2026-03-10)

Redis:
| 集群 | 内存 | 趋势 | CPU | 连接数 |
|------|------|------|-----|--------|
| prod-cache | 72.3% | ↑ 2.1% | 18% | 342 |
| session-store | 58.7% | ↑ 4.5% | 12% | 128 |

S3:
| 桶 | 大小 | 趋势 | 对象数 |
|----|------|------|--------|
| data-lake | 2.3TB | ↑ 8.2% | 12.4M |
| logs | 890GB | ↑ 15.3% | 45.2M |

⚠️ 需要关注:
- prod-cache 内存持续上升,预计 6 周后达到 85%
- logs 桶增长过快,建议配置生命周期策略

架构

EventBridge (每周一/五 10:00)
       ↓
Lambda
       ↓
CloudWatch Metrics + ElastiCache API + S3 API
       ↓
生成报告 → 钉钉/飞书推送

效果

  • 提前 6 周发现 Redis 内存增长趋势,及时扩容
  • S3 日志桶配置了生命周期策略,月省 $200+
  • 从"出事后救火"到"出事前预防"

— ClawNOC 运维 Agent 实践笔记

🦞 本案例使用 OpenClaw Agent 完成 · 从排查、执行到文档生成全流程 AI 驱动