尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

在 NAS 上部署 Scrutiny 硬盘健康监控:从单容器到跨机器的完整方案

在 NAS 上部署 Scrutiny 硬盘健康监控:从单容器到跨机器的完整方案 在 NAS 上部署 Scrutiny 硬盘健康监控从单容器到跨机器的完整方案【免费下载链接】scrutinyHard Drive S.M.A.R.T Monitoring, Historical Trends Real World Failure Thresholds项目地址: https://gitcode.com/GitHub_Trending/sc/scrutiny凌晨两点收到一封邮件说某块机械盘的温度突破阈值——这类告警靠 smartd 的纯文本日志很难第一时间看懂。Scrutiny 硬盘健康监控把 S.M.A.R.T 采集、历史存储和 Web 展示拆成独立组件用 Grafana 式的图表替代了读日志也替代了 smartd 默认的邮件规则。下面按实际部署路径走一遍。 用 Omnibus 镜像十分钟拉起监控这一步解决先看到盘的问题目标是让所有盘出现在仪表板里。确认宿主机装了 docker且目标磁盘设备可被容器访问。参照 官方 omnibus 示例编排文件 创建 compose 文件镜像使用ghcr.io/analogj/scrutiny:master-omnibus该镜像把 Web、InfluxDB、collector 打进一个容器。在devices下逐行列出设备节点例如- /dev/sda容器读 S.M.A.R.T 必须拿到原始块设备。给容器加SYS_RAWIO能力示例文件已包含否则 smartctl 读不到盘。docker compose up -d后访问 8080 端口第一块盘的信息约在几分钟内出现。Omnibus 适合盘和 Web 在同一台机器的场景后面跨机器部分会讲 collector 拆出去的做法。 拆解核心能力每个组件解决什么collector 周期性采集在容器里默认由 cron 调度编排见 rootfs/etc/cron.d/scrutiny按COLLECTOR_CRON_SCHEDULE定时执行scrutiny-collector-metrics run解决数据从哪来、多久采一次。InfluxDB 时序存储 SQLite 元数据S.M.A.R.T 数值写 InfluxDB设备与阈值写本地 SQLite解决趋势数据放哪。Web 仪表板按盘展示温度曲线、属性历史状态色块区分通过/警告/失败解决一眼看出哪块盘有问题。阈值体系内置 ATA/NVMe/SCSI 属性元数据代码在 thresholds 目录告警线取自真实故障统计而非厂商阈值解决厂商 warning 太保守或太激进。通知通道基于 Shoutrrr URL 格式支持邮件、Discord、Telegram、Slack、ntfy 等解决告警发给谁。️ 多平台落地方案Synology装 collector把盘留在群晖上群晖方案是Hub 在别处、Spoke 在群晖。步骤按官方文档安装 EntwareDSM7 已验证注意 DSM 固件升级可能破坏 Entware 环境。sudo opkg install smartmontools装新版 smartctl。建目录/volume1/Entware/scrutiny/{bin,conf}下载对应架构的 collector 二进制并加执行权限。放置 collector 配置填写host.id和api.endpoint指向 Hub 地址。写一个几行的 run 脚本在 DSM 任务计划程序里建每日定时任务执行。完整步骤见 群晖 collector 安装文档。Unraid用模板一键拉起Unraid 上装 Community Applications 插件然后在列表里找到 scrutiny 条目点 Install。模板已预置好参数无需改配置。镜像可选作者维护的master-omnibusDebian 基础或 linuxserver 维护的 Alpine 版本镜像问题找镜像维护者应用问题找项目本身。其他平台TrueNAS、QNAP、RockStor、PFSense、Windows 均有官方支持文档入口在 SUPPORTED_NAS_OS.md。⚙️ 配置要点与避坑配置文件示例在 example.collector.yaml 和 example.scrutiny.yaml按 key 不区分大小写解析。设备识别是第一个坑。RAID 卡后的盘、SAT 桥接设备经常识别错类型在devices里强制指定即可devices: - device: /dev/bus/0 type: [megaraid,14, megaraid,15] - device: /dev/sda type: sat这样配的原因是 collector 用smartctl --scan自动探测RAID 控制器下扫描结果常常只有控制器本身需要--deviceTYPE逐位指定。第二个坑是权限collector 读原始 I/O 需要SYS_RAWIO容器或 root裸机脚本群晖任务里要. /opt/etc/profile再执行脚本否则 PATH 里没有 smartctl。通知配置用 Shoutrrr URL在 scrutiny.yaml 的notify.urls里写notify: urls: - discord://tokenwebhookid - ntfy://username:passwordhost:port/topic用户名密码含特殊字符需 URL 编码。排障时先手动跑一次smartctl --scan确认设备可见再看 Web 端api/health是否正常设备级问题查 设备采集排障文档。⚖️ 与 smartd 的差异维度smartdScrutiny呈现日志 邮件文本Web 图表、历史趋势告警阈值依赖厂商默认值基于真实故障数据集的阈值部署系统服务Docker 单容器或 Hub/Spoke 拆分数据无历史存储InfluxDB 时序库可回看smartd 采集逻辑本身更成熟Scrutiny 的价值在存储历史和可视化层二者可以并存。适合多台机器、盘分布在 NAS 与独立主机的存储环境。建议先在一块非系统盘上跑 7 天确认温度和属性曲线正常后再纳入全部磁盘。【免费下载链接】scrutinyHard Drive S.M.A.R.T Monitoring, Historical Trends Real World Failure Thresholds项目地址: https://gitcode.com/GitHub_Trending/sc/scrutiny创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表