01 你是否遇到过这些场景?
"我要在阿里云创建一个多可用区 ES 集群,VPC、交换机、可用区、节点规格、Master 配置……控制台上的参数填了一屏又一屏,好不容易提交了,发现规格选错了,又得重来……"
"凌晨三点收到告警,ES 集群突然变成 Red 状态,线上写入全部失败。打开控制台看了一圈监控指标,CPU、内存、磁盘、线程池……不知道该从哪里下手排查,慌得不行。"
"安全部门要求给 ES 集群开启 HTTPS,顺便把白名单更新一下。打开文档一看,云原生实例和基础管控实例的 API 居然不一样?Kibana 私网要用 PVL?白名单还有 Append、Cover、Delete 三种模式?头都大了。"
如果这些场景让你感到似曾相识,那么今天发布的阿里云 Elasticsearch Agent Skill,就是为你准备的。
02 一句话解释:它是什么?
阿里云 Elasticsearch Agent Skill 是一套面向主流 AI 编程助手的智能运维技能包。安装后,你的 AI Agent 将"学会"阿里云 ES 的完整运维知识体系——从实例创建、故障诊断到网络配置,全链路覆盖。
简单来说:你只需要用自然语言描述运维需求,AI 就能帮你自动完成操作。
支持的 AI 编程工具包括:Claude Code、DataAgent、Cursor、Qoder、通义灵码等,后续会加入对AgenticSearch的支持。
我们发布了三个 Skill,覆盖 ES 运维的核心场景:
Skill |
定位 |
覆盖能力 |
elasticsearch-instance-manage |
实例生命周期管理 |
创建(单/多可用区)、查询、列表、重启、升降配、节点信息 |
elasticsearch-instance-diagnose |
智能故障诊断 |
四步诊断法、49 条诊断规则、7 套 SOP、管控+监控+引擎三维数据采集 |
elasticsearch-network-manage |
网络安全配置 |
公私网开关、白名单管理、HTTPS、Kibana PVL 私网连接 |
三个 Skill 形成了"创建管理 → 网络安全 → 故障诊断"的完整运维闭环。
03 它能做什么?
3.1 实例全生命周期管理
告别控制台反复填参数的日子。实例管理 Skill 覆盖了 ES 实例从创建到运维的 6 大核心任务:
Elasticsearch 实例管理 ├── createInstance 创建实例(单可用区 / 多可用区) ├── DescribeInstance 查询实例详情 ├── ListInstance 列表查询(支持按状态、地域过滤) ├── ListAllNode 查询集群所有节点信息 ├── RestartInstance 重启实例(普通 / 强制 / 指定节点) └── UpdateInstance 升降配(数据节点 / Master / Kibana / 冷节点 / 协调节点)
智能参数校验:创建实例时,Skill 会强制校验地域、VPC、交换机、可用区、密码等关键参数——缺一个就停下来问你,绝不猜测或用默认值。不同地域支持的节点规格不同,Skill 内置了完整的规格对照表,避免"提交后才发现规格不支持"的尴尬。
幂等保护:所有写操作自动生成 clientToken(UUID),请求超时后可安全重试,不会重复执行。
单次变更原则:每次升降配只能变更一种节点类型(数据节点、Master、Kibana 等),Skill 会自动遵循这一约束,避免复合变更导致异常。
3.2 智能故障诊断
集群出问题时,最怕的不是问题本身,而是"不知道从哪查起"。诊断 Skill 内置了一套系统性的四步诊断工作流:
Step 1:快速健康扫描 └─ 调用 _cluster/health,30 秒内判断 Red / Yellow / Green Step 2:并发采集全维度数据 ├─ 管控层:阿里云 OpenAPI(实例配置、变更记录) ├─ 监控层:CMS 云监控(CPU、内存、磁盘、GC、线程池等时序指标) └─ 引擎层:ES REST API(热线程、分片分配、任务列表、断路器状态等) Step 3:按信号匹配诊断知识库 └─ 49 条原因码 × 18 个事件码,自动匹配对应的 SOP Step 4:综合推理,输出诊断结论 └─ 按 P0 / P1 / P2 优先级,给出根因分析和处置建议
覆盖 8 大故障类别:集群健康(Red/Yellow/节点失联)、CPU 高负载、JVM 内存与 GC 压力、磁盘水位与 IO 瓶颈、写入线程池拒绝、查询线程池拒绝、配置风险、容量规划。
7 套专项 SOP:每套 SOP 包含诊断判断树、根因分析路径、紧急处置步骤和最佳实践,覆盖 CPU、内存 GC、磁盘、写入性能、查询性能、集群健康、配置安全等核心场景。
3.3 网络安全配置
网络配置是 ES 运维中最容易出错的环节之一——云原生实例和基础管控实例的 API 不同,白名单有三种更新模式,Kibana 私网要用 PVL……
网络管理 Skill 覆盖了 7 大网络操作:
操作 |
说明 |
TriggerNetwork |
开启/关闭 ES 或 Kibana 的公网/私网访问 |
EnableKibanaPvlNetwork |
云原生实例开启 Kibana 私网连接(PrivateLink) |
DisableKibanaPvlNetwork |
云原生实例关闭 Kibana 私网连接 |
UpdateKibanaPvlNetwork |
更新 Kibana 私网安全组配置 |
ModifyWhiteIps |
白名单管理(Cover 覆盖 / Append 追加 / Delete 删除) |
OpenHttps |
开启 HTTPS |
CloseHttps |
关闭 HTTPS |
架构感知:Skill 会自动查询实例的 archType,识别是云原生实例(public)还是基础管控实例(exclusive),自动选择正确的 API——你不需要知道两种架构的差异,只需要告诉 AI 你要做什么。
幂等检查:每次操作前自动检查当前状态(HTTPS 是否已开启?白名单是否已配置?),如果已经达到目标状态,直接跳过操作并告知你,避免重复变更。
04 实战演示:三个真实场景
场景一:一句话创建多可用区 ES 集群
你对 AI 说:
帮我在阿里云杭州区域创建一个双可用区 Elasticsearch 实例。版本用 8.17_with_X-Pack,4 个数据节点,每个节点 20GB 的 ESSD 磁盘,规格用 elasticsearch.sn2ne.large.new。VPC 用 vpc-bp1rnpts15h1vlsgy8u0h,交换机vsw-bp1umt2d81bsdh5m3m2ft,可用区 cn-hangzhou-i,按量付费,实例名叫 log-es-cluster,密码设为 LogEs@2024!
AI 会自动:
- 校验所有参数完整性(地域、VPC、交换机、可用区、密码、规格等)
- 识别双可用区需求,自动配置 zoneCount=2 和 3 个 Master 节点
- 生成 clientToken 确保幂等
- 调用 createInstance API 创建实例
- 查询实例状态,确认创建成功
# AI 自动生成并执行的命令(核心部分) CLIENT_TOKEN=$(uuidgen) aliyun elasticsearch create-instance \ --region cn-hangzhou \ --client-token $CLIENT_TOKEN \ --body '{ "esAdminPassword": "LogEs@2024!", "esVersion": "8.17_with_X-Pack", "nodeAmount": 4, "nodeSpec": { "disk": 20, "diskType": "cloud_essd", "spec": "elasticsearch.sn2ne.large.new" }, "networkConfig": { "vpcId": "vpc-bp12cbg6w2oimyr3p4c8s", "vswitchId": "vsw-bp1tjt8zg9zhgwrgnuq37", "vsArea": "cn-hangzhou-i", "type": "vpc" }, "paymentType": "postpaid", "description": "log-es-cluster", "zoneCount": "2", "masterConfiguration": { "amount": 3, "disk": 20, "diskType": "cloud_essd", "spec": "elasticsearch.sn2ne.xlarge" } }' \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-instance-manage
场景二:集群 Red,自然语言驱动故障诊断
你对 AI 说:
我们的 ES 集群突然变成 Red 状态了,实例 ID 是 es-cn-9ca73da258b0521e,在 cn-hangzhou 地域,告警说有分片未分配,现在线上业务写入全部失败,帮我紧急诊断一下是什么原因,要求立刻给出根因和处置方案。
AI 会自动执行四步诊断:
Step 1 — 快速扫描:调用 DescribeInstance 获取集群状态,确认 Red。
Step 2 — 并发采集数据:
- 调用 CMS DescribeMetricList 采集 CPU、内存、磁盘等监控指标
- 调用 CMS DescribeSystemEventAttribute 查询系统事件(是否有节点重启、磁盘满等事件)
- 通过 ES API 获取分片分配状态和未分配原因
Step 3 — 匹配诊断规则:根据采集到的信号(如 Cluster.StatusRed + Disk.UsageCritical),匹配对应的健康事件和 SOP。
Step 4 — 输出诊断结论:
🔴 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
场景三:给集群开启 HTTPS + 配置白名单
你对 AI 说:
生产环境安全要求,帮我把 ES 实例 es-cn-9ca73da258b0521e的 HTTPS 打开。另外把办公室新 IP 段 203.0.113.0/24 和 198.51.100.0/24 追加到公网白名单里,不要覆盖原来的。
AI 会自动:
- 调用 DescribeInstance 检查实例状态和当前 HTTPS 状态
- 如果 HTTPS 未开启,调用 OpenHttps 开启
- 调用 ModifyWhiteIps,使用 Append 模式追加 IP 到白名单(不覆盖现有配置)
# 1. 检查当前 HTTPS 状态 protocol=$(aliyun elasticsearch describe-instance \ --instance-id es-cn-4591aliyun007 \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage \ | jq -r '.Result.protocol') # 2. HTTPS 未开启则开启 if [ "$protocol" != "HTTPS" ]; then aliyun elasticsearch open-https \ --instance-id es-cn-4591aliyun007 \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage fi # 3. 追加白名单(Append 模式,不覆盖原有 IP) aliyun elasticsearch modify-white-ips \ --instance-id es-cn-4591aliyun007 \ --body '{"modifyMode":"Append","whiteIpGroup":{"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
05 最佳实践
5.1 实例创建最佳实践
生产环境务必使用多可用区部署。多可用区实例需要设置 zoneCount(2 或 3),并且必须配置 3 个专有 Master 节点,确保任何一个可用区故障时集群仍可正常工作。网络配置中的 vswitchId 只需提供主可用区的交换机,节点会自动分布到不同可用区。
所有写操作使用 clientToken 确保幂等。创建、重启、升降配等操作都应该带上 clientToken(UUID 格式)。当请求超时或网络抖动时,使用相同的 clientToken 重试,不会重复执行操作。
每次只变更一种节点类型。升降配时,数据节点、Master 节点、Kibana 节点、冷节点、协调节点不能在同一次 API 调用中同时变更。数据节点的 nodeAmount(数量)和 nodeSpec(规格)属于同一类型,可以一起变更。
变更前务必确认实例状态。只有实例状态为 active 时才能执行重启和升降配操作。Skill 会自动在操作前检查状态,如果实例正在 activating,会提示你等待。
5.2 故障诊断最佳实践
CPU 高负载三板斧——遇到 CPU 问题时,按以下顺序快速定位:
GET _nodes/hot_threads:查看热线程,确认是查询、写入还是 Merge 导致GET _tasks?detailed=true:查看运行中的任务,找到耗时最长的任务- 查看慢查询日志:过滤
SEARCHSLOW/INDEXINGSLOW类型日志
磁盘水位分级响应——ES 有三级自动保护机制,提前了解才能从容应对:
水位 |
触发条件 |
ES 自动行为 |
Low Watermark |
磁盘 > 85% |
停止向该节点分配新分片 |
High Watermark |
磁盘 > 90% |
尝试从该节点迁移分片 |
Flood Stage |
磁盘 > 95% |
将该节点所有索引设为只读 |
重要提示:磁盘水位降下来后,只读保护不会自动解除,必须手动执行 PUT _all/_settings {"index.blocks.read_only_allow_delete": null}。
写入优化基准线——当遇到写入线程池拒绝(HTTP 429)时:
- 每次 Bulk 请求大小:10~30MB
- 每个 Bulk 中的文档数:500~2000 条
- 并发 Bulk 数:不超过节点数 × 2
- 如果 CPU 低但写入拒绝多 → 并发太高,减少线程
- 如果 CPU 高但写入慢 → 每个 Bulk 太小,增大 batch size
JVM 内存压力判断标准:
指标 |
告警(P1) |
严重(P0) |
堆内存使用率 |
avg > 75% |
avg > 85% |
Old GC 频率 |
> 1次/分钟 |
— |
GC 耗时占比 |
— |
> 10% |
堆内存告警时的紧急操作顺序:清理缓存(POST _cache/clear)→ 取消大查询 → 必要时重启节点 → 分析根因。
5.3 网络安全最佳实践
区分实例架构类型。云原生实例(archType=public)和基础管控实例(archType=exclusive)的网络 API 不同。Kibana 私网访问在云原生实例上必须使用 EnableKibanaPvlNetwork / DisableKibanaPvlNetwork,不能用 TriggerNetwork。Skill 会自动识别并选择正确的 API。
白名单修改前备份现有配置。使用 Cover(覆盖)模式会完全替换指定白名单组的 IP 列表。如果只是添加新 IP,请使用 Append 模式。删除 IP 时请注意,每个白名单组至少保留一个 IP。
生产环境强制开启 HTTPS。数据传输加密是基本安全要求。Skill 在操作前会自动检查当前协议状态,避免重复操作。
谨慎使用 0.0.0.0/0。将白名单设为全开放存在安全风险,只开放必要的 IP 段。公网白名单不支持私有 IP,私网白名单不支持公网 IP。
网络变更选择业务低峰期。TriggerNetwork 操作可能导致短暂的服务中断,建议在非业务高峰时段执行。
06 为什么需要 Skill?
你可能会问:我直接让 AI 帮我运维 ES 不行吗?
当然可以。但通用 AI 在操作阿里云 ES 时,往往会踩这些坑:
常见问题 |
Skill 的解法 |
CLI 命令格式错误(用 PascalCase 而不是 kebab-case) |
内置正确的命令格式规范,如 |
猜测用户的地域、VPC 等关键参数 |
强制要求用户提供,缺少参数立即询问,绝不猜测 |
不知道云原生和基础管控实例的 API 差异 |
自动查询 archType,智能匹配正确的 API |
升降配时同时变更多种节点类型 |
强制遵循单次变更原则 |
诊断时只看单一维度(如只看 CPU) |
四步诊断法,管控+监控+引擎三维并发采集 |
不了解 ES 磁盘水位自动保护机制 |
内置 7 套 SOP,覆盖磁盘、CPU、内存、线程池等场景 |
白名单操作不区分 Append / Cover / Delete 模式 |
根据用户意图自动选择正确的更新模式 |
忘记操作前检查实例状态 |
所有操作前自动检查实例 status 是否为 active |
遗漏安全规范(如打印 AK/SK) |
严格的安全规则:禁止输出、读取、回显任何凭证信息 |
Skill 不是一个简单的 Prompt,而是一套完整的知识注入体系——包含技能定义、API 规范、诊断规则库、SOP 知识库、参数校验逻辑和安全约束,覆盖数千页技术文档。
07 技术架构
┌─────────────────────────────────────────────────────────────┐ │ 你的 AI 编程助手 │ │ (Claude Code / Cursor / Qoder / 通义灵码) │ ├─────────────────────────────────────────────────────────────┤ │ Elasticsearch Agent Skills │ │ ┌──────────────┐ ┌───────────────┐ ┌──────────────┐ │ │ │ 实例管理 │ │ 智能诊断 │ │ 网络配置 │ │ │ │ Instance │ │ Diagnose │ │ Network │ │ │ │ Manage │ │ │ │ Manage │ │ │ └──────────────┘ └───────────────┘ └──────────────┘ │ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌──────────┐ │ │ │ API 规范 │ │ 诊断规则库 │ │ SOP 知识库 │ │ 安全约束 │ │ │ │ 6 大操作 │ │ 49条原因码 │ │ 7 套 SOP │ │ 凭证保护 │ │ │ └────────────┘ └────────────┘ └────────────┘ └──────────┘ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 参数校验 · 幂等保护 · 架构感知 │ │ │ └─────────────────────────────────────────────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ Aliyun CLI 3.3.3+ │ │ Elasticsearch OpenAPI · CMS 云监控 API │ ├─────────────────────────────────────────────────────────────┤ │ 阿里云 Elasticsearch 服务 │ │ 实例管理 │ 监控指标 │ 系统事件 │ ES REST API │ └─────────────────────────────────────────────────────────────┘
08 快速开始
三个 Skill 已发布在阿里云 Agent Skills 门户(https://skills.aliyun.com/),点击即可下载安装。
Skill 下载地址:
- 实例管理:https://skills.aliyun.com/skills/alibabacloud-elasticsearch-instance-manage
- 智能诊断:https://skills.aliyun.com/skills/alibabacloud-elasticsearch-instance-diagnose
- 网络配置:https://skills.aliyun.com/skills/alibabacloud-elasticsearch-network-manage
安装方式(以 Claude Code 为例):
# Step 1: 从 Skills 门户下载 Skill 安装包 # Step 2: 解压到项目的 .claude/skills/ 目录 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/ # Step 3: 验证目录结构 ls your-project/.claude/skills/ # 应包含三个 Skill 目录,每个目录中有 SKILL.md 和 references/
其他平台类似:Cursor 解压到 .cursor/rules/,通义灵码/Qoder 解压到对应的 skills 目录。
前置依赖:
# 安装/更新 Aliyun CLI(要求 >= 3.3.3) curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash # 验证版本 aliyun version # 开启自动插件安装 aliyun configure set --auto-plugin-install true aliyun plugin update # 配置凭证(如尚未配置) aliyun configure
安装完成后,直接对 AI 说:
帮我查一下 cn-hangzhou 区域下所有 activating 状态的 ES 实例
AI 将自动调用 ListInstance API 并返回结果。
09 写在最后
阿里云 Elasticsearch Agent Skill 的目标不是取代运维工程师,而是让运维工程师把精力放在架构决策和业务优化上,把重复的操作和排查工作交给 AI。
无论你是 ES 新手还是资深用户,Skill 都能帮你:
新手:零门槛上手,用自然语言完成实例创建和配置,不需要研读 API 文档
老手:加速运维效率,故障诊断从"到处翻文档"变成"一句话出报告",专注业务优化
运维团队:统一操作规范,所有操作都经过参数校验、状态检查和安全约束,减少人为失误
现在就安装试试吧:https://skills.aliyun.com/
相关链接:
- 阿里云 Elasticsearch 产品页:https://www.aliyun.com/product/bigdata/elasticsearch
- 阿里云 Agent Skills 门户:https://skills.aliyun.com/
- Elasticsearch API 参考:https://next.api.aliyun.com/product/elasticsearch