服务器硬件快检(Server Health Check)
概述
对目标服务器执行一次只读的硬件健康检查。适用对象:
- 通用 X86/X64 服务器(支持标准 IPMI 2.0)
- 机房托管的中小规模服务器集群
- 无专职运维团队的企业/单位/高校实验室
核心承诺:只读不写、不改配置、不留 Agent、用完即走。
工作流程
用户提供目标服务器信息
│
▼
┌─ ① 验证参数完整性
│
├─ ② BMC 健康检查(IPMI)
│ ├─ SEL 日志拉取与解析
│ ├─ 电源状态(Power Supply)
│ ├─ 风扇状态(Fan)
│ ├─ 温度告警(Temperature)
│ └─ 硬件错误事件汇总
│
├─ ③ 系统状态检查(SSH,可选)
│ ├─ CPU 负载与运行时长
│ ├─ 内存使用率
│ ├─ 磁盘容量与分区
│ ├─ dmesg 内核错误过滤
│ └─ SMART 磁盘健康(如支持)
│
└─ ④ 输出结构化报告
├─ 正常 / 有告警 / 有错误 三级状态
├─ 异常项详情与影响说明
└─ 建议操作清单
前置条件
目标服务器要求
| 条件 | 说明 | 必需 |
|---|---|---|
| 支持 IPMI 2.0 | 服务器 BMC 启用且网络可达 | 是 |
| BMC 只读账户 | 预先创建 monitor 或类似只读用户 | 是 |
| SSH 可达 | 22 端口开放,用于系统状态检查 | 否 |
| SSH 只读 Key | 建议使用专用的 readonly SSH Key | 否 |
| smartmontools | 服务器已安装 smartctl 命令 | 否 |
执行环境要求
| 依赖 | 说明 |
|---|---|
ipmitool |
通过 IPMI 协议与 BMC 通信 |
ssh |
远程执行只读命令 |
smartctl |
读取磁盘 SMART 健康信息 |
输入参数
| 参数 | 示例 | 说明 |
|---|---|---|
TARGET_IP |
192.168.1.100 |
目标服务器业务 IP |
BMC_IP |
192.168.1.101 |
BMC 管理口 IP(可选,默认同业务 IP) |
BMC_USER |
monitor |
BMC 只读用户名 |
BMC_PASS |
******** |
BMC 密码 |
SSH_USER |
checker |
SSH 只读用户名 |
SSH_KEY |
/path/to/key |
SSH 私钥路径 |
输出格式
执行完成后输出结构化的 JSON + Markdown 报告:
{
"设备信息": {
"IP": "192.168.1.100",
"主机名": "node-01",
"BMC": "在线 | 离线",
"SSH": "可达 | 不可达",
"运行时长": "185 天 12 小时"
},
"硬件健康": {
"状态": "正常 | 有告警 | 有错误",
"SEL 摘要": {
"总事件数": 47,
"错误事件": 0,
"告警事件": 2,
"信息事件": 45
},
"关键项": [
{"项目": "电源1", "状态": "正常"},
{"项目": "电源2", "状态": "异常", "详情": "AC 输入丢失"},
{"项目": "CPU 温度", "状态": "告警", "详情": "78°C(阈值 75°C)"}
]
},
"系统状态": {
"CPU 负载": 2.3,
"内存使用率": "67%",
"磁盘使用率": "83%(/data)",
"dmesg 错误": 0,
"dmesg 告警": 3
},
"建议操作": [
{"级别": "紧急", "内容": "电源2 AC输入丢失,请检查电源线连接"},
{"级别": "关注", "内容": "CPU 温度超过阈值,建议检查散热"},
{"级别": "提示", "内容": "/data 分区使用率 83%,建议规划扩容"}
]
}
安全说明
- 只读操作:本 Skill 仅通过 IPMI 和 SSH 执行只读命令,不执行任何写操作、配置变更或重启
- 凭证不持久化:每次调用时用户提供凭证,执行完成后不保留
- 数据不出内网:执行在 Agent 环境内完成,设备数据不经过第三方转发
- 最小权限原则:建议使用专为巡检创建的只读账户,而非管理员账号
适用场景
- 日常巡检:每周对服务器执行一次硬件健康快照
- 故障排查:设备出现异常时快速获取硬件层状态
- 资产摸底:新接手机房时对现有设备做一次全面体检
- 变更前基线:在硬件变更前记录当前状态,用于变更后对比