Elasticsearch Agent Skill 是一套面向 AI 编程助手的运维技能包,覆盖实例管理、故障诊断和网络配置三大核心场景。安装 Skill 后,AI Agent 可通过自然语言指令自动调用阿里云 Elasticsearch OpenAPI,完成集群创建、故障排查、安全配置等运维操作。目前支持的 AI Agent产品包括 Claude Code、DataAgent、Cursor、Qoder 和通义灵码等,AI搜索Agent Agentic Search近期也将支持。
Skill 概览
Skill 名称 | 功能定位 | 覆盖能力 |
elasticsearch-instance-manage | 实例生命周期管理 | 创建(单/多可用区)、查询、列表、重启、升降配、节点信息 |
elasticsearch-instance-diagnose | 智能故障诊断 | 四步诊断法、49 条诊断规则、7 套 SOP、管控+监控+引擎三维数据采集 |
elasticsearch-network-manage | 网络安全配置 | 公私网开关、白名单管理、HTTPS、Kibana PrivateLink 私网连接 |
安装 Skill
安装 Aliyun CLI
Skill 依赖 Aliyun CLI(>= 3.3.3)执行 OpenAPI 调用。
# 安装或更新 Aliyun CLI
curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash
# 验证版本
aliyun version
# 开启自动插件安装
aliyun configure set --auto-plugin-install true
aliyun plugin update如尚未配置凭证,执行 aliyun configure 完成 AccessKey 配置。
下载和安装 Skill
访问 阿里云 Agent Skills 门户,分别进入以下 Skill 详情页并下载安装包:
将下载的 zip 安装包解压到项目的 Skills 目录(以 Claude Code 为例):
unzip alibabacloud-elasticsearch-instance-manage.zip -d your-project/.claude/skills/ unzip alibabacloud-elasticsearch-instance-diagnose.zip -d your-project/.claude/skills/ unzip alibabacloud-elasticsearch-network-manage.zip -d your-project/.claude/skills/验证目录结构:
ls your-project/.claude/skills/ # 应包含三个 Skill 目录,每个目录中有 SKILL.md 和 references/
其他 AI 编程工具的安装路径:Cursor 解压到 .cursor/rules/,通义灵码或 Qoder 解压到对应的 Skills 目录。
场景一:创建 Elasticsearch 实例
通过实例管理 Skill,可以使用自然语言描述创建需求,AI 自动完成参数校验和 API 调用。
对 AI 说:
在阿里云杭州区域创建一个双可用区 Elasticsearch 实例。版本用 8.17_with_X-Pack,4 个数据节点,每个节点 20GB 的 ESSD 磁盘,规格 elasticsearch.sn2ne.large.new。VPC 用 vpc-bp1***************,交换机 vsw-bp1***************,可用区 cn-hangzhou-i,按量付费,实例名 log-es-cluster。
AI 自动执行以下操作:
校验所有必填参数(地域、VPC、交换机、可用区、密码、规格等),缺少参数时主动询问。
识别双可用区需求,自动配置
zoneCount=2和 3 个专有 Master 节点。生成
clientToken(UUID)确保幂等。调用
createInstanceAPI 创建实例。查询实例状态,确认创建成功。
AI 生成并执行的命令示例:
CLIENT_TOKEN=$(uuidgen)
aliyun elasticsearch create-instance \
--region cn-hangzhou \
--client-token $CLIENT_TOKEN \
--es-admin-password "YourPassword@2024" \
--es-version "8.17_with_X-Pack" \
--node-amount 4 \
--node-spec '{"disk":20,"diskType":"cloud_essd","spec":"elasticsearch.sn2ne.large.new"}' \
--network-config '{"vpcId":"vpc-bp1***************","vswitchId":"vsw-bp1***************","vsArea":"cn-hangzhou-i","type":"vpc"}' \
--payment-type postpaid \
--description "log-es-cluster" \
--zone-count 2 \
--master-configuration '{"amount":3,"disk":20,"diskType":"cloud_essd","spec":"elasticsearch.sn2ne.xlarge"}' \
--kibana-configuration '{"amount":1,"spec":"elasticsearch.n4.small"}' \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-instance-manage创建实例时需注意以下约束:
多可用区部署:设置
zoneCount为 2 或 3 时,必须配置 3 个专有 Master 节点。网络配置中的vswitchId只需提供主可用区的交换机,节点会自动分布到不同可用区。幂等保护:所有写操作使用
clientToken(UUID 格式),请求超时后可安全重试。单次变更原则:升降配时,数据节点、Master 节点、Kibana 节点、冷节点、协调节点不能在同一次 API 调用中同时变更。
规格差异:不同地域支持的节点规格不同,Skill 内置了规格对照表自动校验。在北京、上海、杭州和深圳地域,新一代云盘型节点的规格需加
.new后缀(如elasticsearch.sn2ne.large.new)。
场景二:集群故障诊断
诊断 Skill 内置了系统性的四步诊断工作流,覆盖 8 大故障类别和 7 套专项 SOP。
对 AI 说:
ES 集群 es-cn-xxx 突然变成 Red 状态,在 cn-hangzhou 地域,线上写入全部失败,紧急诊断原因并给出处置方案。
AI 自动执行四步诊断:
步骤 | 操作 | 数据来源 |
快速扫描 | 调用 | 阿里云 OpenAPI |
并发采集 | 采集 CPU、内存、磁盘等指标;查询系统事件;获取分片分配状态 | CMS 云监控 + ES REST API |
规则匹配 | 根据采集信号匹配 49 条原因码和对应 SOP | 内置诊断知识库 |
输出结论 | 按 P0/P1/P2 优先级,给出根因分析和处置建议 | 综合推理 |
诊断输出示例:
P0 紧急问题:集群状态 Red
├─ 根因:节点 es-node-03 磁盘使用率 96%,触发 flood_stage 只读保护
├─ 影响:主分片不可用,写入全部失败
├─ 处置建议:
│ 1. 立即清理过期索引释放磁盘空间
│ 2. 磁盘降至 85% 以下后执行:
│ PUT _all/_settings {"index.blocks.read_only_allow_delete": null}
│ 3. 评估是否需要扩容磁盘
└─ 参考 SOP:sop-disk-storage.md / sop-cluster-health.md常见故障场景速查
磁盘水位分级响应:ES 有三级自动保护机制。
水位 | 触发条件 | 自动行为 |
Low Watermark | 磁盘使用率 > 85% | 停止向该节点分配新分片 |
High Watermark | 磁盘使用率 > 90% | 尝试从该节点迁移分片 |
Flood Stage | 磁盘使用率 > 95% | 将该节点所有索引设为只读 |
磁盘水位降至安全范围后,只读保护不会自动解除,需手动执行:
PUT _all/_settings
{
"index.blocks.read_only_allow_delete": null
}JVM 内存压力判断标准:
指标 | 告警(P1) | 严重(P0) |
堆内存使用率 | avg > 75% | avg > 85% |
Old GC 频率 | > 1 次/分钟 | — |
GC 耗时占比 | — | > 10% |
写入优化基准线(遇到 HTTP 429 写入拒绝时):
每次 Bulk 请求大小:10~30 MB
每个 Bulk 中的文档数:500~2000 条
并发 Bulk 数:不超过节点数 × 2
场景三:网络安全配置
网络管理 Skill 自动识别实例的架构类型(云原生或基础管控),选择正确的 API 完成网络配置。
对 AI 说:
把 ES 实例 es-cn-xxx 的 HTTPS 打开,另外把 IP 段 203.0.113.0/24 和 198.51.100.0/24 追加到公网白名单,不要覆盖原来的。
AI 自动执行:
调用
DescribeInstance检查实例状态和当前 HTTPS 状态。如 HTTPS 未开启,调用
OpenHttps开启。调用
ModifyWhiteIps,使用 Append 模式追加 IP 到白名单。
# 检查当前 HTTPS 状态
aliyun elasticsearch describe-instance \
--instance-id es-cn-xxx \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
# 开启 HTTPS
aliyun elasticsearch open-https \
--instance-id es-cn-xxx \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
# 追加白名单(Append 模式)
aliyun elasticsearch modify-white-ips \
--instance-id es-cn-xxx \
--modify-mode Append \
--white-ip-group '{"groupName":"default","ips":["203.0.113.0/24","198.51.100.0/24"],"whiteIpType":"PUBLIC_ES"}' \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage网络配置的关键约束:
操作 | 说明 |
架构感知 | Skill 自动查询实例 |
Kibana 私网 | 云原生实例的 Kibana 私网访问必须通过 |
白名单模式 | Cover(覆盖)、Append(追加)、Delete(删除)三种模式。添加新 IP 时使用 Append,避免误覆盖现有配置 |
幂等检查 | 操作前自动检查当前状态,已达目标状态时跳过操作 |
安全约束 | 避免将白名单设为 |
变更时机 |
|