阿里云系统诊断(Alibabacloud Sysom Diagnosis)
v0.0.3执行深度Linux诊断,用于内存、网络、IO和负载问题。适用于以下症状:高/不足内存、OOM/oom-killer、Java内存压力和内存全景分析(包括套接字队列和TCP内存视图);数据包丢失或延迟抖动(补充memgraph);磁盘统计和慢IO;调度延迟和系统负载。输出结构化的诊断封套,用于自动化后续运行。使用API、CLI和GitHub等工具进行分析和输出。
运行时依赖
安装命令
点击复制技能文档
SysOM 诊断(sysom-diagnosis) 在 sysom-diagnosis/(技能根目录)下运行 ./scripts/osops.sh 进行诊断。stdout 输出为 JSON 封装。默认情况下,进行本地快速检查,不调用云端;远程深度诊断由 --deep-diagnosis(内存域)或 io/net/load 子命令触发,内置环境检查。
安装预检查: Aliyun CLI >= 3.3.3 是必需的。运行 aliyun version 验证 >= 3.3.3。如果未安装或版本过低,运行 curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash 更新。然后 [必须] 运行 aliyun configure set --auto-plugin-install true 启用自动插件安装。然后 [必须] 运行 aliyun plugin update 确保本地插件是最新的。
在核心工作流(任何 CLI 调用之前)开始时: [必须] 启用 AI 模式 — AI 模式是 Agent Skill 执行所必需的。aliyun configure ai-mode enable aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-sysom-diagnosis"
在工作流(成功或失败后)结束时: [必须] 禁用 AI 模式 — AI 模式必须在技能执行完成后禁用。aliyun configure ai-mode disable
核心代理行为: 本地优先:首先运行内存快速检查;默认情况下不要求区域/实例。意图路由:内存域:高使用/全景 → memgraph;OOM/oom-killer → oom;Java → javamem;未知 → classify。请参阅 memory-routing.md。非内存域:IO/网络/负载 → 使用相应的 io/net/load 子命令并直接转到远程深度诊断。请参阅 non-memory-routing.md。远程深度诊断的硬约束:对于 --deep-diagnosis,io/,net/ 和 load/*,SysOM InvokeDiagnosis 必须通过 ./scripts/osops.sh 触发;不要降级到通用 ECS 诊断 API 或手动 Ecs.RunCommand/Cloud Assistant 收集(top/ps/iostat)作为替代。遵循封装指令:始终读取 agent.summary 并执行 agent.next。快速输出仅为信号检测。如果 agent.next 包含命令,则在总结给用户之前执行它。封装是真实来源:基于封装数据得出结论;无需额外的 ad-hoc 收集。
延迟 + 套接字队列积压:如果 net netjitter/net packetdrop 已运行且看起来正常,但 ss 显示高 Send-Q/Recv-Q,则使用内存 memgraph --deep-diagnosis 进行交叉检查。有关完整的约定(执行目录、凭证安全、预检查噪音减少等),请参阅 agent-conventions.md。
封装输出: CLI stdout 是 JSON 封装(格式:sysom_agent,版本:3.4)。代理直接使用 agent.summary(摘要),agent.findings(关键指标)和 agent.next(下一步命令,在技能根目录中使用 Bash 执行)。业务有效载荷在 data.routing、data.local 和 data.remote 中。请参阅 output-format.md。
预检查/身份验证失败: 身份验证失败时,封装包括 data.remediation(独立预检查)或 data.precheck_gate.remediation(深度诊断合并流程)。根据封装指令指导用户。请参阅 agent-conventions.md。
子命令快速参考: 内存域子命令功能参考: memory memgraph 内存全景/仪表盘(包括 TCP 内存和套接字队列)memgraph.md memory oom OOM/oom-killer 诊断 oomcheck.md memory javamem Java 内存诊断 javamem.md memory classify 全面分类(当不确定时的回退)路由:memory-routing.md
IO 域子命令功能参考: io iofsstat IO 仪表盘(磁盘统计)iofsstat.md io iodiagnose 深度 IO 分析(慢 IO、延迟)iodiagnose.md
网络域子命令功能参考: net packetdrop 包丢失(rtrace)packetdrop.md net netjitter 延迟抖动(延迟波动)netjitter.md
负载域子命令功能参考: load delay 调度延迟(nosched)delay.md load loadtask 系统负载 loadtask.md
快速开始: cd ./scripts/osops.sh memory classify # 本地分类 ./scripts/osops.sh memory memgraph # 本地内存全景 ./scripts/osops.sh memory memgraph --deep-diagnosis --channel ecs --timeout 300 # 远程内存深度诊断 ./scripts/osops.sh io iofsstat --channel ecs --timeout 300 # IO 仪表盘 ./scripts/osops.sh net packetdrop --channel ecs --region cn-hangzhou --instance i-xxx # 包丢失诊断 ./scripts/osops.sh load delay --channel ecs --params '{"duration":30}' # 调度延迟
对于其他实例,请添加 --region --instance 。对于首次设置,请运行 ./scripts/init.sh。
三个远程 OpenAPI 要求: 要求描述: 身份 AK/SK 或实例 RAM 角色策略 AliyunSysomFullAccess 激活和 SLR 在控制台中激活 SysOM;SLR 详情:service-linked-role-subaccount.md 密钥路径索引需要文档: 内存意图 → 子命令映射 memory-routing.md IO/网络/负载路由 non-memory-routing.md 远程调用合同 / CLI 选项 / 元数据