Scrutiny Disk Health Monitor
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-omnibus4 cap_add: 5 - SYS_RAWIO6 ports: 7 - "8080:8080"8 volumes: 9 - ./scrutiny.yaml:/opt/scrutiny/config/scrutiny.yaml:ro10 - scrutiny_config:/opt/scrutiny/config11 - scrutiny_influxdb:/opt/scrutiny/influxdb12 - /run/udev:/run/udev:ro13 devices: 14 - /dev/sda15 - /dev/sdb16 networks: 17 - scrutiny-net18 restart: unless-stopped1920volumes: 21 scrutiny_config: 22 scrutiny_influxdb: 2324networks: 25 scrutiny-net: 26 driver: bridge.env Template
.env
1# Scrutiny Configuration2# All configuration in scrutiny.yaml34# Device paths to monitor5# Add all disks: /dev/sda, /dev/sdb, etc.Usage Notes
- 1Dashboard at http://localhost:8080
- 2Add disk devices to container
- 3Monitors S.M.A.R.T. attributes
- 4Predictive failure warnings
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 scrutiny:5 image: ghcr.io/analogj/scrutiny:master-omnibus6 cap_add:7 - SYS_RAWIO8 ports:9 - "8080:8080"10 volumes:11 - ./scrutiny.yaml:/opt/scrutiny/config/scrutiny.yaml:ro12 - scrutiny_config:/opt/scrutiny/config13 - scrutiny_influxdb:/opt/scrutiny/influxdb14 - /run/udev:/run/udev:ro15 devices:16 - /dev/sda17 - /dev/sdb18 networks:19 - scrutiny-net20 restart: unless-stopped2122volumes:23 scrutiny_config:24 scrutiny_influxdb:2526networks:27 scrutiny-net:28 driver: bridge29EOF3031# 2. Create the .env file32cat > .env << 'EOF'33# Scrutiny Configuration34# All configuration in scrutiny.yaml3536# Device paths to monitor37# Add all disks: /dev/sda, /dev/sdb, etc.38EOF3940# 3. Start the services41docker compose up -d4243# 4. View logs44docker compose logs -fOne-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 | bashTroubleshooting
- 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 & ObservabilityAd Space
Shortcuts: C CopyF FavoriteD Download