# 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: ```bash 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 1. Erstelle den Zielpfad für das Skript (von PRTG vorgegebenes Verzeichnis, kann sonst nicht gelesen werden): ```bash sudo mkdir -p /var/prtg/scriptsxml/ ``` 2. Kopiere das Skript in dieses Verzeichnis und mache es ausführbar: ```bash sudo cp prtg-smart-health-check.v1.sh /var/prtg/scriptsxml/ sudo chmod +x /var/prtg/scriptsxml/prtg-smart-health-check.v1.sh ``` 3. Erlaube dem PRTG-SSH-Benutzer die Nutzung von `smartctl` ohne Passwort: ```bash 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: ```bash sudo /var/prtg/scriptsxml/prtg-smart-health-check.v1.sh /dev/nvme0n1 ``` ## ⚙️ PRTG-Einbindung 1. Öffne dein PRTG Webinterface 2. Wähle das gewünschte Gerät (der Linux-Host) 3. Klicke auf **„Sensor hinzufügen“ → „SSH Script (Erweitert)“** 4. Wähle im Dropdown das Skript `prtg-smart-health-check.v1.sh` 5. Als **Parameter** gibst du das physikalische Device an, z. B.: ``` /dev/sda ``` oder ``` /dev/nvme0n1 ``` 6. Lasse das Feld **„Mutex Name“** leer 7. Speichern – fertig ✅ ![SMART Sensor in PRTG](assets/screenshot_1.png) > ❗ **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 per `sudo` mit `smartctl` möglich – genau deshalb ist die `sudoers`-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 ![SMART Sensor in PRTG](assets/screenshot_2.png) ## 📁 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](https://www.techniverse.net)