Fernwartung Download starten

TrueNAS SMART-Monitoring in Grafana: Disk-Health im Dashboard

TrueNASMonitoringGrafanaSMART
TrueNAS SMART-Monitoring in Grafana: Disk-Health im Dashboard

Festplatten kündigen ihren Ausfall an — in Form steigender Reallocated Sectors, Pending Sectors und Temperaturen. TrueNAS sammelt all diese SMART-Daten zuverlässig, doch die Web-UI zeigt nur Momentaufnahmen. Wer einen drohenden Disk-Defekt frühzeitig erkennen will, braucht Zeitreihen, Dashboards und Alerts.

Genau das leisten Prometheus und Grafana. In diesem Artikel zeigen wir, wie Sie SMART-Werte aus TrueNAS exportieren, mit Prometheus scrapen, in Grafana visualisieren und Alerts auf Pre-Failure-Attribute schalten — damit Sie Disk-Tausch planen, statt im Notfall reagieren.

Warum SMART-Monitoring im Dashboard?

Die TrueNAS-Web-UI zeigt SMART-Werte als Tabelle pro Disk — ein Snapshot ohne Historie. Drei Probleme entstehen daraus:

  • Keine Trends sichtbar: Ob die Reallocated_Sector_Ct seit drei Wochen langsam steigt, sehen Sie nicht. Sie sehen nur den aktuellen Wert.
  • Keine Pool-Übersicht: Bei 24 Disks pro Pool ist die manuelle Sichtung jeder einzelnen Platte unrealistisch.
  • Keine Alerts auf Änderungen: TrueNAS warnt erst, wenn ein SMART-Test fehlschlägt — nicht, wenn sich Pre-Fail-Werte verschlechtern.

Ein Grafana-Dashboard löst alle drei Probleme: Temperatur-Kurven der letzten 30 Tage, Reallocated-Sector-Trends auf Pool-Ebene, Power-On-Hours pro Disk und Alerts, sobald ein kritisches Attribut die Schwelle reißt. So sehen Sie nicht nur, dass eine Disk jetzt Probleme hat, sondern auch, wann sich der Trend gedreht hat.

Architektur: Vom TrueNAS zum Grafana-Panel

Der Daten-Pfad besteht aus drei Komponenten:

+--------------+        +--------------+        +-----------+        +---------+
|  TrueNAS     |  ---> |  Exporter    | <----  | Prometheus | ---> | Grafana |
|  smartctl    |        | (netdata     |        | Scrape +   |       | Panels  |
|  /dev/da*    |        |  oder        |        | TSDB       |       | Alerts  |
|              |        |  textfile)   |        |            |       |         |
+--------------+        +--------------+        +-----------+        +---------+

Zwei praxiserprobte Exporter-Varianten haben sich etabliert:

  • Netdata als Sammler: Netdata läuft auf TrueNAS SCALE als App, sammelt SMART-Daten plus dutzende Systemmetriken und gibt sie im Prometheus-Format unter /api/v1/allmetrics?format=prometheus aus. Geringer Setup-Aufwand, viele Out-of-the-box-Metriken.
  • Textfile-Exporter: Ein Cron-Job ruft smartctl auf, schreibt die Werte in eine .prom-Datei, und der Node-Exporter liest diese aus. Maximale Kontrolle über die exportierten Felder, ideal für dedizierte SMART-Dashboards.

Für SMB-Umgebungen empfehlen wir Netdata, da der Aufwand minimal ist. In größeren Setups mit Dutzenden Disks und individuellen Alerts kommt häufig der Textfile-Ansatz zum Einsatz.

Variante A: Netdata auf TrueNAS SCALE 25.10

Auf TrueNAS SCALE installieren Sie Netdata aus dem Apps-Katalog. Anschließend ist der Prometheus-Endpoint sofort erreichbar:

curl http://truenas.lan:19999/api/v1/allmetrics?format=prometheus | grep smart

Die Ausgabe enthält Metriken wie:

smart_log_attribute_value{device="sda",attribute="reallocated_sector_ct"} 0
smart_log_attribute_value{device="sda",attribute="current_pending_sector"} 0
smart_log_attribute_raw{device="sda",attribute="temperature_celsius"} 38
smart_log_attribute_raw{device="sda",attribute="power_on_hours"} 18432

In der Prometheus-Konfiguration ergänzen Sie einen Job:

scrape_configs:
  - job_name: 'truenas-netdata'
    metrics_path: /api/v1/allmetrics
    params:
      format: ['prometheus']
    scrape_interval: 60s
    static_configs:
      - targets: ['truenas.lan:19999']
        labels:
          host: 'truenas-prod'

Nach einem Prometheus-Reload erscheinen die Metriken im Browser unter http://prometheus.lan:9090/graph.

Variante B: smartmon-Textfile-Exporter

Wer Node-Exporter bereits im Einsatz hat, kann den offiziellen smartmon.sh-Collector nutzen. Auf TrueNAS SCALE (Debian-basiert) installieren Sie das Skript einmalig und legen einen Cronjob an:

# /usr/local/sbin/smartmon.sh installieren (vereinfacht)
cat > /etc/cron.d/smartmon <<'EOF'
*/5 * * * * root /usr/local/sbin/smartmon.sh > /var/lib/node_exporter/textfile/smartmon.prom.$$ \
  && mv /var/lib/node_exporter/textfile/smartmon.prom.$$ /var/lib/node_exporter/textfile/smartmon.prom
EOF

Der Node-Exporter wird mit --collector.textfile.directory=/var/lib/node_exporter/textfile gestartet und liefert dann Metriken im Format:

smartmon_attr_value{disk="/dev/sda",attribute_name="Reallocated_Sector_Ct"} 0
smartmon_attr_value{disk="/dev/sda",attribute_name="Current_Pending_Sector"} 0
smartmon_attr_raw_value{disk="/dev/sda",attribute_name="Temperature_Celsius"} 38
smartmon_device_smart_healthy{disk="/dev/sda",model="WDC WD80EFAX"} 1

Der Vorteil: Sie kontrollieren, welche Attribute exportiert werden, und können pro Disk Labels wie Modell, Seriennummer oder Pool ergänzen.

Die wichtigsten SMART-Metriken im Dashboard

Nicht jeder SMART-Wert ist relevant. Konzentrieren Sie sich auf die Pre-Fail-Attribute, die statistisch tatsächlich Ausfälle vorhersagen (Backblaze-Studien als Referenz):

AttributIDWas es zeigtGrafana-Panel
Reallocated_Sector_Ct5Defekte, ersetzte SektorenStat + Time Series, > 0 highlight
Current_Pending_Sector197Instabile Sektoren, noch nicht ersetztStat, > 0 = Alert
Offline_Uncorrectable198Nicht korrigierbare SektorenStat, > 0 = Alert
UDMA_CRC_Error_Count199Kabel- oder Controller-FehlerTime Series, Steigung beobachten
Temperature_Celsius194Aktuelle Disk-TemperaturHeatmap, > 45 C warnen
Power_On_Hours9BetriebsstundenStat, Lifecycle-Kontext
Wear_Leveling_Count173SSD-VerschleißGauge, für NVMe/SSD Pools

Ein gutes Dashboard kombiniert Pool-Übersicht (Anzahl Disks mit Pending Sectors > 0), Detail-Panels pro Disk (Temperaturkurve, Reallocation-Trend) und einen Top-N-View (z. B. “5 heißeste Disks”).

Alerting auf Pre-Failure-Attribute

Prometheus-Alerts gehören in eine separate rules.yml. Drei Regeln decken die wichtigsten Fälle ab:

groups:
  - name: truenas-smart
    interval: 60s
    rules:
      - alert: SmartPendingSectorsDetected
        expr: smartmon_attr_raw_value{attribute_name="Current_Pending_Sector"} > 0
        for: 10m
        labels:
          severity: critical
        annotations:
          summary: "Pending Sectors auf {{ $labels.disk }} -- Disk-Tausch planen"

      - alert: SmartReallocatedSectorsRising
        expr: increase(smartmon_attr_raw_value{attribute_name="Reallocated_Sector_Ct"}[24h]) > 0
        for: 1h
        labels:
          severity: warning
        annotations:
          summary: "Reallocated Sectors steigen auf {{ $labels.disk }}"

      - alert: SmartDiskTemperatureHigh
        expr: smartmon_attr_raw_value{attribute_name="Temperature_Celsius"} > 50
        for: 15m
        labels:
          severity: warning
        annotations:
          summary: "Disk-Temperatur {{ $value }} C auf {{ $labels.disk }}"

Wichtig ist die Trend-Regel mit increase(...[24h]) > 0: Sie meldet jede Verschlechterung — selbst eine Reallocation von 0 auf 1. Damit erkennen Sie den Beginn der Degradation, nicht erst das späte Stadium.

Praxis-Workflow: Vom Alert zum Disk-Tausch

Ein typischer Lebenszyklus eines Alerts in einer betreuten Umgebung:

  1. Tag 0: Grafana zeigt erste Pending Sectors auf /dev/sdf. Prometheus feuert Alert an Alertmanager.
  2. Tag 0: Alert landet per Webhook in unserem Ticket-System, Status: “Disk-Beobachtung”.
  3. Tag 1-3: Vergleich mit Pool-Status (zpool status), Prüfung ob ZFS bereits CKSUM-Fehler meldet, Long-SMART-Test wird angestoßen.
  4. Tag 3-5: Ersatzdisk wird bestellt, Resilver-Fenster mit dem Kunden abgestimmt.
  5. Tag 5-7: Disk wird im laufenden Betrieb getauscht, Pool resilvered automatisch — ohne Ausfallzeit.

Ohne Monitoring wäre die Disk vermutlich erst beim nächsten zpool-Scrub aufgefallen — möglicherweise gemeinsam mit der zweiten Disk im Mirror, was zum Datenverlust geführt hätte.

Fazit

SMART-Werte sind das ehrlichste Signal, das eine Festplatte sendet — aber nur wer sie kontinuierlich misst, kann sie nutzen. Mit Netdata oder dem smartmon-Exporter, Prometheus als Zeitreihen-Datenbank und Grafana als Dashboard schaffen Sie eine Disk-Health-Plattform, die Pre-Failure-Attribute Wochen vor dem Ausfall meldet.

Der Setup-Aufwand ist überschaubar, der Nutzen messbar: weniger Notfall-Einsätze, planbare Disk-Tausche, höhere Verfügbarkeit Ihres ZFS-Storage.


DATAZONE unterstützt Sie beim Aufbau eines vollständigen Monitoring-Stacks für Ihre TrueNAS-Umgebung — von SMART-Exportern über Prometheus-Regeln bis zu Grafana-Dashboards und Alertmanager-Routing. Wir betreiben die Lösung auch laufend im Rahmen unserer Linux- und Storage-Managed-Services. Kontaktieren Sie uns für ein Erstgespräch.

Mehr zu diesen Themen:

IT-Beratung gewünscht?

Kontaktieren Sie uns für eine unverbindliche Beratung zu Proxmox, OPNsense, TrueNAS und mehr.

Jetzt Kontakt aufnehmen