docker.recipes

Scrutiny Disk Health Monitor

intermediate

Hard drive health monitoring with S.M.A.R.T. data, predictive failure analysis, and alerting.

Overview

Scrutiny is an open-source hard drive monitoring application created by Jason Kulatunga that provides comprehensive S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) data analysis with predictive failure detection. The project emerged from the need for a modern, web-based alternative to traditional command-line tools like smartctl, offering intuitive dashboards and proactive alerting for storage health management. Scrutiny's omnibus Docker image combines the web interface, data collector, and embedded InfluxDB instance into a single container that continuously monitors connected drives and analyzes their S.M.A.R.T. attributes for signs of degradation or impending failure. This integrated stack leverages InfluxDB's time-series capabilities to store historical S.M.A.R.T. metrics, enabling trend analysis and predictive modeling that can identify failing drives before catastrophic data loss occurs. The combination provides system administrators with early warning systems, detailed health reports, and customizable alerting rules based on manufacturer-specific failure thresholds. This configuration is particularly valuable for homelab enthusiasts, small businesses, and IT professionals managing critical storage infrastructure who need enterprise-grade monitoring without the complexity of separate tool deployment and configuration.

Key Features

  • Real-time S.M.A.R.T. attribute collection and analysis from connected storage devices
  • Predictive failure detection using manufacturer-specific threshold databases and trend analysis
  • Web-based dashboard displaying drive health scores, temperature graphs, and detailed attribute history
  • Customizable alerting system with email notifications for critical drive conditions
  • Historical trend analysis using InfluxDB time-series storage for long-term drive health tracking
  • Support for multiple drive types including SATA, SAS, NVMe, and USB-connected storage devices
  • Automated drive discovery and registration with configurable scanning intervals
  • RESTful API for integration with external monitoring systems and automation tools

Common Use Cases

  • 1Homelab servers monitoring multiple drives in NAS systems and media servers
  • 2Small business file servers requiring proactive storage failure prevention
  • 3Development workstations with critical project data needing drive health oversight
  • 4Remote server installations where physical drive access for diagnostics is limited
  • 5RAID array monitoring to identify individual drive degradation before array failure
  • 6Data recovery service providers tracking client drive health during imaging processes
  • 7IT departments managing workstation fleets with centralized storage health reporting

Prerequisites

  • Docker host with at least 512MB RAM available for InfluxDB and web interface operation
  • Physical or virtual access to storage devices that support S.M.A.R.T. monitoring
  • Host system with smartmontools package installed or container running in privileged mode
  • Port 8080 available on the host system for web interface access
  • Understanding of device mapping concepts to expose storage devices to containers
  • Basic knowledge of S.M.A.R.T. attributes and drive health terminology

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 scrutiny:
3 image: ghcr.io/analogj/scrutiny:master-omnibus
4 cap_add:
5 - SYS_RAWIO
6 ports:
7 - "8080:8080"
8 volumes:
9 - ./scrutiny.yaml:/opt/scrutiny/config/scrutiny.yaml:ro
10 - scrutiny_config:/opt/scrutiny/config
11 - scrutiny_influxdb:/opt/scrutiny/influxdb
12 - /run/udev:/run/udev:ro
13 devices:
14 - /dev/sda
15 - /dev/sdb
16 networks:
17 - scrutiny-net
18 restart: unless-stopped
19
20volumes:
21 scrutiny_config:
22 scrutiny_influxdb:
23
24networks:
25 scrutiny-net:
26 driver: bridge

.env Template

.env
1# Scrutiny Configuration
2# All configuration in scrutiny.yaml
3
4# Device paths to monitor
5# Add all disks: /dev/sda, /dev/sdb, etc.

Usage Notes

  1. 1Dashboard at http://localhost:8080
  2. 2Add disk devices to container
  3. 3Monitors S.M.A.R.T. attributes
  4. 4Predictive failure warnings

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 scrutiny:
5 image: ghcr.io/analogj/scrutiny:master-omnibus
6 cap_add:
7 - SYS_RAWIO
8 ports:
9 - "8080:8080"
10 volumes:
11 - ./scrutiny.yaml:/opt/scrutiny/config/scrutiny.yaml:ro
12 - scrutiny_config:/opt/scrutiny/config
13 - scrutiny_influxdb:/opt/scrutiny/influxdb
14 - /run/udev:/run/udev:ro
15 devices:
16 - /dev/sda
17 - /dev/sdb
18 networks:
19 - scrutiny-net
20 restart: unless-stopped
21
22volumes:
23 scrutiny_config:
24 scrutiny_influxdb:
25
26networks:
27 scrutiny-net:
28 driver: bridge
29EOF
30
31# 2. Create the .env file
32cat > .env << 'EOF'
33# Scrutiny Configuration
34# All configuration in scrutiny.yaml
35
36# Device paths to monitor
37# Add all disks: /dev/sda, /dev/sdb, etc.
38EOF
39
40# 3. Start the services
41docker compose up -d
42
43# 4. View logs
44docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/scrutiny-disk-monitoring/run | bash

Troubleshooting

  • No drives detected in dashboard: Verify device mappings in docker-compose and ensure SYS_RAWIO capability is properly assigned
  • S.M.A.R.T. data not collecting: Check that smartmontools can access drives on host system and udev volume mount is correctly configured
  • High memory usage from InfluxDB: Adjust retention policies in scrutiny.yaml configuration file to limit historical data storage
  • Web interface showing connection errors: Confirm InfluxDB embedded instance is starting properly and scrutiny_influxdb volume has sufficient disk space
  • Drives showing as unsupported: Update Scrutiny image to latest version for expanded device compatibility and newer S.M.A.R.T. attribute databases
  • Alert notifications not working: Verify SMTP configuration in scrutiny.yaml and check container logs for authentication errors

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Components

scrutiny-webscrutiny-collectorinfluxdb

Tags

#scrutiny#disk#smart#hardware#health

Category

Monitoring & Observability
Ad Space