AnalogJ

scrutiny: Monitor Drive Health and SMART Trends

Scrutiny collects S.M.A.R.T. data and presents drive health, temperature, and historical trends in a web dashboard. It suits self-hosted server operators who want to spot degradation and receive drive-failure alerts.

Stars
8.3k
Forks
303
Stars, last 10 days
+57

Our take

Health score

57/100

How it is scored
Activity
64
Community
56
Issues
56
Pull requests
52

+57 stars in the last 10 days

Overview

Scrutiny is a self-hosted dashboard for monitoring hard-drive health through S.M.A.R.T. data collected by smartctl. It adds historical tracking and a focused view of critical metrics to help address gaps in command-line monitoring, such as difficulty spotting gradual changes over time.

It is aimed at people managing servers or other systems with multiple drives who want a central view of drive status and configurable alerts. Scrutiny combines manufacturer-provided metrics with real-world failure thresholds; it does not replace backups or guarantee that a drive failure can be predicted.

Key Features

  • Web dashboard focused on critical S.M.A.R.T. metrics.
  • Uses smartd and smartctl for drive discovery and monitoring.
  • Tracks S.M.A.R.T. metrics and temperature over time.
  • Applies customized thresholds informed by real-world failure rates.
  • Sends configurable failure and collector-error notifications through webhooks and supported services.
  • Supports an all-in-one Docker image or separate collector, web/API, and InfluxDB components.

Use Cases

  • A home-server operator wants a dashboard of drive health and temperature across several disks.
  • A NAS or server administrator wants historical metrics to notice gradual changes that a one-time status check may miss.
  • An operator wants notifications when a drive reports a failure or the collector cannot read its S.M.A.R.T. data.
  • A multi-server administrator wants to run collectors on individual hosts and send results to a central web interface.

Getting Started

The quickest route is the Docker omnibus image. Pass through the disks you want monitored and the required device metadata access:

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 \
  --name scrutiny \
  ghcr.io/analogj/scrutiny:latest-omnibus

Open http://localhost:8080 to view the dashboard. Pin a specific image version for predictable updates, and consult the README for device passthrough, configuration, and deployment details.

Considerations

  • Scrutiny's README describes the project as a work in progress, so some rough edges may remain.
  • The collector needs access to the monitored devices. Docker deployments require device passthrough, /run/udev, and SYS_RAWIO; NVMe drives may also require SYS_ADMIN.
  • RAID and virtual-drive visibility depends on what smartctl --scan detects and whether the controller exposes underlying S.M.A.R.T. data. Device type overrides may be needed.
  • S.M.A.R.T. data and thresholds are not a guarantee of advance warning. Keep independent backups and assess drive health using your broader operational practices.

Found this useful?

Share it with someone who would like scrutiny.