2025-03-29 01:38:28 +01:00
2025-03-28 15:27:52 +01:00
2025-03-28 11:17:27 +00:00

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

  1. Erstelle den Zielpfad für das Skript (von PRTG vorgegebenes Verzeichnis, kann sonst nicht gelesen werden):

    sudo mkdir -p /var/prtg/scriptsxml/
    
  2. 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
    
  3. 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

  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

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

📁 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

Description
No description provided
Readme MIT 199 KiB
Languages
Shell 100%