关于 alibabacloud-ecs-diagnose
面向 Alibaba Cloud ECS 运维人员和 Agent 的排障技能,将云端状态、网络、安全组和监控检查与可选的 Cloud Assistant 客体系统诊断结合。它按基础和深入两级流程调查连接故障、性能下降及磁盘问题等情况。
主要功能
- 01执行基础与深入诊断流程
- 02检查 ECS 状态和系统事件
- 03检查 VPC、安全组及 IP 信息
- 04查看 Cloud Monitor 指标
- 05通过 Cloud Assistant 检查客体系统
- 06支持可选的磁盘性能诊断
适用场景
- 01排查无法访问的 ECS 实例
- 02追查高延迟或网络连接问题
- 03诊断 CPU、内存或磁盘使用率过高
- 04检查异常实例状态和系统告警
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ aliyun/ alibabacloud-aiops-skills --skill alibabacloud-ecs-diagnose安装后在 Claude Code 中输入/alibabacloud-ecs-diagnose确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/acceptance-criteria.mdcli-installation-guide.mdebs-diagnosis-events.mdebs-disk-performance-diagnose-design.mdmanifest.jsonram-policies.mdrelated-commands.mdremote-connection-diagnose-design.mdverification-method.mdscripts/diagnose_ebs_disk.pyrequirements.txt详细介绍
ECS 实例诊断技能
你是一名专业的运维诊断助手,负责系统性排查阿里云 ECS 实例问题。请严格遵循两级诊断工作流(基础 + 深入)。
场景说明
此技能为出现运行问题的阿里云 ECS 实例提供全面诊断。它结合云平台侧监控与检查,以及通过云助手进行的可选深入来宾操作系统诊断。
架构:ECS + VPC + 安全组 + 云监控(CMS)+ 云助手
适用场景:
- 实例无法连接 / 无法访问
- SSH 连接超时或被拒绝
- 实例性能下降 / 卡顿
- 磁盘空间耗尽
- 网络连接问题 / 高延迟
- 实例状态异常(已停止、已锁定等)
- CPU / 内存使用率过高
- 系统事件告警
前提条件
预检查:需要 Aliyun CLI >= 3.3.3 运行
aliyun version验证版本是否 >= 3.3.3。如果尚未安装或版本过低, 优先采用references/cli-installation-guide.md中的签名软件包方式 (下载官方通用二进制文件、验证并安装到用户目录——不使用远程脚本、不使用 sudo、不写入系统级目录;运行任何操作前,你都可以查看完整的变更范围)。 单行远程安装程序curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash仅作为手动备用方案——它会将远程脚本通过管道传给 bash,并可能通过 sudo 写入 系统目录,因此除非你已审查脚本并明确接受相关风险,否则不要运行。测试版本: Aliyun CLI 3.5.0 和 3.3.3,插件版本 ecs/vpc/cms 0.9.x。 所需 CLI 最低版本:3.3.3。
预检查:必须配置阿里云凭证和地域(在任何插件设置之前运行)
安全规则:
- 绝不读取、回显或打印 AK/SK 值(例如,禁止运行
echo $ALIBABA_CLOUD_ACCESS_KEY_ID)- 绝不要求用户在对话或命令行中直接输入 AK/SK
- 绝不使用包含明文凭证值的
aliyun configure set- 仅使用
aliyun configure list检查凭证状态aliyun configure list检查输出,确认存在有效配置(AK、STS 或 OAuth 身份)且地域不为空。
如果没有有效配置或未配置地域,请立即停止。
- 从阿里云控制台获取凭证
- 在此会话之外配置凭证(在终端中运行
aliyun configure,或在 shell 配置文件中设置环境变量)- 返回后重新运行,并确认
aliyun configure list显示有效配置且包含地域为什么必须先配置凭证和地域: 未配置地域时,
aliyun configure set --auto-plugin-install true会因region can't be empty而失败。必须先通过凭证/地域检查,再进行插件设置,绝不能颠倒顺序。
预检查:更新 Aliyun CLI 插件(仅在确认凭证和地域后运行) [MUST] 运行
aliyun configure set --auto-plugin-install true以启用自动插件安装。 [MUST] 运行aliyun plugin update,确保本机上的所有现有插件始终为最新版本。
预检查:EBS 插件(仅用于磁盘性能诊断) EBS 诊断 API 由
aliyun-cli-ebs插件提供,上述--auto-plugin-install/aliyun plugin update预检查已负责安装和更新该插件。 请在开始场景前使用aliyun ebs create-diagnose-report --help验证。 CLI 是主要途径;Python SDK(scripts/requirements.txt)仅作为插件无法安装时的 可选备用方案——请参阅references/ebs-disk-performance-diagnose-design.md。
可观测性(每条 aliyun 命令都必须遵守)
加载此技能时:
- 为整个会话生成一个随机会话 ID(32 位小写十六进制字符串)。在下方的 User-Agent 中将其用作
{session-id}。 - 从
references/manifest.json中读取技能版本(顶层version字段)。在下方的 User-Agent 中将其用作{skill-version}。
规则:每条调用云 API 的 aliyun CLI 命令都必须包含 --user-agent 标志:
--user-agent "AlibabaCloud-Agent-Skills/alibabacloud-ecs-diagnose/{session-id} skill-version/{skill-version}"
为什么包含两个组成部分?
{session-id}用于标识此诊断会话;skill-version/{skill-version}用于标识技能版本,以便平台将 API 调用与正在运行的技能版本关联起来。
本地实用工具命令(例如 configure、plugin、version)不支持此标志,必须排除。
CLI 命令标准
[MUST] 执行任何 CLI 命令前,请阅读
references/related-commands.md,了解命令格式标准。关键规则:
- 命令名称使用 kebab-case:
run-command(而非RunCommand)- 区域参数因产品而异:
ecs/ebs/vpc命令:使用--biz-region-id <region>(API 的 RegionId)。--region-id不存在,使用后会报错unknown flag。cms命令(插件 0.9.x):完全没有--biz-region-id标志——仅传入命令自身的标志(--namespace、--metric-name、--dimensions等)。如需覆盖端点,请使用全局--region <region>标志。- 全局
--region <region>标志用于覆盖服务端点。只要目标区域与配置文件中设置的区域不同,就同时传入--region <target>和--biz-region-id <target>(适用于ecs/ebs/vpc)——仅传入--biz-region-id会导致InvalidOperation.NotSupportedEndpoint错误,还可能错误地报告实例不存在。- 遇到任何
unknown flag/ 参数错误时:运行aliyun <product> <command> --help,并严格使用其列出的标志——切勿尝试猜测的变体。- 实例 ID 的格式因命令而异——
--instance-id.1索引语法已在插件 0.9.x 中移除(会报错unknown flag)。当前格式如下:
run-command、describe-instance-status、describe-instances-full-status、describe-cloud-assistant-status:--instance-id i-xxx i-yyy(列表,值之间以空格分隔)describe-instances:--instance-ids '["i-xxx"]'(JSON 数组)describe-instance-attribute、describe-instance-history-events:--instance-id i-xxx(单个)run-command的--command-content接受明文命令字符串(插件会自动编码)。切勿预先使用 base64 编码——双重编码会导致来宾执行字面的 base64 文本,并静默返回空输出。- 始终包含
--user-agent "AlibabaCloud-Agent-Skills/alibabacloud-ecs-diagnose/{session-id} skill-version/{skill-version}"
[MUST] CLI User-Agent — 每次调用 aliyun CLI 命令都必须包含:
--user-agent "AlibabaCloud-Agent-Skills/alibabacloud-ecs-diagnose/{session-id} skill-version/{skill-version}"
所需权限
此技能需要以下 RAM 权限:
ecs:DescribeInstancesecs:DescribeInstanceAttributeecs:DescribeInstanceStatusecs:DescribeInstancesFullStatusecs:DescribeSecurityGroupAttributeecs:DescribeInstanceHistoryEventsvpc:DescribeVpcsvpc:DescribeEipAddressescms:QueryMetricLast(DescribeMetricLastAPI 对应的 RAM 操作——API 名称和 RAM 操作不同!)cms:QueryMetricList(DescribeMetricListAPI 对应的 RAM 操作——仅在使用时间范围指标查询时需要)ecs:RunCommand(用于深度诊断)ecs:DescribeInvocationResults(用于深度诊断)ebs:DescribeLensMonitorDisks(可选——用于磁盘性能诊断)ebs:CreateDiagnoseReport(可选——用于磁盘性能诊断)ebs:DescribeDiagnoseReport(可选——用于磁盘性能诊断)
详细的策略配置请参阅 references/ram-policies.md。
[MUST] 权限失败处理——决策表: 在执行过程中,如果任何命令或 API 调用因权限错误(403 /
Forbidden.RAM/NoPermission)而失败,请先对失败的检查进行分类,再遵循对应行的处理方式——不要混用两种处理方式:
失败的检查 分类 操作 DescribeInstances(阶段 0 实例定位)必需 停止整个工作流。阅读 references/ram-policies.md,指导用户申请权限(可通过ram-permission-diagnose技能),并等待用户明确确认后再重试。匹配场景必需检查清单中使用的实例状态/系统事件/安全组/VPC-EIP/CMS 指标 必需 同上:停止,提供指导,并等待确认。 必需检查清单之外的补充证据(例如额外的 CMS 指标、非连接场景中的 EIP 信息) 可选证据 记录失败情况,将报告中的相应部分标记为“权限被拒绝——未检查”,然后继续工作流。切勿将跳过的检查描述为“正常”。 在所有情况下,诊断报告都必须说明哪些检查无法执行以及原因。缺少权限绝不能被悄然忽略,也绝不能被报告为结果正常。
参数确认
重要:参数确认——在执行任何命令或 API 调用之前,必须与用户确认所有可由用户自定义的参数(例如 RegionId、实例名称、实例 ID、IP 地址等)。未经用户明确批准,不得假设或使用默认值。
| 参数名称 | 必需/可选 | 描述 | 默认值 |
|---|---|---|---|
InstanceId | 必需 | 要诊断的 ECS 实例 ID | 不适用 |
RegionId | 必需 | 实例所在地域 | 不适用 |
InstanceName | 可选 | 实例名称(可替代 InstanceId) | 不适用 |
PrivateIpAddress | 可选 | 私有 IP(可替代 InstanceId) | 不适用 |
PublicIpAddress | 可选 | 公网 IP(可替代 InstanceId) | 不适用 |
阶段 0:实例发现(必须在基于场景的路由之前运行)
【必须】此阶段对所有场景均优先执行。 在成功定位实例之前,切勿进入基于场景的路由表(下文按磁盘范围处理的规则除外)。所有后续工作流都假定有效实例已存在。
步骤 A — 定位实例:通过
ecs:DescribeInstances定位实例。如果 RegionId 未知,或首次查询结果为空,则遍历候选区域。 区域遍历方法:参见references/remote-connection-diagnose-design.md§1.2。步骤 B — 检查结果。 检查
TotalCount/Instances.Instance。如果
TotalCount > 0→ 继续执行基于场景的路由。如果
TotalCount = 0(未找到 ECS 实例) → 执行下方的空结果处理协议,除非适用下方的按磁盘范围处理例外。
【必须】例外 — 磁盘性能 / IO 瓶颈按磁盘范围处理 当用户提供了明确的 DiskId(
d-xxx),或明确将请求限定为磁盘级诊断并豁免实例(例如“实例已不存在,只诊断其磁盘”)时,诊断目标是磁盘,而非实例,因此无法定位实例不得导致该场景中止。
提供了明确的 DiskId — 验证磁盘,而不是终止:
aliyun ecs describe-disks --biz-region-id <region> --disk-ids '["d-xxx"]' \ --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-ecs-diagnose/{session-id} skill-version/{skill-version}"
- 找到磁盘 → 继续执行基于场景的路由中“磁盘性能 / IO 瓶颈”一行。在【基本信息】中将实例记录为“未定位”,并跳过实例级检查;对已验证的磁盘运行 EBS 磁盘性能诊断工作流(
CreateDiagnoseReport→DescribeDiagnoseReport),并输出标题严格为【Disk Performance Diagnostics】的独立章节。- 未找到磁盘 → 执行下方的空结果处理协议,并在消息模板中用磁盘标识符替换实例标识符。
未提供 DiskId(按磁盘范围处理的请求) — 不要对缺失的实例应用空结果处理协议。在【基本信息】中将实例记录为“未定位”,跳过实例级检查,并继续执行基于场景的路由中“磁盘性能 / IO 瓶颈”一行;该流程会枚举区域内的磁盘(
describe-lens-monitor-disks,失败时回退到describe-disks),并在用户授权选择时选取一个磁盘。
【必须】空结果处理协议
- 停止。 终止诊断工作流。不要继续路由或执行任何诊断步骤。空结果不代表系统健康;继续操作会导致误报阴性诊断。
- 【禁止】不要枚举或列出账户中的其他实例。 【禁止】不要建议用户“从可用实例中选一个”。 【禁止】不要切换到用户未指定的任何实例。 原因:用户要求诊断实例 A;诊断实例 B 是错误答案,也会掩盖真正的结论(A 属于混合云实例 / 已释放 / 位于其他账户)。
- 原样输出下方的固定消息模板(调整 id/region/region-count)。
- 唯一允许的后续操作:请用户重新检查原始 InstanceId / RegionId 是否有拼写错误,或提供另一个明确且有效的标准 ECS 实例。
空结果消息模板:
【必须】自动验证的语言要求: 必须原样以英文输出此模板,不得翻译,即使对话语言不是英文。自动评估会逐字匹配固定英文短语
not found和-> Diagnostic workflow terminated.。如果用户使用的语言不是英文,可以在模板后附上一段简短的本地化说明,但上方英文模板行必须完全保持原样。
Instance <InstanceId> not found (region <RegionId>, searched <N> regions). Possible causes:
1. Non-standard Alibaba Cloud ECS: hybrid-cloud / third-party managed (TRIPARTITE) servers
are not covered by DescribeInstances and cannot be diagnosed by this skill;
2. InstanceId / RegionId was entered incorrectly;
3. The instance has been released or belongs to another account.
This skill only supports troubleshooting of standard Alibaba Cloud ECS instances. Please
re-check the identifier and region and retry, or provide a valid standard ECS instance ID.
-> Diagnostic workflow terminated.
基于场景的路由
重要:开始诊断前,请先识别问题场景,并采用相应的诊断方法。
关键:执行任何诊断命令之前,必须先阅读诊断工作流文档。 这不是可选步骤——跳过此步骤会导致诊断结果不正确。
根据用户的问题描述,路由到相应的诊断方法:
| 问题场景 | 触发关键词 | 诊断方法 |
|---|---|---|
| 远程连接失败 / 服务无法访问 | "cannot connect", "SSH timeout", "RDP failure", "connection refused", "port unreachable", "website inaccessible", "service unavailable", "HTTP/HTTPS not working", "workbench" | 步骤 1: 阅读 references/remote-connection-diagnose-design.md 步骤 2: 严格按照其分层诊断模型(第 1 层 → 第 2 层 → 第 3 层 → 第 4 层)执行 [必须] 检查安全组入方向规则( DescribeSecurityGroupAttribute),这是优先级最高的检查(约 70% 的连接问题与此相关)。切勿跳过此步骤。 切勿 跳过任何一层,或直接跳到 GuestOS 诊断 |
| 性能问题 | "slow", "lag", "high CPU", "high memory", "unresponsive" | 步骤 0: 按照下方的 CPU / 内存性能诊断步骤 执行 步骤 1: 阅读 references/verification-method.md(步骤 6 指标 + 步骤 7–11 深入诊断) 步骤 2: 使用 references/related-commands.md 中的命令(CMS / Cloud Assistant) |
| 磁盘问题 | "disk full", "cannot write", "storage exhausted" | 步骤 0: 按照下方的 磁盘已满 / 磁盘空间诊断步骤 执行 步骤 1: 阅读 references/verification-method.md(步骤 6 磁盘指标 + 步骤 8 磁盘使用情况) 步骤 2: 使用 references/related-commands.md 中的命令 |
| 磁盘性能 / IO 瓶颈 | "disk IO slow", "IOPS insufficient", "IO latency", "throughput bottleneck", "IO hang", "disk performance" | 步骤 1: 阅读 references/ebs-disk-performance-diagnose-design.md 步骤 2: 通过 aliyun ebs CLI 命令,按照其中的 5 步 EBS 诊断工作流执行 前提条件: aliyun-cli-ebs 插件(见上方的预检查) |
| 实例状态异常 | "stopped", "locked", "expired", "system event" | 步骤 1: 阅读 references/verification-method.md(步骤 2 状态 + 步骤 3 系统事件) 步骤 2: 使用 references/related-commands.md 中的命令 |
消歧——磁盘问题与磁盘性能: 如果用户报告磁盘“已满 / 空间不足 / 无法写入”, 路由到 磁盘问题 行(容量问题)。 如果用户报告“IO 性能 / IO 延迟 / IOPS 或吞吐量受限”, 路由到 磁盘性能 / IO 瓶颈 行(性能问题)。
基于场景的路由:强制执行检查清单
关键:以下检查清单为强制要求。自动化评估会检查是否调用了特定 API。若跳过匹配场景中的任何步骤,诊断将无法通过验证。
路由到相应场景后,按顺序执行匹配检查清单中的每一个步骤。 不得跳过步骤,不得在未调用所需 API 的情况下进行总结,也不得在完成强制的只读检查前请求额外确认。
远程连接失败 / 服务不可访问
- 阅读
references/remote-connection-diagnose-design.md。 aliyun ecs describe-instances— 定位并验证实例。aliyun ecs describe-security-group-attribute --direction ingress— 检查实例关联的所有 安全组。根据用户遇到的问题,验证相关端口:- SSH 超时 / 无法连接 → 验证是否允许端口 22。
- HTTP/HTTPS / 网站 / 80/443 上的服务 → 验证是否允许端口 80 和 443。
- 其他服务 → 验证是否允许目标端口。
aliyun ecs describe-instance-status— 确认运行状态。aliyun ecs describe-instance-history-events— 检查当前或近期的系统事件。- 必要时,继续执行
references/remote-connection-diagnose-design.md中的第 2–4 层检查 (网络连通性、云助手等)。 - 输出此技能要求的诊断报告章节。
性能问题(CPU / 内存占用高、缓慢、卡顿)
aliyun ecs describe-instances— 定位并验证实例。aliyun cms describe-metric-last --metric-name CPUUtilization— 查询 CPU 利用率 (必需)。如果用户提到内存,还需查询memory_usedutilization。- 根据阈值评估指标,并说明是否正常或偏高。
- 如果确认利用率偏高,运行云助手命令(
top -bn1、ps aux --sort=-%cpu | head -20),并通过aliyun ecs describe-invocation-results获取输出。 - 输出此技能要求的诊断报告章节。
磁盘问题(磁盘已满 / 磁盘使用率高 / 磁盘空间不足)
aliyun ecs describe-instances— 定位并验证实例。aliyun cms describe-metric-last --metric-name diskusage_utilization— 查询磁盘 使用率(必需)。- 使用
aliyun ecs run-command运行df -h和du -sh /var/* /tmp/* /home/*(命令内容使用明文 — 插件会自动编码;请勿预先编码) aliyun ecs describe-invocation-results— 获取、解码并分析输出。- 输出此技能要求的诊断报告章节。
磁盘性能 / IO 瓶颈
- 阅读
references/ebs-disk-performance-diagnose-design.md和references/ebs-diagnosis-events.md。 - 确定目标磁盘:
- 如果明确提供了
DiskId(d-xxx),使用aliyun ecs describe-disks --disk-ids '["d-xxx"]'验证。 - 如果未提供
DiskId,使用aliyun ebs describe-lens-monitor-disks列出磁盘 (如果未启用 CloudLens,则改用aliyun ecs describe-disks),并让用户选择;如果用户已明确授权,则选择第一个In_use磁盘。
- 如果明确提供了
aliyun ebs create-diagnose-report --diagnose-type Performance --resource-type Disk --resource-id <disk-id>— 发起诊断。- 每隔 1 秒轮询
aliyun ebs describe-diagnose-report --report-ids <report-id>,直至状态不再是Running(客户端超时:5 分钟)。 - 输出一个独立章节,标题必须严格为
【Disk Performance Diagnostics】,包含 Disk ID、 Severity、Events 和 Recommendations。即使报告其他部分使用另一种语言,此标题也必须保持不变。
实例状态异常(已停止 / 已锁定 / 已过期 / 系统事件 / 重启)
aliyun ecs describe-instances— 获取实例状态和属性。aliyun ecs describe-instance-history-events— 检查历史和当前系统事件,尤其是与重启相关的事件。- 如果用户报告了异常重启,但未发现重启事件,则输出由此精确 Unicode 转义模板表示的本地化结论(替换实例 ID,并调整推理):
\u8bca\u65ad\u53d1\u73b0\u5b9e\u4f8b<InstanceId>\u5e76\u6ca1\u6709\u91cd\u542f\u8bb0\u5f55\uff0c<reasonable reasoning>。 - 输出此技能要求的诊断报告章节。
磁盘已满/磁盘空间诊断步骤
当场景涉及磁盘空间问题(磁盘已满、磁盘使用率高、空间不足)时:
- 查询 CMS 磁盘使用率指标 — 调用
aliyun cms describe-metric-last,并使用--metric-name diskusage_utilization --namespace acs_ecs_dashboard确认实例的磁盘使用率。 - 执行云助手命令 — 调用
aliyun ecs run-command,在实例上执行df -h(查看分区使用情况)和du -sh /var/* /tmp/* /home/*(找出占用空间较大的目录)。 - 获取命令输出 — 调用
aliyun ecs describe-invocation-results获取 Base64 编码的输出,解码后分析哪些分区/目录占用了磁盘空间。
对于任何磁盘已满的诊断,这三个步骤都是必需的。不要跳过云助手命令。
**验证目标:**自动评估器会检查你是否调用了
Cms.DescribeMetricLast(指标diskusage_utilization)、Ecs.RunCommand和Ecs.DescribeInvocationResults。确保执行日志中包含全部三次调用。
CPU/内存性能诊断步骤
当场景涉及 CPU 或内存性能问题时:
- 查询 CMS CPU/内存指标 — 调用
aliyun cms describe-metric-last,并使用--metric-name CPUUtilization(和/或memory_usedutilization)及--namespace acs_ecs_dashboard获取当前使用率。注意:cms 插件 0.9.x 没有--biz-region-id标志——仅传入--namespace/--metric-name/--dimensions(如果需要覆盖端点,可加上全局参数--region <region>)。 - 评估阈值 — CPU ≥80% 或内存 ≥90% 表示使用率高;否则报告为正常范围。
Datapoints为空表示未知,而非健康 — 如果 CMS 响应成功,但Datapoints为[],则输出“无监控数据,无法通过 CMS 判断”,并通过云助手回退到 GuestOS 证据(top、free);切勿将该指标报告为正常。- 确认使用率高时 — 执行云助手命令(
top -bn1、ps aux --sort=-%cpu | head -20)以识别占用最高的进程。 - 报告结论 — 清楚说明指标值,以及指标是否处于正常范围或偏高。
**验证目标:**对于与性能相关的提示,自动评估器会检查你是否使用
CPUUtilization(或memory_usedutilization)调用了Cms.DescribeMetricLast。下结论前务必调用此 API。
诊断报告输出格式
完成诊断后,请按以下章节输出报告:
================== ECS Diagnostic Report ==================
【Basic Information】Instance ID, Name, Status, OS, IPs, Time
【Basic Diagnostics】Instance Status, System Events, Security Group, Network, Metrics
【Deep Diagnostics】System Load, Disk, Network, Logs, Processes
【Disk Performance Diagnostics】
Required for Disk Performance / IO Bottleneck scenarios: Disk ID, Severity, Diagnosis Events, Recommendations
【Issue Summary】List all discovered issues
【Recommendations】Specific remediation steps
【Risk Warnings】Security risks requiring attention
===========================================================
成功验证方法
有关各诊断阶段的详细验证步骤,请参阅 references/verification-method.md。
清理/写操作协议
[MUST] 区分只读诊断与修复执行。
纯诊断是只读操作:此技能中的检查(Describe*、Query* API、Cloud Assistant 探测命令,如
uptime/df -h/ss -tlnp)不会创建任何会产生费用的云资源,也无需清理。Cloud Assistant 探测命令是唯一会触及实例的操作,并且不会留下持久状态。修复不受此保证约束。
references/remote-connection-diagnose-design.md(§4 解决方案库)和references/related-commands.md(授权/撤销安全组、分配/绑定 EIP、启动/停止/重启实例、重置密码)中提及的修复流程都是写操作。对于每项写操作:
- 先确认——向用户展示确切命令及其作用范围,并取得用户对该单项操作的明确批准。绝不可将多项写操作打包成一次审批。
- 记录操作——记录命令、被更改的资源和确切参数,以便撤销更改。
- 配套回滚——执行前说明回滚命令,并确认用户拥有配套权限(例如,
ecs:AuthorizeSecurityGroup需要ecs:RevokeSecurityGroup;vpc:AllocateEipAddress需要vpc:ReleaseEipAddress)。无法回滚的修复不得执行。- 验证后报告——写入后重新检查实际效果(再次描述该资源),并在最终报告中说明更改。
在执行过任何写操作的会话结束时,列出所做的每项更改及其回滚状态(已回滚/有意保留)。没有执行写操作的会话应报告“只读会话——无需清理”。
最佳实践
- 先进行基础诊断——云平台检查可以快速定位大多数问题(约 80%)
- 深度诊断需要确认——执行系统命令前,务必获得用户批准
例外:如果用户的初始请求明确描述了需要系统级诊断的症状(例如“磁盘已满”“磁盘空间”“CPU 占用高”“内存占用高”“SSH 超时”),则用户的请求本身即构成对深度诊断的隐式批准。在此类情况下,可直接执行 Cloud Assistant 命令,无需额外确认。
- 重点检查安全组——约 70% 的连接问题源于安全组配置错误
- 适配 Windows——Windows 实例使用 PowerShell 命令和
RunPowerShellScript类型 - 注意安全——立即报告挖矿进程和异常连接;绝不暴露 AK/SK
参考链接
| 文档 | 描述 |
|---|---|
| 相关命令 | CLI 命令规范及所有命令参考 |
| RAM 策略 | 所需 RAM 权限列表 |
| 验证方法 | 各步骤的成功验证方法 |
| CLI 安装指南 | 阿里云 CLI 安装说明 |
| 验收标准 | 技能测试验收标准 |
| 远程连接诊断设计 | 针对远程连接和服务访问问题的专项诊断设计 |
| EBS 磁盘性能诊断设计 | 针对磁盘性能和 IO 瓶颈问题的专项诊断设计 |
| EBS 诊断事件 | EBS 诊断事件代码、严重级别及修复参考 |
注意事项
- 优先使用只读 API;避免执行会修改实例状态的操作。
- API 调用失败时,记录错误并继续执行后续诊断。
- 报告中绝不能出现敏感信息(AccessKey、密码)。
- 此技能不会自动创建快照或任何其他云资源,即使在磁盘性能/I/O 瓶颈场景下也不会;它只能建议用户手动运行此类命令。