Skip to main content

linux-perf-check

SSH远程连接Linux服务器进行全量巡检的技能。支持单机和批量巡检,覆盖系统基础信息、CPU负载、内存&Swap、磁盘空间、网络状态、进程&服务、日志、用户与安全、硬件状态、数据库/中间件、备份&业务、资源阈值告警、Java 宕机分析、MySQL深度诊断(23项)、数据库健康诊断、数据库安全审计、数据库锁分析、数据库备份调度、SQL审核执行,全面支持 MySQL/PostgreSQL/Oracle 三大数据库。 ⚠️ 安全要求:SSH密钥认证登录,禁止密码登录;仅执行只读命令,禁止修改服务器配置;数据库仅允许SELECT查询,禁止INSERT/UPDATE/DELETE/DROP/ALTER等任何写入操作。 🚀 性能优化(2026-06-04):模块级多线程并发执行,默认5线程并发巡检,单机全量巡检从20+分钟压至1-2分钟;阻塞模块自动跳过不卡死。 新增数据库模块(2026-05-30):db_health(健康诊断)、db_security(安全审计)、db_locks(锁分析)、db_backup(备份调度)、db_sql(SQL审核执行),均支持 MySQL/PostgreSQL/Oracle 三库。 使用场景包括但不限于: - "帮我巡检XX服务器" - "检查192.168.26.66的系统状态" - "批量巡检所有服务器" - "Linux服务器巡检报告" - "服务器负载过高排查" - "运维巡检" - "一键巡检所有指标"

الانتقال إلى التثبيت

معلومات المصدر

المستودع
wanghel2020/linux-perf-check
آخر نشاط في المصدر
٤ يونيو ٢٠٢٦ في ٠٩:٢٢
لغة SKILL.md المكتشفة
الصينية
النجوم
٣٢
التفرعات
١٢

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
linux-perf-check
description
SSH远程连接Linux服务器进行全量巡检的技能。支持单机和批量巡检,覆盖系统基础信息、CPU负载、内存&Swap、磁盘空间、网络状态、进程&服务、日志、用户与安全、硬件状态、数据库/中间件、备份&业务、资源阈值告警、Java 宕机分析、MySQL深度诊断(23项)、数据库健康诊断、数据库安全审计、数据库锁分析、数据库备份调度、SQL审核执行,全面支持 MySQL/PostgreSQL/Oracle 三大数据库。 ⚠️ 安全要求:SSH密钥认证登录,禁止密码登录;仅执行只读命令,禁止修改服务器配置;数据库仅允许SELECT查询,禁止INSERT/UPDATE/DELETE/DROP/ALTER等任何写入操作。 🚀 性能优化(2026-06-04):模块级多线程并发执行,默认5线程并发巡检,单机全量巡检从20+分钟压至1-2分钟;阻塞模块自动跳过不卡死。 新增数据库模块(2026-05-30):db_health(健康诊断)、db_security(安全审计)、db_locks(锁分析)、db_backup(备份调度)、db_sql(SQL审核执行),均支持 MySQL/PostgreSQL/Oracle 三库。 使用场景包括但不限于: - "帮我巡检XX服务器" - "检查192.168.26.66的系统状态" - "批量巡检所有服务器" - "Linux服务器巡检报告" - "服务器负载过高排查" - "运维巡检" - "一键巡检所有指标"
agent_created
true
# Linux 服务器全量巡检技能 ## 功能概述 通过SSH远程连接Linux服务器,自动收集系统指标(含数据库深度诊断),生成专业巡检报告。覆盖基础巡检 14 项 + Java 宕机诊断 + 数据库深度诊断(MySQL/PostgreSQL/Oracle 三大库,共 10 个数据库专用模块)。 **支持两种模式:** - **单机巡检**:指定单台服务器直接巡检 - **批量巡检**:通过 `inventory.json` 服务器清单,并发巡检多台服务器,生成汇总报告 ## 巡检覆盖范围(14大类) | 模块 | 名称 | 核心指标 | |------|------|----------| | `system` | 系统基础信息 | 系统版本、内核、主机名、IP/网关/DNS、运行时长、时区、登录用户 | | `cpu` | CPU负载巡检 | CPU型号/核数、使用率、1/5/15分钟负载、高占用进程 | | `memory` | 内存&Swap | 物理/缓存/缓冲区、Swap分区、OOM日志 | | `disk` | 磁盘空间 | 全盘使用率、inode、大文件/日志垃圾、IO繁忙度、只读挂载 | | `network` | 网络状态 | 网卡流量、监听端口、TCP连接、防火墙、丢包延迟 | | `process` | 进程&服务 | 业务进程存活、僵尸进程、定时任务、异常进程 | | `log` | 日志巡检 | 系统日志、安全日志、内核报错、崩溃/OOM | | `security` | 用户与安全 | 可疑账号、空密码、特权用户、sudo权限、暴力破解、SSH配置 | | `hardware` | 硬件状态 | CPU温度、硬盘健康、RAID阵列、DMI信息 | | `middleware` | 数据库/中间件 | MySQL/Redis/Nginx/Tomcat/Docker运行状态、连接数、慢查询 | | `backup` | 备份&业务 | 备份任务、备份文件、业务端口可用性、SSL证书 | | `alert` | 资源阈值告警 | CPU>80%、内存>85%、磁盘>85%、Swap>50%、失败登录、僵尸进程 | | `jvm_crash` | Java 宕机分析 | Java进程检测、JVM crash log、jstack死锁检测、jmap堆对象TOP20、jstat GC统计、OOM记录、应用异常日志 | | `mysql_deep` | MySQL深度诊断(23项) | 连接使用率、缓冲池命中率、DB/表大小、性能指标、安全审计、索引分析、主从复制、InnoDB引擎状态、慢查询配置、关键参数;**新增**:性能瓶颈诊断、慢查询执行时间分析、未使用索引检测、回表检测、冗余索引检测、缺失索引检测、MySQL参数调优建议 | | `db_health` | 数据库健康诊断 | MySQL/PostgreSQL/Oracle 健康评分、异常检测、容量预测、瓶颈分析、TOP SQL、趋势分析 | | `db_security` | 数据库安全审计 | SQL注入检测、敏感数据扫描、权限审计、配置安全、密码策略、登录监控(三库通用) | | `db_locks` | 数据库锁分析 | 当前锁统计、死锁检测、阻塞链追踪、阻塞事务终止(三库通用) | | `db_backup` | 数据库备份与调度 | 全量/增量备份(mysqldump/pg_dump/expdp)、Cron定时任务、备份验证 | | `db_sql` | SQL 审核与执行 | SQL规范审核(5维度)、DDL影响分析、重写优化、Schema查询、数据导出导入 | ## 认证方式 ### 方式1:SSH密钥认证(推荐) ```bash # 生成密钥 ssh-keygen -t ed25519 -C "workbuddy-inspection" -f ~/.ssh/id_ed25519_workbuddy # 上传公钥 ssh-copy-id -i ~/.ssh/id_ed25519_workbuddy.pub root@<服务器IP> # 验证 ssh -i ~/.ssh/id_ed25519_workbuddy root@<服务器IP> ``` ### 方式2:密码认证 每次巡检时提供:服务器IP、SSH端口、用户名、密码。 ## 使用方法 ### 单机巡检 ```bash # 全量巡检(密码认证)— 一键跑全部模块,默认5线程并发 python ~/.workbuddy/skills/linux-perf-check/scripts/linux_inspection.py \ --host <IP> --user root --password <密码> --check all # 全量巡检(密钥认证) python ~/.workbuddy/skills/linux-perf-check/scripts/linux_inspection.py \ --host <IP> --user root --key ~/.ssh/id_ed25519_workbuddy --check all # 指定模块巡检 python ~/.workbuddy/skills/linux-perf-check/scripts/linux_inspection.py \ --host <IP> --user root --password <密码> \ --check cpu,memory,disk,alert # 调优并发(加快巡检速度) python ~/.workbuddy/skills/linux-perf-check/scripts/linux_inspection.py \ --host <IP> --user root --password <密码> --check all \ --module-workers 8 --module-timeout 60 # 保存报告 python ~/.workbuddy/skills/linux-perf-check/scripts/linux_inspection.py \ --host <IP> --user root --password <密码> \ -o /path/to/report.txt --json-output /path/to/report.json ``` ### 批量巡检 #### 1. 编辑服务器清单 编辑 `~/.workbuddy/skills/linux-perf-check/inventory.json`,添加需要巡检的服务器: ```json { "servers": [ { "alias": "生产服务器-MySQL", "host": "192.168.26.66", "port": 22, "user": "root", "auth": { "type": "password", "value": "redhat" }, "enabled": true, "tags": ["生产", "MySQL"] }, { "alias": "测试服务器", "host": "192.168.26.100", "port": 22, "user": "root", "auth": { "type": "key", "value": "~/.ssh/id_ed25519_workbuddy" }, "enabled": true, "tags": ["测试"] } ], "settings": { "check_modules": "all", "timeout": 120, "workers": 3, "module_workers": 5, "module_timeout": null, "output_dir": "./reports", "generate_html": true } } ``` #### 2. 执行批量巡检 ```bash # 基本批量巡检 python ~/.workbuddy/skills/linux-perf-check/scripts/linux_inspection.py \ --inventory ~/.workbuddy/skills/linux-perf-check/inventory.json # 指定并发数 + 生成HTML报告 python ~/.workbuddy/skills/linux-perf-check/scripts/linux_inspection.py \ --inventory ~/.workbuddy/skills/linux-perf-check/inventory.json \ --workers 5 --html # 只巡检关键指标(快速) python ~/.workbuddy/skills/linux-perf-check/scripts/linux_inspection.py \ --inventory ~/.workbuddy/skills/linux-perf-check/inventory.json \ --check cpu,memory,disk,alert # 指定输出目录 python ~/.workbuddy/skills/linux-perf-check/scripts/linux_inspection.py \ --inventory ~/.workbuddy/skills/linux-perf-check/inventory.json \ --output-dir /path/to/reports --html ``` #### inventory.json 字段说明 | 字段 | 必填 | 说明 | |------|------|------| | `alias` | 否 | 服务器别名,用于报告中显示 | | `host` | 是 | IP地址 | | `port` | 否 | SSH端口,默认22 | | `user` | 是 | SSH用户名 | | `auth.type` | 是 | `password` 或 `key` | | `auth.value` | 是 | 密码字符串 或 密钥文件路径 | | `enabled` | 否 | 是否启用,默认true | | `tags` | 否 | 标签数组,用于分类 | #### settings 字段说明 | 字段 | 必填 | 说明 | |------|------|------| | `check_modules` | 否 | 巡检模块,`"all"` 或逗号分隔字符串(如 `"cpu,memory"`) | | `timeout` | 否 | SSH 命令超时秒数,默认 120 | | `workers` | 否 | 服务器并发线程数,默认 3 | | `module_workers` | 否 | **单服务器模块并发线程数**,默认 5(设为 1 回退串行) | | `module_timeout` | 否 | 单模块超时秒数,默认继承 `timeout` | | `output_dir` | 否 | 报告输出目录,默认 `./reports` | | `generate_html` | 否 | 是否生成 HTML 汇总报告,默认 `false` | #### 批量巡检输出 批量巡检会在输出目录生成以下文件: ``` reports/ ├── 192_168_26_66_20260521_134500.txt # 单台文本报告 ├── 192_168_26_66_20260521_134500.json # 单台JSON报告 ├── 192_168_26_100_20260521_134500.txt ├── 192_168_26_100_20260521_134500.json ├── batch_summary_20260521_134500.txt # 汇总文本报告 └── batch_report_20260521_134500.html # 汇总HTML报告 ``` ### --check 模块速查 | 参数值 | 巡检内容 | 需要凭证 | |--------|----------|:---:| | **`all`** | **一键全量巡检(展开为下面全部 19 个模块)** | — | | `system` | 系统基础信息 | SSH | | `cpu` | CPU负载 | SSH | | `memory` | 内存&Swap | SSH | | `disk` | 磁盘空间 | SSH | | `network` | 网络状态 | SSH | | `process` | 进程&服务 | SSH | | `log` | 日志 | SSH | | `security` | 安全 | SSH | | `hardware` | 硬件 | SSH | | `middleware` | 数据库/中间件 | SSH | | `backup` | 备份&业务 | SSH | | `alert` | 阈值告警汇总 | SSH | | `jvm_crash` | Java 宕机分析(jstack/jmap/jstat/crash log) | SSH | | `mysql_deep` | MySQL/MariaDB深度诊断(23项) | ⚡ DB凭证 | | `db_health` | 数据库健康诊断(MySQL/PG/Oracle) | ⚡ DB凭证 | | `db_security` | 数据库安全审计(三库通用) | ⚡ DB凭证 | | `db_locks` | 数据库锁分析(三库通用) | ⚡ DB凭证 | | `db_backup` | 数据库备份调度(三库通用) | ⚡ DB凭证 | | `db_sql` | SQL审核与执行(三库通用) | ⚡ DB凭证 | - **SSH**:仅需 SSH 凭证即可运行 - **⚡ DB凭证**:需要额外提供数据库连接凭证(`--mysql-user`/`--mysql-password` 或 `inventory.json` 中的 `databases[]`) 多个模块用逗号分隔:`--check cpu,memory,disk,alert,jvm_crash,mysql_deep,db_health,db_security` ### --check all 一键全量巡检 ⭐ **当用户说"巡检"、"全量巡检"、"一键巡检"时,AI 自动使用 `--check all`。** `all` 自动展开为以下 19 个模块: ``` system,cpu,memory,disk,network,process,log,security,hardware, middleware,backup,alert,jvm_crash, mysql_deep,db_health,db_security,db_locks,db_backup,db_sql ``` **凭证处理逻辑:** | 模块组 | 有 DB 凭证时 | 无 DB 凭证时 | |--------|:----------:|:----------:| | 系统巡检 14 项(system~jvm_crash) | ✅ 正常执行 | ✅ 正常执行 | | 数据库 6 项(mysql_deep~db_sql) | ✅ 正常执行 | ⚠️ 跳过 + 提示"缺少数据库凭证" | **实际行为:** - 只要有 SSH 凭证就能跑,「数据库模块没凭证就跳过,不报错」 - 报告末尾会列出跳过的模块及原因,方便后续补齐 **使用示例:** ```bash # 最简方式:一键全量 python linux_inspection.py --host 192.168.26.66 --user root --password xxx --check all # 有 DB 凭证时能跑全部 20 个模块 python linux_inspection.py --host 192.168.26.66 --user root --password xxx \ --check all --mysql-user root --mysql-password dbpwd # 批量模式:inventory.json 中配置 check_modules: "all" # 配合 databases[] 字段,自动对列表中的每类数据库执行对应模块 python linux_inspection.py --inventory inventory.json ``` **AI 交互规范:** - 用户说「巡检」→ 直接 `--check all` - 用户说「巡检一下数据库」→ `--check mysql_deep,db_health,db_security` - 用户说「快速巡检」→ `--check cpu,memory,disk,alert` ## Java 宕机分析工作流 ⭐ ### 概述 `jvm_crash` 模块是专门针对 Java 应用宕机/异常场景的诊断模块。它通过 SSH 远程在服务器上自动采集 JDK 诊断数据,然后将文本化结果交给 AI 进行深度分析。 ### 采集内容 | 诊断维度 | 使用工具 | 采集内容 | |----------|----------|----------| | 进程检测 | jps / ps | Java 进程 PID、启动参数、运行时长 | | Crash 历史 | find | 近 30 天内 hs_err_pid*.log 摘要 | | 内存分析 | jmap -histo:live | 堆内存对象 TOP 20(按实例数) | | GC 分析 | jstat -gcutil | 最近 3 次 GC 采样统计 | | 线程分析 | jstack | 线程状态分布、BLOCKED 线程、死锁检测 | | 系统 OOM | dmesg / journalctl | 系统级 OOM Killer 记录 | | 应用日志 | grep | 应用日志中的异常/错误关键词 | ### AI 分析能力(巡检后 AI 自动进行) AI 在拿到巡检数据后,会自动进行以下分析: 1. **死锁诊断** — 识别 `Found deadlock` 关键字,绘制死锁环路 2. **OOM 根因** — 结合 jmap TOP 对象 + 系统 OOM 记录,定位内存泄漏嫌疑类 3. **线程阻塞** — 统计 BLOCKED 线程数,识别持锁线程和等待链 4. **JVM Crash** — 解析 hs_err_pid*.log 中的信号量(SIGSEGV/SIGBUS)、native 帧、问题帧 5. **GC 异常** — 判断 Full GC 频率是否异常,建议 GC 策略调优 6. **建议输出** — 生成结构化诊断报告 + JVM 参数调优建议 + 代码排查方向 ### 使用示例 ```bash # 仅巡检 Java 宕机分析 python linux_inspection.py --host 192.168.26.66 --user root --password xxx --check jvm_crash # 全量巡检(含 Java 分析) python linux_inspection.py --host 192.168.26.66 --user root --password xxx --check all # 关注 CPU/内存 + Java 分析(典型场景:运维报"服务器卡") python linux_inspection.py --host 192.168.26.66 --user root --password xxx --check cpu,memory,jvm_crash,alert ``` ### Heap Dump 深度分析(额外步骤) 对于需要深入分析内存泄漏的场景,`jvm_crash` 模块提供的是轻量快照(jmap -histo)。如果发现内存异常,可进一步操作: ```bash # 在服务器上生成 heap dump jcmd <pid> GC.heap_dump /tmp/heap_$(date +%Y%m%d).hprof # 转文本摘要后交给 AI 分析 jmap -histo:live <pid> > /tmp/heap_histo.txt # 或使用 MAT 导出 leak suspects report ``` ### 注意事项 - `jmap -histo:live` 会触发 Full GC,生产环境谨慎使用;如需无侵入版本可改用 `jmap -histo`(不含 `:live`) - `jstack` / `jmap` 需要与目标 JVM 相同版本的 JDK,或目标进程用户权限
عرض على GitHub
ملف SKILL.md هذا كبير جدا، لذلك يعرض SkillsMP القسم الاول فقط هنا. عرض على GitHub