Hard Drive Health: A 6-Month Production Review of Scrutiny on Docker

HomeLab tutorial - IT technology blog
HomeLab tutorial - IT technology blog

Protecting Data Before the Clicking Starts

Six months ago, I woke up to a degraded RAID-Z2 array on my primary media server. One of my aging 8TB Western Digital Reds had developed over 1,400 reallocated sectors overnight. Redundancy saved my data, but the 18-hour rebuild process was a wake-up call. My monitoring strategy was purely reactive. I was relying on sporadic manual checks and system emails that usually ended up in my spam folder.

That scare led me to Scrutiny. After half a year of running it in my production HomeLab, it has become a non-negotiable part of my stack. It strips away the complexity of raw S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) data, turning cryptic hexadecimal values into a clean dashboard with automated alerts.

How Do You Track Disk Health?

Before settling on Scrutiny, I looked at three common ways to monitor hardware. The right choice depends on whether you manage two drives or twenty.

1. The Manual CLI (smartmontools)

This is the standard approach. You install smartmontools and run smartctl -a /dev/sda when you feel like something is wrong. It is lightweight and has zero impact on system resources. However, it provides no history. If a drive hit 55°C during a heavy scrub while you were asleep, you’d miss it. It also becomes a chore once you have multiple servers to check.

2. Built-in NAS Notifications

TrueNAS and Synology offer decent email alerts for failed short tests. This works well for those specific units. But in a modern HomeLab with Proxmox nodes, Raspberry Pis, and standalone Docker hosts, your monitoring ends up scattered. You shouldn’t have to check five different web portals to know if your storage is safe.

3. The Scrutiny Dashboard

Scrutiny acts as a central command center. It uses a “Collector” to gather hardware data and a “Web UI” to store it in an InfluxDB database. It tracks every attribute over time. If your “Reallocated Sector Count” grows by just one or two every week, Scrutiny flags the trend. You can catch a failing drive months before it actually dies.

The 6-Month Verdict: Pros and Cons

Every service you add to your server costs resources and time. Here is how Scrutiny stacks up after long-term testing.

The Good

  • Visual Trend Mapping: Seeing a graph of temperature fluctuations helps you spot airflow issues. I discovered one drive in my bottom bay was consistently 5°C hotter than the others.
  • Smart Attribute Filtering: It separates critical failures from informational ones. You won’t get a heart attack over a high “Power-On Hours” count.
  • Flexible Alerting: It integrates with Discord, Telegram, and Gotify. I received a Discord ping the moment a secondary drive hit a 45°C warning threshold during a heatwave.
  • Fast Deployment: Using Docker means you don’t have to mess with host-level dependencies or Python versions.

The Bad

  • Hardware Permissions: The container needs --privileged mode to talk to the disk controller. This is a trade-off between security and functionality that some users might dislike.
  • Resource Footprint: Because it runs an internal InfluxDB instance, it uses about 200MB to 300MB of RAM. That is more than a simple cron job, but still negligible for most modern systems.

The Ideal Deployment Strategy

For most users, the Omnibus Docker Image is the way to go. It packages the UI, API, and Database into one container. If you have a multi-server setup, you can run the full version on your main node and the “Collector-only” version on your smaller nodes. All data then flows back to a single dashboard.

I recommend using Docker Compose. It makes drive mappings clear and ensures you can move your setup to a new server in seconds. This is much cleaner than managing long, one-off CLI commands.

Step-by-Step: Deploying Scrutiny

We will use the latest-omnibus image to get everything running in one go. Follow these steps to set it up on your Docker host.

1. Organize Your Folders

Start by creating a dedicated space for Scrutiny’s configuration and database files to live.

mkdir -p ~/homelab/scrutiny/config
mkdir -p ~/homelab/scrutiny/influxdb
cd ~/homelab/scrutiny

2. Configure Docker Compose

Create a docker-compose.yml file. Note the devices and volumes sections. These allow the container to “see” the physical hardware of your machine.

version: '3.8'

services:
  scrutiny:
    container_name: scrutiny
    image: ghcr.io/analogj/scrutiny:latest-omnibus
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - /run/udev:/run/udev:ro
      - ./config:/opt/scrutiny/config
      - ./influxdb:/opt/scrutiny/influxdb
      - /dev:/dev
    privileged: true
    environment:
      - TZ=America/New_York

3. Fire It Up

Launch the service with a single command:

docker-compose up -d

Visit http://your-server-ip:8080. Give it a minute to run the first scan. Your drives will appear with a “Healthy” status if everything is working correctly.

4. Set Up Alerts (Don’t Skip This)

A dashboard is only useful if you look at it. To get push notifications, create a scrutiny.yaml file in your config folder. Here is a simple Discord webhook template:

version: 1
notify:
  urls:
    - "discord://webhookid@webhooktoken"
  threshold:
    status: ["failed", "warning"]
    metrics: true

Restart the container with docker-compose restart scrutiny to apply the changes. Now, you can relax knowing your server will tap you on the shoulder if a drive starts to wobble.

A Note on NVMe and RAID

During my testing, I found that NVMe drives and drives behind hardware RAID cards (like Dell PERC controllers) can be finicky. Scrutiny is good at auto-detecting these, but you might occasionally need to create a collector.yaml to specify a device type like sat or nvme. For 95% of users with standard SATA drives or HBAs in IT mode, it works perfectly out of the box.

Final Thoughts

Monitoring hard drives isn’t exactly a thrilling hobby. However, it is the most important maintenance task in any HomeLab. Scrutiny hits the sweet spot between a simple tool and a deep data analyzer. Since I installed it, I have already replaced two drives that showed early signs of failure. I did it on my own schedule, rather than during an emergency at 2:00 AM. If you care about your data, spend twenty minutes setting this up this weekend.

Share: