Scrutiny: Hard Drive S.M.A.R.T Monitoring and Failure Prediction

Scrutiny: Hard Drive S.M.A.R.T Monitoring and Failure Prediction

Summary

Scrutiny is an open-source hard drive health dashboard and monitoring solution. It integrates with smartd to provide S.M.A.R.T monitoring, historical trends, and real-world failure thresholds. This tool helps users detect and replace failing hard drives proactively, preventing data loss.

Repository Info

Updated on December 27, 2025
View on GitHub

Introduction

Scrutiny is a powerful Hard Drive Health Dashboard and Monitoring solution designed to merge manufacturer-provided S.M.A.R.T (Self-Monitoring, Analysis and Reporting Technology) metrics with real-world failure rates. While the smartd daemon is a well-known open-source project for monitoring hard drives, it has certain limitations. smartd does not differentiate between critical and informational S.M.A.R.T attributes, lacks historical tracking, and often uses manufacturer thresholds that are too high for proactive failure detection. Furthermore, smartd is a command-line-only tool, which can be less convenient for headless servers. Scrutiny addresses these challenges by providing a comprehensive web UI, historical trend tracking, customized thresholds, and configurable alerting, empowering users to detect and replace failing hard drives before they cause permanent data loss.

Installation

Scrutiny offers flexible installation options, with Docker being the recommended and simplest method.

Docker (Omnibus Image)

For an all-in-one solution, the omnibus Docker image includes both the web application server and the S.M.A.R.T metric collector.

docker run -p 8080:8080 -p 8086:8086 --restart unless-stopped \
  -v `pwd`/scrutiny:/opt/scrutiny/config \
  -v `pwd`/influxdb2:/opt/scrutiny/influxdb \
  -v /run/udev:/run/udev:ro \
  --cap-add SYS_RAWIO \
  --device=/dev/sda \
  --device=/dev/sdb \
  --name scrutiny \
  ghcr.io/analogj/scrutiny:master-omnibus

Remember to pass through your hard drive devices using --device and ensure /run/udev is mounted. For NVMe drives, add --cap-add SYS_ADMIN. A docker-compose example for the omnibus setup is available here.

Docker (Hub/Spoke Deployment)

For more distributed setups, Scrutiny can be deployed in a Hub/Spoke mode, utilizing separate Docker images for the collector, web UI/API, and InfluxDB.

First, run InfluxDB:

docker run -p 8086:8086 --restart unless-stopped \
  -v `pwd`/influxdb2:/var/lib/influxdb2 \
  --name scrutiny-influxdb \
  influxdb:2.2

Then, the Scrutiny Web UI and API:

docker run -p 8080:8080 --restart unless-stopped \
  -v `pwd`/scrutiny:/opt/scrutiny/config \
  --name scrutiny-web \
  ghcr.io/analogj/scrutiny:master-web

Finally, the Scrutiny Collector (run on each server with drives to monitor):

docker run --restart unless-stopped \
  -v /run/udev:/run/udev:ro \
  --cap-add SYS_RAWIO \
  --device=/dev/sda \
  --device=/dev/sdb \
  -e COLLECTOR_API_ENDPOINT=http://SCRUTINY_WEB_IPADDRESS:8080 \
  --name scrutiny-collector \
  ghcr.io/analogj/scrutiny:master-collector

A docker-compose example for the Hub/Spoke setup can be found here.

Manual Installation

For users who prefer not to use Docker, Scrutiny can also be installed manually. Detailed instructions are available in the manual installation guide.

Examples

Once Scrutiny is running, you can access the dashboard via your browser at http://localhost:8080.

Triggering the Collector Manually

The collector is typically configured to run daily, but you can trigger it manually to update your dashboard immediately:

docker exec scrutiny /opt/scrutiny/bin/scrutiny-collector-metrics run

Testing Notifications

Scrutiny supports various notification services. You can test your notification configuration by sending an empty payload to the health check API:

curl -X POST http://localhost:8080/api/health/notify

Why Use Scrutiny?

Scrutiny provides a robust solution for hard drive health monitoring with several compelling features:

  • Web UI Dashboard: A user-friendly interface focused on critical S.M.A.R.T metrics.
  • smartd Integration: Leverages the existing smartd daemon without reinventing the wheel.
  • Auto-detection: Automatically detects all connected hard drives.
  • Historical Trends: Tracks S.M.A.R.T metrics over time, allowing you to observe degradation.
  • Customized Thresholds: Uses real-world failure rates for more accurate and proactive alerts.
  • Temperature Tracking: Monitors drive temperatures for additional insights.
  • Docker Support: Easy deployment with all-in-one or hub/spoke Docker images.
  • Configurable Alerting: Supports notifications via webhooks, email, Discord, Slack, Telegram, and many more services.

By using Scrutiny, you gain better visibility into your hard drive health, enabling you to anticipate and prevent potential drive failures and data loss.

Links