sosreport 一键收现场
遇到难以定位的系统级问题需要向厂商或团队求助时,零散地一条条要日志效率很低。sosreport 会把系统配置、软件包清单、关键命令输出与日志打包成一份报告,附带校验值,对方拿到后就能完整还原现场。它是红帽系故障升级前的标准动作,也可按模块裁剪收集范围。
基本信息
| 适用平台 | RHEL 系(sos 包),Debian 系有对应工具 |
|---|---|
| 命令形式 | sos report 或 sosreport,-batch 非交互收集 |
| 常用选项 | -o 指定模块、-k 传插件参数、--case-id 关联工单 |
| 输出形式 | 打包为压缩文件,默认写入临时目录并校验 |
典型使用场景
- 系统级故障需要厂商支持,先备齐现场再提工单
- 内核崩溃、存储异常等难以复现的问题,收集完整信息一次性提交
- 批量排查同类问题时,多台机器各收一份便于横向对比
- 合规或审计要求留存某时刻的系统状态快照
- 变更前后各收一份,用于对比配置漂移
常用示例
常用示例
sudo sos report --batch # 非交互收集全部默认模块
sudo sos report -o process,networking # 只收集指定模块,包更小
sudo sos report --case-id 12345678 # 关联工单号,便于对方归档
sudo sos report -o logs --all-logs # 带上日志模块并收集完整日志
ls -lh /var/tmp/sosreport-*.tar.xz # 检查产物大小与位置
sudo sos clean ./sosreport-xxx.tar.xz # 对报告做脱敏后再外发收集内容概览
| 类别 | 内容 | 用途 |
|---|---|---|
| 系统信息 | 发行版版本、内核版本、运行时间 | 判断环境与已知缺陷匹配性 |
| 配置 | 各服务配置文件、内核参数 | 对比标准配置找差异 |
| 日志 | 系统日志与常见服务日志 | 还原故障时间线 |
| 运行时 | 进程、网络、磁盘、内存状态 | 分析资源与连接异常 |
| 软件包 | 已安装包清单 | 核对版本与补丁级别 |
报告里包含主机名、网络配置、部分日志,可能夹带敏感信息,外发前务必审查并做脱敏处理,同时注意文件的访问权限。
使用建议
- 收集前先确认目标磁盘有足够余量,报告可能占几百 MB 甚至更多
- 尽量在故障现场保留时收集,重启后很多状态无法还原
- 按模块裁剪内容,避免把无关的大日志一起打包
- 提交工单时附上收集时间与现象描述,对方定位更快
- 把报告与工单号一起归档,后续复盘还能查到原始现场
收集过程会遍历大量文件并读取日志,对 IO 有一定压力;在负载本就很高的机器上,建议先确认影响再执行。