🔍 工具概述
supportconfig 是SUSE Linux提供的企业级系统诊断工具,由 supportutils 包提供,默认已安装在SLES系统中。这个工具专为生产环境设计,能够自动收集系统配置、日志文件、硬件信息、网络状态等30+功能模块的完整数据,生成结构化的tar.xz归档文件。
核心价值:一键生成完整诊断包,大幅缩短技术支持响应时间,是SUSE官方推荐的故障排查标准流程。
📦 安装与更新
supportconfig 默认已安装。如需安装或更新:
# 安装
sudo zypper install supportutils
# 更新到最新版本
sudo zypper update supportutils
⚙️ 基本使用方法
最简单用法
sudo supportconfig
默认在 /var/log 目录下生成归档文件,文件名格式:scc_主机名_日期_时间.txz
常用参数
| 参数 | 说明 |
|---|---|
-E 邮箱 |
提供联系邮箱 |
-N 姓名 |
提供联系人姓名 |
-O 公司 |
提供公司名称 |
-P 电话 |
提供联系电话 |
-T 工单号 |
关联SUSE服务请求编号 |
-i 关键字 |
限制收集范围(逗号分隔的关键词) |
-F |
列出所有可用关键字 |
-m |
减少收集信息量(快速模式) |
-l |
收集已轮转的日志文件 |
-U URL |
直接上传到SUSE服务器 |
关键字过滤示例
# 仅收集LVM相关信息
sudo supportconfig -i LVM
# 仅收集网络和硬件信息
sudo supportconfig -i NETWORK,HARDWARE
# 快速收集关键信息
sudo supportconfig -m
🔎 查看可用模块
# 列出所有可用的关键字/模块
sudo supportconfig -F
常用关键字包括:NETWORK、LVM、BTRFS、SYSTEMD、SECURITY、YAST、VIRTUALIZATION 等。
📂 归档文件结构
解压后的归档文件包含以下核心内容:
核心信息文件
scc_hostname_20260321_123456/
├── basic-environment.txt # 系统基本信息(OS版本、内核、架构等)
├── basic-health-check.txt # 系统健康检查
├── hardware.txt # 硬件信息(CPU、内存、PCI设备等)
├── messages.txt # 系统主日志(/var/log/messages)
├── rpm.txt # 已安装RPM包列表
├── summary.xml # XML格式的系统信息摘要
├── ...
功能模块文件
30+个功能模块,每个模块对应一个或多个文本文件:
- 网络相关:
network-*.txt(网络配置、路由、防火墙等) - 存储相关:
fs-*.txt(BTRFS、LVM、iSCSI等) - 服务相关:
systemd.txt、docker.txt、samba.txt等 - 安全相关:
security-audit.txt、ssh.txt、pam.txt等 - 虚拟化:
libvirt.txt、virtinfo.txt、xen*.txt等 - 桌面环境:
gnome*.txt、kde*.txt等
🚀 提交给技术支持
步骤1:创建服务请求
- 访问 SUSE Customer Center: https://scc.suse.com/support/requests
- 创建服务请求,记录工单编号(如
SR12345678901)
步骤2:生成带工单号的归档
# 生成归档并关联工单号
sudo supportconfig -T SR12345678901 -E your@email.com -N "姓名" -O "公司"
步骤3:上传归档
方法1:有互联网连接的服务器(自动上传)
# 使用HTTPS上传
sudo supportconfig -U https://support-ftp.us.suse.com/incoming/upload.php?file={tarball} -T SR12345678901
# 使用FTPS上传
sudo supportconfig -U ftps://support-ftp.us.suse.com/incoming/ -T SR12345678901
方法2:无互联网连接的服务器(手动上传)
- 在服务器上运行:
sudo supportconfig -T SR12345678901 - 将生成的
.txz文件通过U盘或安全传输方式复制到有互联网的机器 - 登录SUSE Customer Center,在服务请求中上传文件
🎯 最佳实践
1. 问题发生后立即收集
- 内核崩溃:重启后立即运行
supportconfig,关键日志可能被覆盖 - 性能问题:问题发生时收集,保留现场状态
- 网络故障:故障发生时收集,网络配置和状态最准确
2. 使用关键字减少收集范围
如果已知问题范围,使用 -i 参数仅收集相关模块,节省时间:
# 网络问题
sudo supportconfig -i NETWORK
# 存储问题
sudo supportconfig -i LVM,BTRFS
# 虚拟化问题
sudo supportconfig -i VIRTUALIZATION
3. 高日志环境使用 -l 参数
如果日志轮转频繁,使用 -l 参数收集已轮转的日志:
sudo supportconfig -l
4. 定期收集用于基线对比
在系统正常运行时收集supportconfig,作为"健康基线"。故障发生时可对比差异:
# 健康基线收集
sudo supportconfig -O baseline -E your@email.com
# 故障时收集
sudo supportconfig -O issue -E your@email.com
5. 隐私保护
如需移除敏感数据(密码、IP地址、主机名等):
# 解压归档
tar -xf scc_hostname_*.txz
# 使用sed或其他工具清理敏感信息
sed -i 's/密码/****/g' basic-environment.txt
# 重新打包
tar -cJf scc_hostname_clean.txz scc_hostname_*
🔧 插件系统
supportconfig 的强大之处在于其可扩展的插件系统:
插件位置
/usr/lib/supportconfig/plugins/
插件开发示例
#!/bin/bash
# 自定义插件:plugin-myscript.sh
# 文件名必须以 plugin- 开头
echo "=== Running Custom Plugin ==="
# 执行自定义命令并输出到插件文件
echo "Custom data collected at $(date)" > $LOG_DIR/plugin-myscript.txt
# 运行任意脚本
/usr/local/bin/myscript >> $LOG_DIR/plugin-myscript.txt
echo "=== Custom Plugin Complete ==="
插件安装
# 将脚本复制到插件目录
sudo cp plugin-myscript.sh /usr/lib/supportconfig/plugins/
# 设置可执行权限
sudo chmod +x /usr/lib/supportconfig/plugins/plugin-myscript.sh
下次运行 supportconfig 时,插件将自动执行,输出包含在归档中。
📊 实战案例
案例1:系统无法启动
场景:服务器启动后立即重启,无法进入系统
步骤:
- 进入维护模式或救援模式
- 挂载根文件系统:
mount /dev/sda1 /mnt - chroot到系统:
chroot /mnt - 运行:
supportconfig -m -T SR12345678901 - 检查
basic-health-check.txt和messages.txt
案例2:存储性能问题
场景:磁盘IO缓慢,应用响应变慢
步骤:
- 运行:
supportconfig -i LVM,BTRFS,FS -T SR12345678901 - 检查
fs-lvm.txt中的LVM配置和状态 - 检查
fs-btrfs.txt中的BTRFS统计信息 - 检查
disk-io.txt中的磁盘IO性能数据
案例3:虚拟机网络异常
场景:KVM虚拟机无法连接网络
步骤:
- 运行:
supportconfig -i NETWORK,VIRTUALIZATION -T SR12345678901 - 检查
network-*.txt中的网络配置 - 检查
libvirt.txt中的虚拟网络设置 - 检查
iptables.txt中的防火墙规则
🚀 进阶技巧
1. 自动上传脚本
#!/bin/bash
# auto-supportconfig.sh
SR_NUMBER=$1
EMAIL=$2
if [ -z "$SR_NUMBER" ]; then
echo "Usage: $0 "
exit 1
fi
# 生成并上传
sudo supportconfig -U ftps://support-ftp.us.suse.com/incoming/ \
-T $SR_NUMBER \
-E $EMAIL \
-N "管理员" \
-O "公司名称"
echo "Supportconfig uploaded for SR: $SR_NUMBER"
2. 定期收集脚本(Cron)
# 添加到crontab,每周收集一次
0 3 * * 0 /usr/local/bin/weekly-supportconfig.sh
3. 中央存储库
企业环境中可配置中央FTP服务器,自动收集所有服务器的supportconfig:
- 配置FTP服务器接收归档文件
- 在各服务器上设置定期收集并上传
- 便于集中管理和历史对比
⚠️ 常见问题
Q1: 收集时间过长怎么办?
A: 使用 -m 参数(快速模式)或 -i 参数(限定范围)减少收集量。
Q2: 归档文件太大如何处理?
A: 压缩归档已使用tar.xz格式(最高压缩率),如仍过大,使用 -i 参数排除不必要的模块。
Q3: 如何查看归档内容?
A: 解压后直接查看文本文件:
tar -xf scc_hostname_*.txz
cd scc_hostname_*
cat basic-environment.txt
Q4: 上传失败怎么办?
A: 检查网络连接和防火墙规则,确保可以访问SUSE FTP服务器。如仍失败,手动上传到SUSE Customer Center。
📚 相关资源
💡 总结
supportconfig 是SUSE Linux企业环境必备的诊断工具,能够全面收集系统状态,大幅提升故障排查效率。
核心建议:
- 问题发生后立即运行,收集现场数据
- 使用
-i参数限定收集范围,提升效率 - 定期收集健康基线,便于故障对比
- 关联工单号上传,便于技术支持追踪
- 探索插件系统,自定义收集需求