用 KooCLI 与 MCP 把华为云资源巡检做成可复用的 Agent 工作流

举报
doraemon001 发表于 2026/10/23 20:02:25 2026/10/23
【摘要】 资源巡检不该是一次性的手工点击。本文用 KooCLI 做只读采集、用 MCP 把能力暴露给 Agent,给出可直接复用的巡检脚本与工具封装思路。

为什么要把巡检做成工作流

云上资源一旦多起来,巡检就会变成一件重复且容易漏的事:ECS 是否有异常状态、OBS 桶的 ACL 是否过宽、VPC 里有没有不该开放的端口。手工点控制台不仅慢,而且每次的检查口径还不一致。更合理的做法是把巡检拆成三层:只读采集、结构化输出、可复用的工具入口。本文用华为云 KooCLI 做采集,用 MCP 把能力暴露给 Agent,给出一套可以直接落地的最小实践。

一、三层结构

  • 采集层:KooCLI 调用各云服务只读接口,不产生写操作。
  • 规整层:把返回的 JSON 归一化成统一字段,便于对比和告警。
  • 入口层:把常用巡检封装成 MCP 工具或脚本,Agent 与人都能调用。

这样拆的好处是:采集命令可以独立测试,规整逻辑可以版本化,入口层则负责权限与参数校验。任何一层出问题,都不会影响另外两层。

二、准备 KooCLI 与最小权限

先确认本机已经安装并配置好 KooCLI:

hcloud version
hcloud configure list

建议单独创建一个只读的 IAM 用户或委托,只授予巡检需要的只读策略,例如 ECS、VPC、OBS 的查看权限。不要把租户级管理员 AK/SK 直接写进脚本。配置完成后,用一条只读命令验证凭据是否可用:

hcloud ECS NovaListServers --cli-region=cn-north-4 --project_id=PROJECT_ID

如果返回 401 或 403,先检查 AK/SK、region 与 project_id 是否匹配,再检查策略是否包含对应服务的只读权限。

三、只读采集:三条常用命令

下面三条命令覆盖了最常见的巡检对象。输出统一加 --cli-json-filter 或管道给 jq,避免把整包响应写进报告。

1. ECS 实例状态

hcloud ECS NovaListServersDetails \
  --cli-region=cn-north-4 \
  --project_id=PROJECT_ID \
  | jq -r '.servers[] | [.id, .name, .status, .addresses] | @tsv'

2. OBS 桶列表与访问策略

hcloud OBS ListBuckets
hcloud OBS GetBucketAcl --bucket=BUCKET_NAME

重点看 ACL 里是否出现了 AllUsers 的写权限。如果业务确实需要匿名读,也应该限制到具体前缀,而不是整桶。

3. VPC 安全组规则

hcloud VPC ListSecurityGroups --cli-region=cn-north-4
hcloud VPC ListSecurityGroupRules --security_group_id=SG_ID

把 0.0.0.0/0 且端口为 22、3389、3306、6379 的规则单独标出来,这类规则是最值得优先复核的。

四、把巡检封装成 MCP 工具

MCP 的价值在于把“命令 + 参数校验 + 输出格式”打包成一个稳定的工具,而不是让 Agent 每次临时拼命令行。一个最小工具可以只暴露三个参数:region、resource_type、project_id。返回结构建议固定为:

{
  "resource_type": "ecs",
  "region": "cn-north-4",
  "checked_at": "2026-10-23T12:00:00Z",
  "findings": [
    {"id": "i-xxxx", "name": "web-01", "status": "ACTIVE", "risk": "none"}
  ]
}

工具内部只做两件事:调用 KooCLI 或 SDK 采集,按固定 schema 输出。把“怎么判断风险”留给上层策略,这样同一份采集结果可以复用于日报、工单和告警,而不必为每种场景重写一遍。

五、生成可对比的巡检报告

巡检报告最重要的不是“今天有什么”,而是“和昨天相比变了什么”。建议每次把结果落成一个带日期的 JSON 文件,再用 jq 做差集:

jq -s '.[0].findings - .[1].findings' today.json yesterday.json

如果接入了对象存储,可以把报告按 reports/YYYY/MM/DD.json 的路径归档,配合生命周期规则自动清理。这样既不占本地磁盘,也保留了可追溯的历史。

六、落地时的四个细节

  • 只读优先:巡检工具默认不暴露任何写操作,确需修复时走独立的、需要确认的工具。
  • 幂等与限速:批量调用时加并发上限和重试退避,避免触发接口限流。
  • 敏感信息:报告里不要写 AK/SK、内网 IP 全量列表和桶内对象名,必要时做脱敏。
  • 可观测性:记录每次调用的 request id 和耗时,出问题时能快速定位是权限、网络还是接口变更。

七、小结

把巡检做成工作流,本质上是把“人记得要检查什么”变成“工具每次都按同一口径检查”。KooCLI 负责稳定地拿到数据,MCP 负责把能力以工具的形式复用,剩下的就是策略和报告。先从一个 region、三类资源开始,跑通一条端到端的链路,再逐步扩展,比一上来追求大而全更容易见到效果。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。