Menu

<< | Zurück

|SSD-Health-Monitoring für PVE

 

Monitoring-Script wurde speziell für Proxmox VE entwickelt. Es nutzt die interne Proxmox-API (pvesh), um SSD-Verschleißwerte auszulesen, ohne dass
zusätzliche Hardware-Tools wie smartmontools direkt angesprochen werden müssen.

Automatisierung: Das Script scannt bei jedem Durchlauf das gesamte System nach installierten Laufwerken. Neue SSDs oder NVMes werden automatisch
in die Überwachung aufgenommen, eine manuelle Konfiguration der Laufwerkspfade ist nicht erforderlich.

Anleitung als PDF runterladen: SSD-Health-Monitoring

1. VORAUSSETZUNGEN (Einmalig ausführen)

Damit alles funktioniert, muss dieses Tool installiert sein

  • @sudo apt-get install jq

2. SCRIPT

Speicherort: /root/check_ssd_wearout.sh

Rechte: chmod 700 /root/check_ssd_wearout.sh

  • sudo nano /root/check_ssd_wearout.sh

  • @chmod +x /root/check_ssd_wearout.sh

Script 

#!/bin/bash

# --- Konfiguration ---
THRESHOLD=95        
EMAIL="email@meineDomain.ch"
HOSTNAME=$(hostname)

# Pfade
PVESH="/usr/bin/pvesh"
JQ="/usr/bin/jq"

# 1. Alle Disks finden
DISKS=$($PVESH get /nodes/$HOSTNAME/disks/list --output-format json | $JQ -r '.[] | .devpath')

for DISK in $DISKS; do
    # 2. Den Rohwert aus der Proxmox-API holen
    API_VAL=$($PVESH get /nodes/$HOSTNAME/disks/list --output-format json | $JQ -r ".[] | select(.devpath == \"$DISK\") | .wearout" | grep -oE '[0-9]+' | head -1)
    
    if ; then
        
        # 3. Den Wert so umwandeln, wie er in der Proxmox GUI steht
        if ; then
            # NVMe: 100 - 97 = 3% Verschleiß
            DISPLAY_VAL=$((100 - API_VAL))
        else
            # SSD: 100 - 7 = 93% Verschleiß (Damit es zur GUI passt)
            DISPLAY_VAL=$((100 - API_VAL))
        fi

        # 4. DER ALARM-CHECK: Jetzt vergleichen wir die 93% mit der 95
        # 93 ist NICHT groesser als 95 -> Keine Mail wird gesendet.
        if [ "$DISPLAY_VAL" -ge "$THRESHOLD" ]; then
            MSG="SSD VERSCHLEISS-ALARM auf $HOSTNAME
-------------------------------------------
Gerät:             $DISK
Verschleiß (GUI):  $DISPLAY_VAL%
Limit:             $THRESHOLD%

Dieser Alarm wurde ausgelöst, weil der Verschleiß das Limit von $THRESHOLD% erreicht oder überschritten hat."

            echo -e "$MSG" | mail -s "SSD Alert: $DISK ($DISPLAY_VAL%)" "$EMAIL" \
            -a "From: MeinAbsenderName <$EMAIL>" \
            -a "Content-Type: text/plain; charset=UTF-8"
        fi
    fi
done

3. AUTOMATISIERUNG (CRONTAB)

Der Check läuft jeden Morgen um 8:00 Uhr.

  • Befehl zum Bearbeiten: crontab -e
  • Eintrag: 0 8 * * * /root/check_ssd_wearout.sh

4. MERKZETTEL

5. Download dieses Script in ZIP: check_ssd_wearout.zip

 

Mehr erfahren...