Estimated reading time: 10 minutes

Scrutiny ist ein spezialisiertes Monitoring-Tool für Festplatten, das dir ein zentrales Web-Dashboard, historische S.M.A.R.T.-Trends, temperaturbasierte Überwachung und flexible Alarmierung per Webhooks bietet. Damit erkennst du schleichende Festplattenprobleme frühzeitig und reduzierst das Risiko eines plötzlichen Datenverlusts in deinem Home- oder Lab-Setup deutlich.

For detailed instructions and explanations of all configuration options, I recommend watching the YouTube video linked below. This video goes into detail about each individual setting, providing you with comprehensive instructions on how to set everything up correctly. Any code from the video can be found in this article, so you can use it directly without having to type it out.

This blog post, including video, is part of a series in which we build and set up our own home server. We start with the basics, such as installing Ubuntu VM with Docker, and then move on to configuring our own domain, security measures, and, above all, lots of cool and useful self-hosted services. Whether it's media servers like Plex or Jellyfin or document management like Paperless-NGX, we'll work together to build the setup you want to see. We'll even tackle topics like single sign-on (SSO) together.

Was ist Scrutiny?

Scrutiny ist eine Weboberfläche für die S.M.A.R.T.-Überwachung von Festplatten, die auf dem bestehenden smartd-Ökosystem aufsetzt. Es kombiniert Hersteller-S.M.A.R.T.-Daten mit realen Ausfallraten, um dir eine praxisnahe Einschätzung des Zustands deiner HDDs und SSDs zu geben.​

  • Fokus auf kritische Kennzahlen wie Reallocated Sectors, Pending Sectors und Temperatur.
  • Offene, MIT-lizenzierte Software, geschrieben in Go und für den Selbsthost-Einsatz optimiert.​
Scrutiny
Scrutiny Dashboard

S.M.A.R.T. kurz erklärt

S.M.A.R.T. steht für „Self-Monitoring, Analysis and Reporting Technology“ und ist in die meisten modernen Festplatten und SSDs integriert. Ziel ist es, die Zuverlässigkeit einer Platte zu überwachen und drohende Ausfälle möglichst früh zu erkennen.

  • Typische Metriken sind z.B. Lesefehler, Reallocated Sectors, Temperatur und Start-/Stopp-Zyklen.
  • smartd (aus dem smartmontools-Paket) ist der Daemon, der diese Werte ausliest; Scrutiny setzt genau darauf auf, anstatt das Rad neu zu erfinden.​

Kernfunktionen von Scrutiny

Scrutiny konzentriert sich bewusst auf einige wenige, aber dafür sehr praxisrelevante Features.​

  • Web-Dashboard mit Fokus auf kritische S.M.A.R.T.-Metriken für alle angeschlossenen Laufwerke.​
  • Automatische Erkennung aller verbundenen Festplatten, inklusive mehrerer Controller oder Server.​
  • Historische Trendverfolgung für S.M.A.R.T.-Werte und Temperaturentwicklung über die Zeit.​
  • Individuelle Schwellwerte, die sich an realen Ausfallraten orientieren (z.B. Backblaze-Daten).​
  • Konfigurierbare Alarme und Benachrichtigungen via Webhooks, z.B. an Home-Assistant, Discord oder eigene Webhooks.​
  • Bereitstellung als Docker-Images (Web-UI und Collector getrennt), zusätzlich auch manuell installierbar.​

Architektur: Web & Collector

Scrutiny besteht aus zwei Hauptkomponenten, die du flexibel aufteilen kannst.

  • Web-Container (ghcr.io/analogj/scrutiny:master-web): Enthält Web UI und API, läuft typischerweise auf einem zentralen Server oder NAS.
  • Collector-Container (ghcr.io/analogj/scrutiny:master-collector): Läuft auf jedem Host mit Festplatten, liest über smartctl die S.M.A.R.T.-Daten und sendet sie per HTTP an den Web-Container.

Damit eignet sich Scrutiny ideal für Umgebungen mit mehreren Hosts (z.B. Proxmox + Storage-Server + Backup-NAS), ohne dass du überall eigene Dashboards pflegen musst.

Web-Dashboard im Detail

Das Web-Dashboard ist das Herzstück von Scrutiny und konzentriert sich bewusst auf die Metriken, die im Alltag wirklich zählen.​

  • Übersichtsseite mit allen Platten inklusive Health-Status, Temperatur und Anzahl kritischer Attribute.​
  • Detailansichten pro Laufwerk, z.B. mit S.M.A.R.T.-Tabellen, Rohwerten und Verlauf einzelner Attribute.​
  • Historische Charts, um Trends zu erkennen, etwa langsam steigende Reallocated Sectors oder eine schleichend steigende Temperatur im Server.​

Damit bekommst du ein klares Bild, ob eine Platte stabil läuft, grenzwertig wird oder bereits in einem kritischen Zustand ist.​

Ein Alleinstellungsmerkmal von Scrutiny ist die Kombination aus Herstellerangaben und echten Ausfallstatistiken.​

  • Scrutiny berücksichtigt für seine Schwellenwerte reale Failure-Daten, z.B. aus Backblaze-Ausfallstatistiken.​
  • Du siehst nicht nur „Rohdaten“, sondern bekommst eine Einschätzung, wie kritisch ein bestimmter Wert in der Praxis ist.​

Diese Verknüpfung hilft dir, nicht bei jedem minimalen S.M.A.R.T.-Ausschlag in Panik zu geraten, aber gleichzeitig echte Warnsignale frühzeitig ernst zu nehmen.​

Alarme & Webhook-Integration

Für automatisierte Umgebungen wie dein Homelab sind Alarme oft wichtiger als das reine Dashboard.​

  • Scrutiny kann bei Schwellwertüberschreitungen Webhooks aufrufen, z.B. an Home Assistant, Node-RED oder individuelle Automations-Endpoints.​
  • So kannst du z.B. bei kritischem Zustand einer Platte automatisch ein Backup-Playbook starten, Benachrichtigungen in Slack/Discord senden oder einen Proxmox-Knoten in einen Wartungsmodus versetzen.​

Durch diese Integration wird Scrutiny Teil deiner gesamten Monitoring- und Alerting-Strategie, statt nur ein passives Dashboard zu sein.​

Typisches Homelab-Szenario

Stell dir vor, du betreibst einen Proxmox-Host mit mehreren HDDs und SSDs für VMs und Container, dazu ein NAS für Backups.​

  • Auf jedem Host läuft ein Scrutiny-Collector-Container mit Zugriff auf die lokalen /dev-Devices.​
  • Alle Collector senden ihre S.M.A.R.T.-Daten an einen zentralen Scrutiny-Web-Container, der auf deinem NAS oder einem Management-Server läuft.​
  • Du hast damit ein einheitliches Dashboard über die gesamte Storage-Landschaft und erkennst Tendenzen wie „HDD im Backup-NAS wird langsam kritisch“ frühzeitig.​

Gerade in Kombination mit ZFS oder RAID schützt dich das nicht vor allen Problemen, aber es gibt dir eine deutlich bessere Grundlage für Entscheidungen zum Plattentausch.​

Beispiele für typische S.M.A.R.T.-Signale

Scrutiny hilft dir, typische Problem-Muster schnell zu identifizieren.​

  • Platten, bei denen die Anzahl „Reallocated Sectors“ über Wochen langsam steigt, werden im Dashboard auffällig und sollten zeitnah ersetzt werden.
  • Auffällig hohe Temperaturen (z.B. dauerhaft > 50 °C) werden angezeigt, sodass du Kühlungsprobleme im Gehäuse oder Rack erkennen kannst.​
  • Wenn eine SSD plötzlich viele Lesefehler meldet, kannst du rechtzeitig Backups priorisieren und Workloads umziehen, bevor es kritisch wird.​

Der Mehrwert liegt darin, Trends sichtbar zu machen, statt nur auf einen spontanen Totalausfall zu reagieren.​

Betrieb auf NAS-Systemen (TrueNAS, Synology & Co.)

Viele Nutzer setzen Scrutiny direkt auf NAS-Systemen ein, um die internen und ggf. externen Laufwerke zentral zu überwachen.​

  • Auf TrueNAS Scale kannst du Scrutiny als Docker-Compose-Projekt in der Apps-/Projects-Sektion starten und Volumes für Config, Datenbank und /run/udev konfigurieren.
  • Auf Synology NAS gibt es Anleitungen, wie du Scrutiny im Container Manager mit einem dedizierten Projektordner und den nötigen Device-Mounts betreibst.​

So ergänzt Scrutiny die oft eher rudimentären, herstellerseitigen S.M.A.R.T.-Ansichten deiner NAS-Oberfläche um ein deutlich mächtigeres Dashboard.​

Logging, Debugging & Feintuning

Für den produktiven Betrieb möchtest du Scrutiny in deine Log- und Monitoring-Strategie einbinden.

  • Über Umgebungsvariablen wie DEBUG=true and SCRUTINY_LOG_FILE kannst du detailliertes Logging für das Web-Backend aktivieren.
  • Alternativ setzt du Log-Level und Log-Datei direkt in der scrutiny.yaml, z.B. log.level: DEBUG and log.file: '/tmp/web.log'.

Damit kannst du Probleme bei der Device-Erkennung, smartctl-Aufrufen oder Collector-Kommunikation zielgerichtet analysieren.

Sicherheit & Updates

Da Scrutiny direkt auf Block-Devices zugreift, ist eine saubere Container-Isolation wichtig.​

  • Gib den Containern nur die Devices frei, die sie wirklich benötigen, und begrenze Capabilities möglichst auf SYS_RAWIO.​
  • Aktualisiere regelmäßig auf neue Image-Tags aus der GitHub Container Registry (z.B. master-web, master-collector), um Bugfixes & Sicherheitsupdates zu erhalten.​

Für produktive NAS-Umgebungen lohnt sich ein Testlauf in einer Staging- oder Lab-Instanz, bevor du ein Update flächendeckend ausrollst.​

Installation with Docker

Der einfachste Weg führt über Docker bzw. Docker Compose, da die offiziellen Images alle benötigten Abhängigkeiten mitbringen.​

  • Scrutiny-Web startest du typischerweise mit Volume-Mount für die Konfiguration und einem Port-Mapping auf 8080.​
  • Der Collector benötigt Zugriff auf /run/udev (read-only), SYS_RAWIO-Capabilities und die einzelnen /dev/sdX-Devices, damit smartctl die Platten direkt lesen kann.

Create a file called docker-compose-scrutiny.yml. Here is a proven template based on the official repository:

services:
  scrutiny:
    image: ghcr.io/analogj/scrutiny:master-omnibus
    container_name: scrutiny
    restart: always
    cap_add:
      - SYS_RAWIO
    networks:
      - sascha
    environment:
      - TZ=Europe/Berlin
    ports:
      - "8080:8080"
    volumes:
      - /run/udev:/run/udev:ro
      - /dev/disk:/dev/disk:ro
      - /mnt/cache/appdata/monitoring/scrutiny/config/:/opt/scrutiny/config:rw
      - /mnt/cache/appdata/monitoring/scrutiny/influxdb/:/opt/scrutiny/influxdb:rw
    healthcheck:
      test: ["CMD", "curl", "--fail", "http://localhost:8080/api/health"]
      interval: 1m
      timeout: 10s
      retries: 3

networks:
  sascha:
    external: true

Open your terminal and you can then simply start the services with the following command (the name must of course be adapted):

docker compose -f "docker-compose-scrutiny.yml" up -d

After a few seconds you can click on https://:8080 auf dein Dashboard zugreifen.

Diese Docker-Compose-Datei konfiguriert Scrutiny, ein grafisches Dashboard zur Überwachung des Gesundheitszustands (S.M.A.R.T.-Werte) deiner Festplatten.

Der Dienst

Es wird die „Omnibus“-Variante von Scrutiny verwendet, die alle notwendigen Komponenten (Web-Interface, Datenbank und Sammler) in einem einzigen Container vereint. Der Container ist so eingestellt, dass er nach einem Neustart oder Absturz always automatisch wieder hochfährt.

Hardware-Zugriff und Sicherheit

Damit Scrutiny die Festplattenwerte überhaupt auslesen kann, erhält der Container erweiterte Systemrechte (SYS_RAWIO). Zudem wird dem Container Zugriff auf die Geräte-Informationen des Host-Systems (/dev/disk and /run/udev) gewährt, allerdings nur im Lesemodus, um die Sicherheit zu wahren.

Network and accessibility

  • Network: Der Dienst tritt dem externen Netzwerk sasha bei.
  • Port: Das Dashboard ist über den Port 8080 im Browser erreichbar.
  • Health check: Einmal pro Minute prüft das System intern, ob die Programmschnittstelle (API) noch antwortet.

Data storage

Die Konfiguration und die gesammelten Festplattendaten (in einer InfluxDB) werden dauerhaft auf deinem Server im Verzeichnis /mnt/cache/appdata/monitoring/scrutiny/ gespeichert. So bleiben deine historischen Statistiken und Einstellungen auch bei einem Update des Containers erhalten.

Konfiguration: scrutiny.yaml & collector.yaml

Scrutiny sucht seine YAML-Konfiguration standardmäßig in /opt/scrutiny/config. Dort kannst du mit scrutiny.yaml (Web/API) und collector.yaml (Collector) das Verhalten sehr fein steuern.​

  • In scrutiny.yaml legst du z.B. Log-Level, Log-Dateien, Datenbank-Backend und UI-spezifische Einstellungen fest. Dort legst du auch deine Benachrichtigungsdienste fest. Dazu nutzt Scrutiny das Tool shoutrrr.​ Schau im offiziellen Repository nach der Beispieldatei für scrutiny.yaml.
  • In collector.yaml definierst du u. a. welche Devices überwacht werden, ob Auto-Discovery aktiv ist und wie oft S.M.A.R.T.-Werte erfasst werden.​

Beide Dateien sind optional – ohne Config läuft Scrutiny mit sinnvollen Defaults, was den Einstieg erleichtert.​

YouTube video implementation

Fazit: Warum du Scrutiny einsetzen solltest

Scrutiny bringt dir ein fokussiertes, aber extrem wirkungsvolles Tool an die Hand, um die Gesundheit deiner Festplatten und SSDs dauerhaft im Blick zu behalten. Durch das Zusammenspiel aus S.M.A.R.T.-Überwachung, historischen Trends, realitätsnahen Ausfallschwellen und flexibler Alarmierung wird deine Storage-Landschaft deutlich transparenter und planbarer.​

Gerade im Homelab, bei Proxmox- oder NAS-Setups mit vielen Laufwerken, ist Scrutiny ein idealer Baustein, um Datenverlust vorzubeugen, rechtzeitig Platten zu ersetzen und Cooling- oder Vibrationsprobleme schnell zu erkennen. Mit den offiziellen Docker-Images, klaren Konfigurationsdateien und der smartd-Integration integriert sich das Tool gut in bestehende Umgebungen und bleibt trotz mächtiger Funktionen angenehm schlank.​

The product display was implemented using the affiliate-toolkit WordPress plugin.

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.