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=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 ü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):
| 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-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:
- 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), Prüfung ob ZFS bereits CKSUM-Fehler meldet, Long-SMART-Test wird angestoßen. - 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 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:
Weitere Artikel
TrueNAS 27 statt 26: iXsystems benennt den Dezember-Release um — was das für Planung und Upgrade-Pfade heißt
iXsystems hat den bisher als TrueNAS 26 entwickelten Nachfolger von 25.10 Goldeye kurz vor dem Dezember-Release in TrueNAS 27 umbenannt. Was hinter der Umbenennung steckt, welche Technik-Basis drin ist (Kernel 6.18, OpenZFS 2.4), wann GA kommt und wie der Upgrade-Pfad von 25.10 realistisch aussieht.
Was kostet Storage wirklich? Cloud vs. TrueNAS über 5 Jahre
Cloud-Storage wirkt günstig – bis Egress, API-Calls und Dauerbetrieb die Rechnung drehen. Eine ehrliche TCO-Betrachtung über 5 Jahre: wann sich On-Premise-TrueNAS rechnet, inklusive Beispielrechnung und Konfigurator.
TrueNAS als Immutable-Backup-Target für Veeam & Proxmox (S3 Object Lock)
Unveränderliche Backups gegen Ransomware: Wie Sie TrueNAS als S3-kompatibles Immutable-Target mit Object Lock für Veeam und den Proxmox Backup Server einsetzen – on-premise, ohne Cloud-Egress.