跳到主要内容

捕获诊断信息

当您的 Unraid 服务器出现问题时,收集详细信息至关重要,以便进行有效的故障排除。这些信息有助于其他人提供准确和及时的帮助,特别是在论坛上发帖时。

:::info[Diagnostics 包括...

诊断 zip 文件包含多个匿名文本文件,创建您 Unraid 系统的详细快照,包括:

  • 系统配置:信息关于您的array、共享、网络设置和已安装的插件。
  • 系统日志:来自内核、WebGUI 和系统服务的日志,记录可能导致问题的事件。
  • 硬件信息:有关连接驱动器、控制器和其他硬件组件的详细信息。
  • Docker和VM信息:整体配置用于Docker和虚拟机(不包括关于您个人容器或VMs的信息)。

:::


系统诊断

Unraid 在 WebGUITools → Diagnostics 下提供了一个用于故障排除的 Diagnostics 工具。 该工具将生成一个 zip 文件,您可以下载并附加到论坛帖子以获取支持。所有诊断文件都是基于文本的,用户可以查看它们以了解所包含的信息。

场景如何捕获备注
WebGUI 可用使用 WebGUI 中的 Tools → Diagnostics 生成并下载诊断 zip 文件。诊断默认是匿名化的,以保护敏感数据。
WebGUI 不可用通过 SSH、telnet 或直接控制台访问以运行 diagnostics 命令。zip 文件保存到 /boot/logs始终在重启前捕获诊断以保持日志完整。
阵列 在正常模式下启动这是捕获诊断的首选方法,因为它提供了最完整的信息,尤其是关于驱动器状态的信息。如果这不可能,请参阅 Persistent logs section 以找到替代捕获方法。

磁盘选择逻辑

important

在论坛发帖时附加单个诊断zip文件-避免单独上传提取的文件。

诊断数据的匿名化

By default, diagnostics are automatically anonymized. If you enable Mover logging under Settings → Scheduler → Mover Settings, the syslog will include details about files the Mover processes. It's best to allow Mover logging only when troubleshooting specific Mover-related issues, as it may reveal file paths and names.

当您的系统正常关闭时,会话日志会自动保存到闪存驱动器中。重新启动后,您可以通过 Tools → Syslog → syslog-previous 访问它。这个日志也会在下次启动时包含在诊断中。然而,如果系统崩溃,系统日志将丢失。在这些情况下,建议启用 syslog 镜像到闪存或使用远程 syslog 服务器 来保留日志以进行故障排除。


测试驱动器读取性能

You can use built-in Linux tools to evaluate the read performance of your hard drives. This is helpful when diagnosing slow parity syncs, sluggish disk responses, or mismatched speeds among drives in an array or cache.

When 以及为什么要测试驾驶速度

如果您遇到以下问题,请考虑运行磁盘读取基准测试:

  • 极其缓慢的 parity 构建或 parity checks
  • 来自特定磁盘的文件传输速度异常慢
  • 添加或更换磁盘后,尤其是在混合使用SSD和HDD时,驱动器不匹配
  • 重新分配的扇区或UMDACRC错误,可能表明驱动器故障

尽管这些测试不会为您提供确切的实际文件传输速度,但它们可以指出性能不佳的磁盘和任何控制器瓶颈。

快速测试 (hdparm)

hdparm工具测量磁盘的缓存和缓冲读取速度。

要运行测试,请将X替换为您的磁盘设备(如sdbsdg),然后输入以下命令:

hdparm -tT /dev/sdX
  • -T结果显示缓存读取速度。
  • -t结果显示缓冲(顺序)磁盘读取性能。
提示

多次运行此测试以获得更可靠的基准。例如,您可以使用以下单行命令运行 12 次测试:

for ((i=0;i<12;i++)); do hdparm -tT /dev/sdX; done
备注

确保替换 /dev/sdX 为有效的物理设备。避免选择像 /dev/md1 这样的逻辑 Unraid 设备,因为这些设备包含可能会扭曲原始性能读数的 parity 过程。

全面测试(diskspeed.sh)

要更详细地评估所有连接的驱动器,包括 parity 和数据驱动器,考虑使用社区脚本 diskspeed.sh

该脚本:

  • 在磁盘表面多个线性偏移处测试读取速度
  • 生成CSV数据和性能热图(图像)
  • 可以识别出表现不佳的区域,这可能是硬件故障或问题SMR驱动器的征兆

要开始使用diskspeed.sh

  1. Unraid论坛下载脚本。
  2. 将它放在像/boot/scripts/这样持久的路径中。
  3. 使其可执行:
chmod +x /boot/scripts/diskspeed.sh
  1. 运行脚本:
bash /boot/scripts/diskspeed.sh
备注

此脚本仅执行只读操作,不会修改驱动器上的任何数据。然而,最好在空闲期间安排测试,因为它可能会影响磁盘 I/O 并干扰 array 性能。


持久日志(syslog server)

持久日志对于在重启之间保留系统事件记录至关重要。与系统重启时重置的标准日志不同,持久日志使用 Unraid 的内置 syslog 服务器 来保障您可以诊断随时间出现的崩溃或间歇性问题。

选择正确的日志记录方法

前往 Settings → Syslog Server 设置持久日志记录。每种方法都有优缺点:

方法优点缺点最佳适用
镜像到闪存捕获引导过程事件可能迅速磨损闪存驱动器短期诊断(几天)
远程 syslog日志存储在其他设备上需要一个独立的常开服务器长期监控(数周到数月)
本地 syslogarraycache 上保持日志,减少闪存磨损。如果系统崩溃,则较难访问无需外部设备即可进行持续日志记录
提示

有关详细的配置帮助,请查看 WebGUI 工具栏中的 帮助 图标。

启用syslog服务器

  1. 镜像到闪存下选择
  2. 点击 应用。日志将保存到闪存驱动器上的 /boot/logs/syslog

在下次重启时,该文件将重命名为 /boot/logs/syslog-previous。您可以通过 工具 → Syslog → syslog-previous 查看此文件,并且它还将包含在(匿名)诊断中。

原理

  • 默认情况下,Unraid 在每次正常关闭时将 syslog 复制到闪存驱动器。这通过“在关闭时将 syslog 复制到闪存”设置进行管理,并且默认启用。
  • 如果您正在排查崩溃,可以启用“镜像到闪存”。这将同步 syslog/var/log/syslog/boot/logs/syslog。如果发生崩溃,崩溃前记录到闪存的 syslog 条目将被保留。

两种方法在下次启动后都会生成一个/boot/logs/syslog-previous文件,您可以通过syslog查看器访问,并且将被包含在诊断中。

注意

在关闭时将 syslog 复制到闪存 设置对您的闪存驱动器是安全的。但是,启用 镜像到闪存 如果长时间开启可能导致过度写入。对于长期记录需求,建议使用本地或远程 syslog server


访问Docker容器日志

虽然标准诊断仅提供有限的Docker和VM数据,但您可以直接访问容器日志以获得更详细的故障排除信息。

检索Docker日志:

  • 导航至 Docker > Containers
  • 点击所需容器的 Logs 图标

虚拟机日志

VM 日志可以通过各自的 hypervisor 访问(例如,QEMU 日志位于 /var/log/libvirt/ )。查看 VM 平台的文档以获取更多详细信息。

important

当您需要针对应用程序特定问题寻求支持时,请记住单独附上相关的容器或VM日志。