Fernwartung Download starten

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

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

Festplatten kuendigen ihren Ausfall an — in Form steigender Reallocated Sectors, Pending Sectors und Temperaturen. TrueNAS sammelt all diese SMART-Daten zuverlaessig, doch die Web-UI zeigt nur Momentaufnahmen. Wer einen drohenden Disk-Defekt fruehzeitig 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-Uebersicht: Bei 24 Disks pro Pool ist die manuelle Sichtung jeder einzelnen Platte unrealistisch.
  • Keine Alerts auf Aenderungen: TrueNAS warnt erst, wenn ein SMART-Test fehlschlaegt — nicht, wenn sich Pre-Fail-Werte verschlechtern.

Ein Grafana-Dashboard loest 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 reisst. 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 laeuft 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 ueber die exportierten Felder, ideal fuer dedizierte SMART-Dashboards.

Fuer SMB-Umgebungen empfehlen wir Netdata, da der Aufwand minimal ist. In groesseren Setups mit Dutzenden Disks und individuellen Alerts kommt haeufig der Textfile-Ansatz zum Einsatz.

Variante A: Netdata auf TrueNAS SCALE 25.10

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

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

Die Ausgabe enthaelt 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 ergaenzen 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 koennen pro Disk Labels wie Modell, Seriennummer oder Pool ergaenzen.

Die wichtigsten SMART-Metriken im Dashboard

Nicht jeder SMART-Wert ist relevant. Konzentrieren Sie sich auf die Pre-Fail-Attribute, die statistisch tatsaechlich Ausfaelle 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-VerschleissGauge, fuer NVMe/SSD Pools

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

Alerting auf Pre-Failure-Attribute

Prometheus-Alerts gehoeren in eine separate rules.yml. Drei Regeln decken die wichtigsten Faelle 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 spaete 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), Pruefung ob ZFS bereits CKSUM-Fehler meldet, Long-SMART-Test wird angestossen.
  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 waere die Disk vermutlich erst beim naechsten zpool-Scrub aufgefallen — moeglicherweise gemeinsam mit der zweiten Disk im Mirror, was zum Datenverlust gefuehrt haette.

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 ueberschaubar, der Nutzen messbar: weniger Notfall-Einsaetze, planbare Disk-Tausche, hoehere Verfuegbarkeit Ihres ZFS-Storage.


DATAZONE unterstuetzt Sie beim Aufbau eines vollstaendigen Monitoring-Stacks fuer Ihre TrueNAS-Umgebung — von SMART-Exportern ueber Prometheus-Regeln bis zu Grafana-Dashboards und Alertmanager-Routing. Wir betreiben die Loesung auch laufend im Rahmen unserer Linux- und Storage-Managed-Services. Kontaktieren Sie uns fuer ein Erstgespraech.

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