Estimated reading time: 10 minutes

Scrutiny is a specialized hard drive monitoring tool that provides you with a centralized web dashboard, historical S.M.A.R.T. trends, temperature-based monitoring, and flexible alerts via webhooks. This allows you to detect creeping hard drive issues early on and significantly reduce the risk of sudden data loss in your home or lab setup.

For detailed instructions and explanations of all configuration options, I recommend watching the YouTube video linked below. This video goes into detail about each individual setting, providing you with comprehensive instructions on how to set everything up correctly. Any code from the video can be found in this article, so you can use it directly without having to type it out.

This blog post, including video, is part of a series in which we build and set up our own home server. We start with the basics, such as installing Ubuntu VM with Docker, and then move on to configuring our own domain, security measures, and, above all, lots of cool and useful self-hosted services. Whether it's media servers like Plex or Jellyfin or document management like Paperless-NGX, we'll work together to build the setup you want to see. We'll even tackle topics like single sign-on (SSO) together.

What is Scrutiny?

Scrutiny is a web interface for monitoring hard drives using S.M.A.R.T., built on top of the existing smartd ecosystem. It combines manufacturer S.M.A.R.T. data with real-world failure rates to give you a practical assessment of the condition of your HDDs and SSDs.

  • Focus on key metrics such as reallocated sectors, pending sectors, and temperature.
  • Open-source software licensed under the MIT License, written in Go and optimized for self-hosting.
Scrutiny
Scrutiny Dashboard

S.M.A.R.T. Explained in a Nutshell

S.M.A.R.T. stands for „Self-Monitoring, Analysis, and Reporting Technology“ and is built into most modern hard drives and SSDs. Its purpose is to monitor the reliability of a drive and detect potential failures as early as possible.

  • Typical metrics include read errors, reallocated sectors, temperature, and start/stop cycles.
  • smartd (from the smartmontools package) is the daemon that reads these values; Scrutiny relies on it rather than reinventing the wheel.

Key Features of Scrutiny

Scrutiny deliberately focuses on a few features that are highly relevant to real-world use.

  • Web dashboard that focuses on critical S.M.A.R.T. metrics for all connected drives.
  • Automatic detection of all connected hard drives, including those connected to multiple controllers or servers.
  • Historical trend analysis for S.M.A.R.T. values and temperature changes over time.
  • Custom thresholds based on actual failure rates (e.g., Backblaze data).​
  • Configurable alerts and notifications via webhooks, e.g., to Home Assistant, Discord, or your own webhooks.
  • Available as Docker images (Web UI and Collector are separate), and can also be installed manually.

Architecture: Web & Collector

Scrutiny consists of two main components that you can allocate flexibly.

  • Web container (ghcr.io/analogj/scrutiny:master-web): Contains the web UI and API; typically runs on a central server or NAS.
  • Collector Container (ghcr.io/analogj/scrutiny:master-collector): Runs on any host with hard drives, reads S.M.A.R.T. data using smartctl, and sends it to the web container via HTTP.

This makes Scrutiny ideal for multi-host environments (e.g., Proxmox + storage server + backup NAS) without requiring you to maintain separate dashboards for each one.

Web Dashboard: A Closer Look

The web dashboard is the heart of Scrutiny and is designed to focus on the metrics that really matter in day-to-day operations.

  • Overview page showing all disks, including health status, temperature, and the number of critical attributes.
  • Detailed views for each drive, including S.M.A.R.T. tables, raw values, and the history of individual attributes.
  • Historical charts for identifying trends, such as slowly rising reallocated sectors or a gradually increasing temperature in the server.

This will give you a clear idea of whether a drive is running stably, is nearing the limit, or is already in a critical condition.

One of Scrutiny's unique selling points is its combination of manufacturer specifications and real-world failure statistics.

  • Scrutiny uses actual failure data—such as Backblaze outage statistics—to determine its thresholds.
  • You don't just see „raw data“; you also get an assessment of how critical a particular value is in practice.

This approach helps you avoid panicking at every minor S.M.A.R.T. reading, while still taking genuine warning signs seriously at an early stage.

Alerts & Webhook Integration

In automated environments like your home lab, alerts are often more important than the dashboard itself.

  • Scrutiny can trigger webhooks when thresholds are exceeded, for example, to Home Assistant, Node-RED, or custom automation endpoints.
  • For example, if a disk is in a critical state, you can automatically trigger a backup playbook, send notifications to Slack or Discord, or put a Proxmox node into maintenance mode.

With this integration, Scrutiny becomes an integral part of your overall monitoring and alerting strategy, rather than just a passive dashboard.

A typical home lab scenario

Imagine you're running a Proxmox host with multiple HDDs and SSDs for VMs and containers, plus a NAS for backups.

  • A Scrutiny Collector container runs on each host with access to the local /dev devices.
  • All Collectors send their S.M.A.R.T. data to a central Scrutiny web container running on your NAS or a management server.
  • This gives you a unified dashboard for your entire storage landscape, allowing you to identify trends—such as „HDD capacity in the backup NAS is becoming critically low“—at an early stage.

While this won't protect you from all problems—especially when used in combination with ZFS or RAID—it does give you a much better basis for deciding which drives to replace.

Examples of typical S.M.A.R.T. indicators

Scrutiny helps you quickly identify common problem patterns.

  • Drives where the number of „reallocated sectors“ slowly increases over several weeks will stand out in the dashboard and should be replaced promptly.
  • The system alerts you to unusually high temperatures (e.g., consistently above 50 °C), allowing you to identify cooling issues inside the chassis or rack.
  • If an SSD suddenly starts reporting a lot of read errors, you can prioritize backups and migrate workloads in time before the situation becomes critical.

The added value lies in identifying trends rather than simply reacting to a sudden total failure.

Operation on NAS systems (TrueNAS, Synology, etc.)

Many users deploy Scrutiny directly on NAS systems to centrally monitor internal and, if applicable, external drives.

  • On TrueNAS Scale, you can launch Scrutiny as a Docker Compose project in the Apps/Projects section and configure volumes for config, database, and /run/udev.
  • Synology NAS provides instructions on how to run Scrutiny in Container Manager with a dedicated project folder and the necessary device mounts.

Scrutiny supplements the often rather basic, manufacturer-provided S.M.A.R.T. views on your NAS interface with a significantly more powerful dashboard.

Logging, Debugging, and Fine-Tuning

For production use, you'll want to integrate Scrutiny into your logging and monitoring strategy.

  • Via environment variables such as DEBUG=true and SCRUTINY_LOG_FILE you can enable detailed logging for the web backend.
  • Alternatively, you can set the log level and log file directly in the scrutiny.yaml file, for example:. log.level: DEBUG and log file: '/tmp/web.log'.

This allows you to specifically analyze issues related to device detection, smartctl commands, or collector communication.

Security & Updates

Since Scrutiny accesses block devices directly, proper container isolation is important.

  • Grant containers only the devices they actually need, and limit capabilities as much as possible to SYS_RAWIO.​
  • Update regularly to the latest image tags from the GitHub Container Registry (e.g., master-web, master-collector) to receive bug fixes and security updates.

For production NAS environments, it’s a good idea to run a test on a staging or lab instance before rolling out an update across the entire system.

Installation with Docker

The easiest way is to use Docker or Docker Compose, since the official images include all the necessary dependencies.

  • You typically start Scrutiny-Web using volume mounting for configuration and port mapping to 8080.
  • The Collector requires read-only access to /run/udev, SYS_RAWIO capabilities, and the individual /dev/sdX devices so that smartctl can read the disks directly.

Create a file called docker-compose-scrutiny.yml. Here is a proven template based on the official repository:

services:
  scrutiny:
    image: ghcr.io/analogj/scrutiny:master-omnibus
    container_name: scrutiny
    restart: always
    cap_add:
 - SYS_RAWIO
    networks:
 - sascha
    environment:
 - TZ=Europe/Berlin
    ports:
 - "8080:8080"
    volumes:
 - /run/udev:/run/udev:ro
 - /dev/disk:/dev/disk:ro
      - /mnt/cache/appdata/monitoring/scrutiny/config/:/opt/scrutiny/config:rw
 - /mnt/cache/appdata/monitoring/scrutiny/influxdb/:/opt/scrutiny/influxdb:rw
    healthcheck:
 test: ["CMD", "curl", "--fail", "http://localhost:8080/api/health"]
      interval: 1m
 timeout: 10s
 retries: 3

networks:
  sascha:
    external: true

Open your terminal and you can then simply start the services with the following command (the name must of course be adapted):

docker compose -f "docker-compose-scrutiny.yml" up -d

After a few seconds you can click on https://:8080 to access your dashboard.

This Docker Compose file configures Scrutiny, a graphical dashboard for monitoring the health status (S.M.A.R.T. values) of your hard drives.

The Service

The „Omnibus“ version of Scrutiny is used, which combines all necessary components (web interface, database, and collector) into a single container. The container is configured so that after a restart or crash always restarts automatically.

Hardware Access and Security

To enable Scrutiny to read the hard drive values at all, the container is granted extended system privileges (SYS_RAWIO). In addition, the container is granted access to the host system's device information (/dev/disk and /run/udev) is granted, but only in read-only mode to ensure security.

Network and accessibility

  • Network: The service joins the external network sasha at.
  • Port: The dashboard is accessible via the port 8080 accessible in a browser.
  • Health check: Once a minute, the system checks internally to see if the application programming interface (API) is still responding.

Data storage

The configuration and the collected hard drive data (in an InfluxDB) are permanently stored on your server in the directory /mnt/cache/appdata/monitoring/scrutiny/ saved. This ensures that your historical statistics and settings are preserved even if the container is updated.

Configuration: scrutiny.yaml & collector.yaml

By default, Scrutiny looks for its YAML configuration in /opt/scrutiny/config. There you can scrutiny.yaml (Web/API) and collector.yaml (Collector) fine-tune the behavior.

  • In scrutiny.yaml Here, you can configure settings such as log levels, log files, the database backend, and UI-specific options. You can also set up your notification services here. To do this, Scrutiny uses the tool shoutrrr. Check out the official repository based on the sample file for scrutiny.yaml.
  • In collector.yaml You can specify, among other things, which devices are monitored, whether auto-discovery is enabled, and how often S.M.A.R.T. values are collected.

Both files are optional—even without a configuration file, Scrutiny runs with sensible default settings, which makes it easier to get started.

YouTube video implementation

Conclusion: Why You Should Use Scrutiny

Scrutiny provides you with a focused yet extremely powerful tool to keep a constant eye on the health of your hard drives and SSDs. Through the combination of S.M.A.R.T. monitoring, historical trends, realistic failure thresholds, and flexible alerts, your storage landscape becomes significantly more transparent and predictable.

Especially in home labs, or in Proxmox or NAS setups with multiple drives, Scrutiny is an ideal tool for preventing data loss, replacing drives in a timely manner, and quickly identifying cooling or vibration issues. With official Docker images, clear configuration files, and smartd integration, the tool integrates seamlessly into existing environments and remains pleasantly lightweight despite its powerful features.

The product display was implemented using the affiliate-toolkit WordPress plugin.

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.