捕获诊断信息
当您的 Unraid 服务器出现问题时,收集详细信息至关重要,以便进行有效的故障排除。这些信息有助于其他人提供准确和及时的帮助,特别是在论坛上发帖时。
:::info[Diagnostics 包括...
诊断 zip 文件包含多个匿名文本文件,创建您 Unraid 系统的详细快照,包括:
- 系统配置:信息关于您的array、共享、网络设置和已安装的插件。
- 系统日志:来自内核、WebGUI 和系统服务的日志,记录可能导致问题的事件。
- 硬件信息:有关连接驱动器、控制器和其他硬件组件的详细信息。
- Docker和VM信息:整体配置用于Docker和虚拟机(不包括关于您个人容器或VMs的信息)。
:::
系统诊断
Unraid 在 WebGUI 的 Tools → Diagnostics 下提供了一个用于故障排除的 Diagnostics 工具。 该工具将生成一个 zip 文件,您可以下载并附加到论坛帖子以获取支持。所有诊断文件都是基于文本的,用户可以查看它们以了解所包含的信息。
| 场景 | 如何捕获 | 笔记 |
|---|---|---|
| WebGUI 可用 | 在 WebGUI 中使用 工具 → 诊断 来生成并下载诊断 zip 文件。 | 诊断默认是匿名的,以保护敏感数据。 |
| WebGUI 不可用 | 通过 SSH、telnet 或直接控制台访问以运行 diagnostics 命令。zip 文件保存到 /boot/logs。 | 重启前务必捕获诊断以保持日志完整。 |
| 阵列 在正常模式下启动 | 这是捕获诊断的首选方法,因为它提供了最完整的信息,尤其是关于驱动器状态的信息。 | 如果这不可能,请参阅 Persistent logs section 以找到替代捕获方法。 |

在论坛发帖时附加单个诊断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.
When your system shuts down gracefully, the session log is saved automatically to the boot device. You can access it after rebooting by going to Tools → Syslog → syslog-previous. This log is also included in diagnostics on the next boot. However, if the system crashes, the system log will be lost. In these cases, enabling syslog mirroring to the boot device or using a remote syslog server is recommended to preserve logs for troubleshooting.
测试驱动器读取性能
您可以使用内置的 Linux 工具来评估硬盘的读取性能。这在诊断缓慢的 parity 同步、缓慢的磁盘响应或 array 或 cache 中驱动器间不匹配的速度时非常有帮助。
如果您遇到以下问题,请考虑运行磁盘读取基准测试:
- 极其缓慢的 parity 构建或 parity checks
- 来自特定磁盘的文件传输速度异常慢
- 添加或更换磁盘后,尤其是在混合使用SSD和HDD时,驱动器不匹配
- 重新分配的扇区或UMDACRC错误,可能表明驱动器故障
尽管这些测试不会为您提供确切的实际文件传输速度,但它们可以指出性能不佳的磁盘和任何控制器瓶颈。
快速测试 (hdparm)
hdparm工具测量磁盘的缓存和缓冲读取速度。
要运行测试,请将X替换为您的磁盘设备(如sdb或sdg),然后输入以下命令:
hdparm -tT /dev/sdX
-T结果显示缓存读取速度。-t结果显示缓冲(顺序)磁盘读取性能。
要更详细地评估所有连接的驱动器,包括 parity 和数据驱动器,考虑使用社区脚本 diskspeed.sh。
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:
- 从Unraid论坛下载脚本。
- 将它放在像
/boot/scripts/这样持久的路径中。 - 使其可执行:
chmod +x /boot/scripts/diskspeed.sh
- 运行脚本:
bash /boot/scripts/diskspeed.sh
此脚本仅执行只读操作,不会修改驱动器上的任何数据。然而,最好在空闲期间安排测试,因为它可能会影响磁盘 I/O 并干扰 array 性能。
访问Docker容器日志
持久日志对于在重启之间保留系统事件记录至关重要。与系统重启时重置的标准日志不同,持久日志使用 Unraid 的内置 syslog 服务器 来保障您可以诊断随时间出现的崩溃或间歇性问题。
选择正确的日志记录方法
前往 Settings → Syslog Server 设置持久日志记录。每种方法都有优缺点:
| 方法 | 优点 | 缺点 | 最佳用于 |
|---|---|---|---|
| Mirror syslog to boot drive | 捕获启动过程事件 | Can wear out the boot device quickly | 短期诊断(几天) |
| 远程 syslog | 日志存储在另一台设备上 | 需要一个独立的常开服务器 | 长期监控(几周到几个月) |
| 本地 syslog | Keeps logs on the array or cache, reducing wear on the boot device | 如果系统崩溃,则较难访问 | 无需外部设备即可进行持续日志记录 |
有关详细的配置帮助,请查看 WebGUI 工具栏中的 帮助 图标。
启用syslog服务器
- Mirror syslog to boot drive
- 远程syslog服务器
- 本地syslog服务器
- Select Yes under Mirror syslog to boot drive.
- Click Apply. Logs will be saved to
/boot/logs/syslogon your boot device
在下次重启时,该文件将重命名为 /boot/logs/syslog-previous。您可以通过 工具 → Syslog → syslog-previous 查看此文件,并且它还将包含在(匿名)诊断中。
原理
- By default, Unraid copies the syslog to the boot device during every graceful shutdown. This is managed through the "Copy syslog to boot drive on shutdown" setting, which is enabled by default.
- If you're troubleshooting crashes, you can enable "Mirror syslog to boot drive." This will write the syslog to both
/var/log/syslogand/boot/logs/syslogin real time. If a crash happens, any syslog entries recorded to the boot device before the crash will be preserved.
两种方法在下次启动后都会生成一个/boot/logs/syslog-previous文件,您可以通过syslog查看器访问,并且将被包含在诊断中。
The Copy syslog to boot drive on shutdown setting is safe for your boot device. However, enabling Mirror syslog to boot drive can lead to excessive writes if left on for an extended period. For long-term logging needs, consider using a local or remote syslog server instead.
- 将本地syslog服务器设为启用。
- 在远程syslog服务器下输入您的syslog服务器的IP地址。
- 点击 应用。
- 日志将流式传输到您指定的设备。

如果您将从远程syslog server上传文件到论坛,它们将不会被匿名。
要在服务器上创建 Unraid syslog 的持久可靠副本:
- 将本地syslog服务器设为启用。
- 配置以下选项:
- 本地syslog文件夹:使用仅缓存或首选共享(SSD最适合)。
- 旋转设置:调整文件大小和数量限制。
- 为了获得最佳的结果并确保所有 syslog 数据(包括启动事件)都被捕获,请将 远程 syslog 服务器 字段设置为您服务器的 IP 地址("环回方法"),否则 syslog 将不会保存到指定共享中。
- This ensures syslog events are both stored locally and persist across reboots, without writing to the boot device.
- 点击 应用。
- 日志将被保存到您指定的共享中。
- 如果您将从本地syslog server上传文件到论坛,它们将不会被匿名。
- 使用这种方法保存的日志不会包含在标准诊断中。如果您需要支持,请单独附上。
:::
访问Docker容器日志
虽然标准诊断仅提供有限的Docker和VM数据,但您可以直接访问容器日志以获得更详细的故障排除信息。
检索Docker日志:
- 通过 WebGUI
- 通过命令行
- 持久日志记录
- 导航至 Docker > Containers
- 点击所需容器的 Logs 图标
使用命令:
docker logs [container_name] > /path/to/save/log.txt
要将容器日志映射到主机路径,请按以下方式配置您的容器模板:
/path/in/container:/logs
虚拟机日志
VM 日志可以通过各自的 hypervisor 访问(例如,QEMU 日志位于 /var/log/libvirt/ )。查看 VM 平台的文档以获取更多详细信息。
当您需要针对应用程序特定问题寻求支持时,请记住单独附上相关的容器或VM日志。