PRTG SMART Monitoring Script (prtg-smart-health-check.v1.sh
)
Dieses Bash-Skript überwacht die S.M.A.R.T.-Werte einer physischen Festplatte oder SSD (SATA, SAS oder NVMe) und liefert die Daten im PRTG-kompatiblen XML-Format. Es wird über einen SSH Script (erweitert) Sensor eingebunden und kann automatisch erkennen, ob es sich um ein klassisches oder NVMe-Gerät handelt.
🔧 Voraussetzungen
- Ein Linux-System (z. B. Debian/Ubuntu/Proxmox)
- Das Paket
smartmontools
muss installiert sein:sudo apt install smartmontools
- Das Skript muss mit
bash
ausgeführt werden - PRTG benötigt SSH-Zugriff mit einem Benutzer, der das Skript ausführen darf
📁 Installation
-
Erstelle den Zielpfad für das Skript (von PRTG vorgegebenes Verzeichnis, kann sonst nicht gelesen werden):
sudo mkdir -p /var/prtg/scriptsxml/
-
Kopiere das Skript in dieses Verzeichnis und mache es ausführbar:
sudo cp prtg-smart-health-check.v1.sh /var/prtg/scriptsxml/ sudo chmod +x /var/prtg/scriptsxml/prtg-smart-health-check.v1.sh
-
Erlaube dem PRTG-SSH-Benutzer die Nutzung von
smartctl
ohne Passwort:echo "prtguser ALL=(ALL) NOPASSWD: /usr/sbin/smartctl" | sudo tee /etc/sudoers.d/prtg-smart
Hinweis: Ersetze
prtguser
durch den tatsächlichen Benutzer, den PRTG per SSH verwendet.
🧪 Testlauf
Vorab kann das Skript manuell getestet werden:
sudo /var/prtg/scriptsxml/prtg-smart-health-check.v1.sh /dev/nvme0n1
⚙️ PRTG-Einbindung
-
Öffne dein PRTG Webinterface
-
Wähle das gewünschte Gerät (der Linux-Host)
-
Klicke auf „Sensor hinzufügen“ → „SSH Script (Erweitert)“
-
Wähle im Dropdown das Skript
prtg-smart-health-check.v1.sh
-
Als Parameter gibst du das physikalische Device an, z. B.:
/dev/sda
oder
/dev/nvme0n1
-
Lasse das Feld „Mutex Name“ leer
-
Speichern – fertig ✅
❗ Wichtig:
Der Benutzer, mit dem PRTG sich per SSH verbindet, muss das angegebene Device lesen dürfen (z. B./dev/nvme0n1
). Üblicherweise ist das nur persudo
mitsmartctl
möglich – genau deshalb ist diesudoers
-Datei erforderlich.
📊 Was wird überwacht?
SATA/SAS:
- Temperatur
- Betriebsstunden
- Reallocated Sectors
- Pending Sectors
- Uncorrectable Sectors
- CRC-Fehler und mehr
NVMe:
- Temperatur
- Wear-Level (% Verbrauch)
- Datenmenge geschrieben/gelesen (TB)
- Unsafe Shutdowns
- Fehlerlogs
- Power-Cycles
- Verlauf des Verschleißes direkt im Sensortext
📁 Caching für Wear-Level-Verlauf
Das Skript speichert den letzten Wear-Level-Wert unter:
/var/prtg/scriptsxml/.smart_wear_dev_nvme0n1.cache
Daraus ergibt sich im Sensortext z. B.:
Wear: 9 % – +1 % seit 2025-03-27
🧠 Ideal für Admins, die Verschleiß frühzeitig erkennen und NVMe-Smartdaten sauber im Monitoring sehen wollen.
Autor: Patrick Asmus – www.techniverse.net