Recently, I started setting up a new application on my docker host. It was late in the day, and I just wanted to get something up and working to play around with. Just my luck, I was met with wonderfully cryptic error:ERROR: could not find an available, non-overlapping IPv4 address…
After recently deploying a ZFS pool, I realized I had little insight into the health of my drives. I can run SMART stats now and then, but that’s not quite the same.
Scrutiny is a tool to help you with just that. It presents a web UI which shows you statistics on your drives, based on SMART reports, and reports their health.
When originally announced, you could only get access if you supported the author, however now enough people have supported, the project is completely free and open source. Can’t say I’m personally a huge fan of this model, but people who make great software should be rewarded, and I think Scrutiny is great software!
Scrutiny is written in Go meaning, if you so wish, you can deploy it by downloading a single binary, and running that. I however, prefer deploying things as docker containers. Fortunately, there’s both an official one, and one provided by the LinuxServer.io folks.
Scrutiny is split into 2 components: the web UI and the collector. Currently, the collector requires that the container be run
--privileged, so it can run SMART reports correctly. This can pose security issues, as it defeats many of the isolations Docker puts in place for you. Instead, both containers support running just 1 of the entry points, meaning the collector can be run privileged, but not the web UI, massively decreasing the attack surface.
version: "2.3" services: web: image: linuxserver/scrutiny:latest ports: - "7278:8080" volumes: - ./config:/config environment: - SCRUTINY_WEB=true - PUID=3000 - PGID=3000 restart: unless-stopped collector: image: linuxserver/scrutiny:latest privileged: true volumes: - /dev/disk:/dev/disk - /run/udev:/run/udev:ro - ./config:/config environment: - SCRUTINY_COLLECTOR=true - SCRUTINY_API_ENDPOINT=http://web:8080 - PUID=3000 - PGID=3000 restart: unless-stopped
When you first load up the Scrutiny UI, you’ll be met with a message that there’s no data. This is normal. Because Scrutiny only collects data each day at midnight, you’ll need to run the initial import yourself:
docker-compose exec collector scrutiny-collector-metrics run
This will collect metrics for your drives, and report them back to the Scrutiny web process for storage. Once that’s complete, reload the web UI and you’ll be met with some statistics about your drives.
Here you can see all the drives connected to your server, along with a summary of the health of each drive.
Clicking on a drive shows you more statistics, and specific metrics from the SMART report.
Scrutiny is a pretty young project, but the quality of the project, responsiveness of the author, and utility of it are incredible!
I’m definitely leaving this deployed on my machine, and can’t wait to see how this project develops.
Share this page
Docker containers (like onions) have layers. In your Dockerfile, each new RUN, COPY or ADD line creates a new layer (so do the others, but not ones which affect the filesystem). Each layer contains only the files which changed from the previous layer, which allows layers to be shared between…
Last year, I switched all of my hosting from arbitrarily installed packages to Docker. This made installing and configuring incredibly simple, but updating a little less defined. Whilst Docker itself is updated through the system package manager (probably), the containers themselves aren’t. Docker container versions are known as “tags”, and…
View all →