🐧 Linux 🔵 SUSE

SUSE supportconfig – 企业级系统诊断的黄金标准

📅 发布于 2026年3月21日 | ⏱️ 阅读时间约 10 分钟
适用场景:SUSE Linux Enterprise Server (SLES)、openSUSE Leap、openSUSE Tumbleweed 系统的故障诊断、性能分析、技术支持

🔍 工具概述

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

常用关键字包括:NETWORKLVMBTRFSSYSTEMDSECURITYYASTVIRTUALIZATION 等。

📂 归档文件结构

解压后的归档文件包含以下核心内容:

核心信息文件

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+个功能模块,每个模块对应一个或多个文本文件:

🚀 提交给技术支持

步骤1:创建服务请求

  1. 访问 SUSE Customer Center: https://scc.suse.com/support/requests
  2. 创建服务请求,记录工单编号(如 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:无互联网连接的服务器(手动上传)

  1. 在服务器上运行:sudo supportconfig -T SR12345678901
  2. 将生成的 .txz 文件通过U盘或安全传输方式复制到有互联网的机器
  3. 登录SUSE Customer Center,在服务请求中上传文件
提示:SUSE将系统报告视为机密数据,仅用于解决您的问题。详细隐私政策请参考:SUSE Privacy Policy

🎯 最佳实践

1. 问题发生后立即收集

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:系统无法启动

场景:服务器启动后立即重启,无法进入系统

步骤:

  1. 进入维护模式或救援模式
  2. 挂载根文件系统:mount /dev/sda1 /mnt
  3. chroot到系统:chroot /mnt
  4. 运行:supportconfig -m -T SR12345678901
  5. 检查 basic-health-check.txtmessages.txt

案例2:存储性能问题

场景:磁盘IO缓慢,应用响应变慢

步骤:

  1. 运行:supportconfig -i LVM,BTRFS,FS -T SR12345678901
  2. 检查 fs-lvm.txt 中的LVM配置和状态
  3. 检查 fs-btrfs.txt 中的BTRFS统计信息
  4. 检查 disk-io.txt 中的磁盘IO性能数据

案例3:虚拟机网络异常

场景:KVM虚拟机无法连接网络

步骤:

  1. 运行:supportconfig -i NETWORK,VIRTUALIZATION -T SR12345678901
  2. 检查 network-*.txt 中的网络配置
  3. 检查 libvirt.txt 中的虚拟网络设置
  4. 检查 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:

⚠️ 常见问题

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企业环境必备的诊断工具,能够全面收集系统状态,大幅提升故障排查效率。

核心建议:

  1. 问题发生后立即运行,收集现场数据
  2. 使用 -i 参数限定收集范围,提升效率
  3. 定期收集健康基线,便于故障对比
  4. 关联工单号上传,便于技术支持追踪
  5. 探索插件系统,自定义收集需求
一劳永逸:将 supportconfig 纳入运维规范,建立标准化的故障诊断流程。