修正和完成配置的步骤
以下是完整的步骤,确保你的自定义监控正常工作:

  1. 确认 /root/check_hdd_wakeup.sh 内容
    确保脚本内容正确。如果还未填写,请编辑它:

bash

收起

自动换行

复制
nano /root/check_hdd_wakeup.sh
输入以下内容:

bash

收起

自动换行

复制

!/bin/bash

for disk in /dev/sd[a-z]; do

if [ -b "$disk" ]; then
    state=$(hdparm -C $disk | grep "drive state" | awk '{print $4}')
    if [ "$state" == "active/idle" ]; then
        echo "disk_wakeup.$disk 1" # 表示硬盘被唤醒
    else
        echo "disk_wakeup.$disk 0" # 表示硬盘睡眠
    fi
fi

done
保存并退出(Ctrl+O, Enter, Ctrl+X),然后确认可执行权限:

bash

收起

自动换行

复制
chmod +x /root/check_hdd_wakeup.sh

  1. 检查并创建 charts.d.conf
    TrueNAS Scale 的 Netdata 可能没有默认的 /etc/netdata/charts.d.conf 文件。如果文件不存在,需要手动创建:

bash

收起

自动换行

复制
nano /etc/netdata/charts.d.conf
添加以下内容:

text

收起

自动换行

复制
custom=check_hdd_wakeup
保存并退出。这告诉 Netdata 启用一个名为 check_hdd_wakeup 的自定义插件。

如果文件已存在,只需确保添加了 custom=check_hdd_wakeup 一行。

  1. 创建 check_hdd_wakeup.conf
    你需要在这个文件中定义插件的行为:

bash

收起

自动换行

复制
nano /etc/netdata/charts.d/check_hdd_wakeup.conf
输入以下内容:

text

收起

自动换行

复制
check_hdd_wakeup_update_every=60
check_hdd_wakeup_command=/root/check_hdd_wakeup.sh
check_hdd_wakeup_update_every=60: 设置更新频率为每 60 秒。
check_hdd_wakeup_command=/root/check_hdd_wakeup.sh: 指定运行的脚本。 保存并退出。

  1. 修正 exclude_netdata.conf(可选)
    你当前的 exclude_netdata.conf 禁用了部分 Netdata 统计数据(enabled = no)。如果你希望保留所有默认监控,只需将 enabled = no 改为 enabled = yes,或者删除该文件(除非你明确需要排除某些图表)。例如:

bash

收起

自动换行

复制
nano /etc/netdata/charts.d/exclude_netdata.conf
改为:

text

收起

自动换行

复制
[netdata]

    enabled = yes
    exclude chart = worker.*

保存并退出。

  1. 重启 Netdata 服务
    应用所有更改后,重启 Netdata:

bash

收起

自动换行

复制
systemctl restart netdata
检查服务状态,确保其正常运行:

bash

收起

自动换行

复制
systemctl status netdata

  1. 检查 Netdata UI
    返回 TrueNAS Web 界面,进入 Reporting > Netdata。
    在左侧菜单中,查找 Custom 或 Disks 部分。
    你应该能看到类似 disk_wakeup./dev/sda 的图表,显示每个硬盘的唤醒状态(1 表示唤醒,0 表示睡眠)。
    可能的错误及解决方法
    脚本报错
    如果运行脚本时提示 hdparm 不可用,安装它:
    bash

收起

自动换行

复制
apt install hdparm
如果没有 /dev/sd[a-z] 设备,检查你的硬盘设备名(例如 nvme0n1),并修改脚本中的 for 循环。
图表未显示
确认 /etc/netdata/charts.d/check_hdd_wakeup.conf 和 charts.d.conf 已正确配置。
检查 Netdata 日志:
bash

收起

自动换行

复制
journalctl -u netdata
查找与 check_hdd_wakeup 相关的错误。
TrueNAS 更新覆盖配置
TrueNAS Scale 更新可能会重置 /etc/netdata 的内容。建议将脚本和配置文件备份到持久化数据集(例如 /mnt/pool_name/config),并在 System Settings > Advanced > Init/Shutdown Scripts 中添加启动脚本恢复配置。
测试脚本
在配置完成前,可以手动运行脚本测试:

bash

收起

自动换行

复制
/root/check_hdd_wakeup.sh
预期输出类似:

text

收起

自动换行

复制
disk_wakeup./dev/sda 1
disk_wakeup./dev/sdb 0

标签: none

添加新评论