跳到主要内容

捕获诊断信息

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

:::info[Diagnostics 包括...

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

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

:::


系统诊断

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

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

Disk selection logic

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 服务器 来保留日志以进行故障排除。


测试驱动器读取性能

您可以使用内置的 Linux 工具来评估硬盘的读取性能。这在诊断缓慢的 parity 同步、缓慢的磁盘响应或 arraycache 中驱动器间不匹配的速度时非常有帮助。

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日志。