给龙虾装上运维技能:用 OpenClaw 做 Redis 巡检,7 秒查完 24 个集群
这是「AI运维实验室」的第三篇文章。前两篇聊了养虾社 Meetup 见闻和 OpenClaw 企业部署,这一篇讲一个具体的实战案例——怎么给你的龙虾写一个 Redis 巡检 Skill。
每天 20 分钟的体力活
我管着 24 个 ElastiCache Redis 集群,之前每天早上的巡检流程是这样的:
- 登录 AWS 控制台
- 逐个点开集群看 CPU、内存、连接数
- 跟昨天的数据对比,看有没有异常
- 把结果整理成报告发群里
一套下来 20 分钟,每天重复,纯体力活。
后来我用 OpenClaw 做了自动化。给龙虾写了一个 Redis 巡检 Skill,现在在飞书里打两个字"Redis 巡检",龙虾 7 秒出完整报告。
效果长什么样
在飞书聊天窗口发一句话,龙虾自动执行脚本、拉数据、对比基线、输出报告:
━━━━━━━━━━━━━━━━━━━━━━━━
Redis 每日巡检报告
2026年03月19日 星期四 09:30
最近 24 小时
━━━━━━━━━━━━━━━━━━━━━━━━
[OK] 全部 24 个集群正常
-- TOP 5 CPU
集群 CPU
xxx-redis-06 20.1%
xxx-cache-01 19.4%
xxx-main 19.3%
xxx-proxy 14.9%
xxx-biz-01 12.3%
-- TOP 5 内存
集群 内存
xxx-data 72.8%
xxx-persist 58.4%
xxx-mail 57.7%
xxx-queue 57.6%
xxx-proxy 48.4%
-- TOP 5 连接数
集群 连接数
xxx-persist 4,101
xxx-redis-06 2,281
xxx-redis-02 2,076
xxx-redis-05 1,679
xxx-main 1,650
━━━━━━━━━━━━━━━━━━━━━━━━
如果有异常,会自动标记并高亮:
! 异常集群: 2/24
集群 异常项
xxx-cache-01 CPU: 72.3% (阈值70%, 基线45.2%, +60%) [!]
xxx-redis-04 Evictions: 156 (过去24h)
[!] 是警告(指标突增 1.5 倍以上),[!!] 是严重(突增 2 倍以上)。不是简单的阈值告警,而是跟 7 天前同时段对比——能发现"缓慢恶化"的问题,比如内存每周涨 2%,单看当天数据正常,但跟基线一比就能发现趋势。
三样东西,就这么多
先看整体架构:
┌─────────────────────────────────────────────┐
│ 飞书 │
│ 用户发送 "Redis 巡检" │
└──────────────────┬──────────────────────────┘
│ WebSocket
▼
┌─────────────────────────────────────────────┐
│ OpenClaw Gateway │
│ ┌─────────┐ ┌──────────┐ ┌────────────┐ │
│ │消息路由 │→│ AI Agent │→│ SKILL.md │ │
│ │ │ │ (Gemini) │ │ 匹配触发词 │ │
│ └─────────┘ └──────────┘ └─────┬──────┘ │
└───────────────────────────────────┼─────────┘
│ exec
▼
┌─────────────────────────────────────────────┐
│ redis-overview.sh │
│ ┌──────────┐ ┌───────────┐ ┌──────────┐ │
│ │读取 │→│ 批量查询 │→│ 对比基线 │ │
│ │config.json│ │ CloudWatch │ │ 标记异常 │ │
│ └──────────┘ └───────────┘ └──────────┘ │
└───────────────────────────────────┬─────────┘
│
▼
┌─────────────────────────────────────────────┐
│ AWS CloudWatch API │
│ 24 集群 × 5 指标 = 2 次 API 调用 │
│ 当前数据 + 7 天前基线 │
└─────────────────────────────────────────────┘
巡检执行流程:
"Redis 巡检"
│
▼
读取 config.json(集群列表 + 阈值)
│
▼
构建批量查询 JSON
├── 当前时段: 5 指标 × 24 集群
└── 基线时段: 同上(7天前)
│
▼
2 次 CloudWatch API 调用(共 7 秒)
│
▼
逐集群分析
├── CPU > 70%? ──────→ 标记异常
├── CPU 突增 > 1.5x? → 标记 [!]
├── CPU 突增 > 2.0x? → 标记 [!!]
├── 内存 > 80%? ─────→ 标记异常
├── 命中率下降 > 10%? → 标记异常
└── Evictions > 0? ──→ 标记异常
│
▼
输出报告(异常集群 + TOP 5)
整个方案的实现只有三样东西:
一个 bash 脚本
核心逻辑:调 CloudWatch get-metric-data API 批量查询所有集群的指标,同时拉 7 天前同时段的数据作为基线,逐个对比发现异常。
aws cloudwatch get-metric-data \
--metric-data-queries file:///tmp/queries.json \
--start-time "$START_TIME" \
--end-time "$END_TIME" \
--profile "$PROFILE" \
--region "$REGION"
关键优化:用批量查询代替逐个查询。26 个集群 × 5 个指标 = 130 个指标,只需要 2 次 API 调用(当前 + 基线),7 秒搞定。之前逐个查要 3 分钟。
一份说明书(SKILL.md)
告诉龙虾:用户说什么话的时候,跑哪个脚本。
- "Redis 巡检" → redis-overview.sh(全局巡检)
- "xxx Redis 详情" → redis-detail.sh(单集群详情)
- "Redis 对比" → redis-compare.sh(上线前后对比)
龙虾不需要理解 Redis 是什么,它只需要知道"用户说了这句话,我就跑这个命令"。SKILL.md 就是这个映射关系。OpenClaw 的 Skill 体系设计得很巧妙——你不用写代码教 AI 怎么做,只需要用 Markdown 写一份说明书。
一个配置文件(config.json)
定义你的集群分组和告警阈值:
{
"groups": {
"core": ["xxx-main", "xxx-cache"],
"api": ["xxx-redis-01", "xxx-redis-02"]
},
"thresholds": {
"cpu_warn": 70,
"memory_warn": 80,
"spike_ratio": 1.5
}
}
换个环境用,改这个文件就行,脚本不用动。
不只是巡检
同样的模式,我还做了两个场景:
单集群详情——想看某个集群最近 3 小时的趋势,发一句"xxx-main 详情",龙虾返回 CPU、内存、连接数、命中率、延迟的逐小时数据。
上线对比——发布后想确认有没有影响 Redis,发一句"xxx-main 对比 30",龙虾自动对比发布前后 30 分钟的指标变化,输出对比表。
三个场景覆盖了日常 Redis 运维 90% 的需求:每天看一眼全局、出问题查详情、上线后确认影响。这就是 OpenClaw Skill 的威力——一个 Skill 解决一类问题,组合起来就是一套完整的运维工具箱。
从 20 分钟到 7 秒
| 之前 | 现在 | |
|---|---|---|
| 巡检耗时 | 20 分钟 | 7 秒 |
| API 调用 | 130+ 次(逐个查) | 2 次(批量查) |
| 异常发现 | 靠肉眼对比 | 自动基线对比 |
| 报告输出 | 手动整理 | 自动生成 |
省下来的不只是时间。以前巡检是"看一眼没问题就过了",现在龙虾每天自动跟 7 天前的基线对比,能发现肉眼看不出来的缓慢变化。
这也是 OpenClaw 做运维的核心价值——不是替代运维,是给运维装上外挂。你还是那个做决策的人,但龙虾帮你把重复劳动干了。
安全:给龙虾最小的钥匙
把 AWS AK/SK 交给 AI Agent,安全必须做到位。我们的做法是三层防护:
最小权限
给龙虾的 IAM 用户只有 CloudWatch 只读权限,连 EC2 列表都看不了:
{
"Effect": "Allow",
"Action": [
"cloudwatch:GetMetricData",
"cloudwatch:ListMetrics",
"elasticache:DescribeCacheClusters",
"elasticache:DescribeReplicationGroups"
],
"Resource": "*"
}
就这四个 Action,多一个都不给。即使 AK/SK 泄露,攻击者也只能看监控数据,碰不了任何资源。
IP 白名单
IAM Policy 里加了 IP 条件限制,只允许 OpenClaw 所在机器的出口 IP 调用:
{
"Condition": {
"IpAddress": {
"aws:SourceIp": ["<办公网络出口IP>/32"]
}
}
}
AK/SK 拿到别的机器上用?直接 Access Denied。
异常访问检测
通过 CloudTrail + EventBridge 监控 AK/SK 的使用行为:
- CloudTrail 记录所有 API 调用(谁、什么时间、从哪个 IP、调了什么)
- EventBridge 规则匹配异常模式:非白名单 IP 调用、非工作时间调用、调用频率突增
- 触发后 Lambda 自动推告警到钉钉,同时可以自动禁用 AK/SK
CloudTrail → EventBridge 规则 → Lambda → 钉钉告警
└→ 自动禁用 Key
三层加起来:最小权限控制爆炸半径,IP 白名单防泄露利用,异常检测兜底。给龙虾的钥匙,只能开一扇门,只能在一个地方用,用的时候还有摄像头盯着。
代码开源
完整代码已开源,7 个文件,拿去改改 config.json 就能给你的龙虾装上 Redis 巡检技能:
github.com/clawnoc/clawnoc-skills/tree/main/skills/aws-redis-monitor
写于 2026 年 3 月,又一个不用手动巡检的早晨。龙虾已经把报告发到飞书了。
关注「AI运维实验室」,持续分享 OpenClaw 运维实战、企业级 AI 落地经验。
