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=prometheusaus. Geringer Setup-Aufwand, viele Out-of-the-box-Metriken. - Textfile-Exporter: Ein Cron-Job ruft
smartctlauf, 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):
| Attribut | ID | Was es zeigt | Grafana-Panel |
|---|---|---|---|
| Reallocated_Sector_Ct | 5 | Defekte, ersetzte Sektoren | Stat + Time Series, > 0 highlight |
| Current_Pending_Sector | 197 | Instabile Sektoren, noch nicht ersetzt | Stat, > 0 = Alert |
| Offline_Uncorrectable | 198 | Nicht korrigierbare Sektoren | Stat, > 0 = Alert |
| UDMA_CRC_Error_Count | 199 | Kabel- oder Controller-Fehler | Time Series, Steigung beobachten |
| Temperature_Celsius | 194 | Aktuelle Disk-Temperatur | Heatmap, > 45 C warnen |
| Power_On_Hours | 9 | Betriebsstunden | Stat, Lifecycle-Kontext |
| Wear_Leveling_Count | 173 | SSD-Verschleiss | Gauge, 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:
- Tag 0: Grafana zeigt erste Pending Sectors auf
/dev/sdf. Prometheus feuert Alert an Alertmanager. - Tag 0: Alert landet per Webhook in unserem Ticket-System, Status: “Disk-Beobachtung”.
- Tag 1-3: Vergleich mit Pool-Status (
zpool status), Pruefung ob ZFS bereits CKSUM-Fehler meldet, Long-SMART-Test wird angestossen. - Tag 3-5: Ersatzdisk wird bestellt, Resilver-Fenster mit dem Kunden abgestimmt.
- 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:
Weitere Artikel
TrueNAS-Replikation mit ZFS-Encryption-Keys richtig handhaben
TrueNAS-Replikation verschlüsselter ZFS-Datasets: Raw Send, Key-Management an der Gegenstelle und Recovery-Szenarien in der Praxis.
TrueNAS App Catalog: eigene Docker-Images bereitstellen
TrueNAS Scale Custom App erklärt: eigene Docker-Images deployen, Host-Pfade einbinden, Ports freigeben und persistente Datasets nutzen. Mit Update-Workflow.
TrueNAS in Active Directory einbinden: SMB-Shares mit AD-Berechtigungen
TrueNAS SCALE 24.10 ans Active Directory anbinden -- DNS, Kerberos, idmap und SMB-ACLs richtig konfigurieren. Praxisleitfaden mit Troubleshooting.