{"name":"Scrutiny: Hard Drive S.M.A.R.T Monitoring and Failure Prediction","description":"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.","github":"https://github.com/AnalogJ/scrutiny","url":"https://osrepos.com/repo/analogj-scrutiny","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/analogj-scrutiny","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/analogj-scrutiny.md","json":"https://osrepos.com/repo/analogj-scrutiny.json","topics":["Go","Hard Drive Monitoring","S.M.A.R.T","Server Monitoring","Data Storage","Docker","Web UI","System Health"],"keywords":["Go","Hard Drive Monitoring","S.M.A.R.T","Server Monitoring","Data Storage","Docker","Web UI","System Health"],"stars":null,"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.","content":"## Introduction\n\nScrutiny 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.\n\n## Installation\n\nScrutiny offers flexible installation options, with Docker being the recommended and simplest method.\n\n### Docker (Omnibus Image)\n\nFor an all-in-one solution, the omnibus Docker image includes both the web application server and the S.M.A.R.T metric collector.\n\nbash\ndocker run -p 8080:8080 -p 8086:8086 --restart unless-stopped \\\n  -v `pwd`/scrutiny:/opt/scrutiny/config \\\n  -v `pwd`/influxdb2:/opt/scrutiny/influxdb \\\n  -v /run/udev:/run/udev:ro \\\n  --cap-add SYS_RAWIO \\\n  --device=/dev/sda \\\n  --device=/dev/sdb \\\n  --name scrutiny \\\n  ghcr.io/analogj/scrutiny:master-omnibus\n\n\nRemember 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](https://github.com/AnalogJ/scrutiny/blob/master/docker/example.omnibus.docker-compose.yml){target=\"_blank\"}.\n\n### Docker (Hub/Spoke Deployment)\n\nFor more distributed setups, Scrutiny can be deployed in a Hub/Spoke mode, utilizing separate Docker images for the collector, web UI/API, and InfluxDB.\n\nFirst, run InfluxDB:\nbash\ndocker run -p 8086:8086 --restart unless-stopped \\\n  -v `pwd`/influxdb2:/var/lib/influxdb2 \\\n  --name scrutiny-influxdb \\\n  influxdb:2.2\n\n\nThen, the Scrutiny Web UI and API:\nbash\ndocker run -p 8080:8080 --restart unless-stopped \\\n  -v `pwd`/scrutiny:/opt/scrutiny/config \\\n  --name scrutiny-web \\\n  ghcr.io/analogj/scrutiny:master-web\n\n\nFinally, the Scrutiny Collector (run on each server with drives to monitor):\nbash\ndocker run --restart unless-stopped \\\n  -v /run/udev:/run/udev:ro \\\n  --cap-add SYS_RAWIO \\\n  --device=/dev/sda \\\n  --device=/dev/sdb \\\n  -e COLLECTOR_API_ENDPOINT=http://SCRUTINY_WEB_IPADDRESS:8080 \\\n  --name scrutiny-collector \\\n  ghcr.io/analogj/scrutiny:master-collector\n\n\nA `docker-compose` example for the Hub/Spoke setup can be found [here](https://github.com/AnalogJ/scrutiny/blob/master/docker/example.hubspoke.docker-compose.yml){target=\"_blank\"}.\n\n### Manual Installation\n\nFor users who prefer not to use Docker, Scrutiny can also be installed manually. Detailed instructions are available in the [manual installation guide](https://github.com/AnalogJ/scrutiny/blob/master/docs/INSTALL_MANUAL.md){target=\"_blank\"}.\n\n## Examples\n\nOnce Scrutiny is running, you can access the dashboard via your browser at `http://localhost:8080`.\n\n### Triggering the Collector Manually\n\nThe collector is typically configured to run daily, but you can trigger it manually to update your dashboard immediately:\n\nbash\ndocker exec scrutiny /opt/scrutiny/bin/scrutiny-collector-metrics run\n\n\n### Testing Notifications\n\nScrutiny supports various notification services. You can test your notification configuration by sending an empty payload to the health check API:\n\nbash\ncurl -X POST http://localhost:8080/api/health/notify\n\n\n## Why Use Scrutiny?\n\nScrutiny provides a robust solution for hard drive health monitoring with several compelling features:\n\n*   **Web UI Dashboard:** A user-friendly interface focused on critical S.M.A.R.T metrics.\n*   **`smartd` Integration:** Leverages the existing `smartd` daemon without reinventing the wheel.\n*   **Auto-detection:** Automatically detects all connected hard drives.\n*   **Historical Trends:** Tracks S.M.A.R.T metrics over time, allowing you to observe degradation.\n*   **Customized Thresholds:** Uses real-world failure rates for more accurate and proactive alerts.\n*   **Temperature Tracking:** Monitors drive temperatures for additional insights.\n*   **Docker Support:** Easy deployment with all-in-one or hub/spoke Docker images.\n*   **Configurable Alerting:** Supports notifications via webhooks, email, Discord, Slack, Telegram, and many more services.\n\nBy using Scrutiny, you gain better visibility into your hard drive health, enabling you to anticipate and prevent potential drive failures and data loss.\n\n## Links\n\n*   **GitHub Repository:** [AnalogJ/scrutiny](https://github.com/AnalogJ/scrutiny){target=\"_blank\"}\n*   **Omnibus Docker Compose Example:** [example.omnibus.docker-compose.yml](https://github.com/AnalogJ/scrutiny/blob/master/docker/example.omnibus.docker-compose.yml){target=\"_blank\"}\n*   **Hub/Spoke Docker Compose Example:** [example.hubspoke.docker-compose.yml](https://github.com/AnalogJ/scrutiny/blob/master/docker/example.hubspoke.docker-compose.yml){target=\"_blank\"}\n*   **Manual Installation Guide:** [INSTALL_MANUAL.md](https://github.com/AnalogJ/scrutiny/blob/master/docs/INSTALL_MANUAL.md){target=\"_blank\"}\n*   **Troubleshooting Device Collector:** [TROUBLESHOOTING_DEVICE_COLLECTOR.md](https://github.com/AnalogJ/scrutiny/blob/master/docs/TROUBLESHOOTING_DEVICE_COLLECTOR.md){target=\"_blank\"}\n*   **Troubleshooting Notifications:** [TROUBLESHOOTING_NOTIFICATIONS.md](https://github.com/AnalogJ/scrutiny/blob/master/docs/TROUBLESHOOTING_NOTIFICATIONS.md){target=\"_blank\"}","metrics":{"detailViews":8,"githubClicks":2},"dates":{"published":null,"modified":"2025-12-27T00:01:23.000Z"}}