Linux: Plattenplatz überwachen ohne Nagios/Icinga

Manchmal benötigt man eine Benachrichtigung über den Plattenplatz, ohne ein großes Monitoring Tool wie Nagios/Icinga zur Verfügung zu haben.
Im konkreten Fall war es eine Linux-Appliance, die nach und nach die Systemplatte vollgeschrieben hat.
Leider war hier Icinga nicht nutzbar, da man auf dem System kein snmpd oder die Nagios Clients installieren konnte.

Lösung:
Auf dem Server (Debian) konnte der Konsolen-Mailer „mail“ installiert werden.

  1. Falls nicht schon vorhanden, den ‚mail‘ Konsolenclient installieren
    apt-get install mailutils
  2.  Exim konfigurieren, damit die Mails auch ausserhalb des Systems empfangen werden können:
    dpkg-reconfigure exim4-config
  3. Jetzt benötigen wir noch ein kleines Script:
    vi diskmailer
    Und dann folgenden Text einfügen:

    #!/bin/bash
    CURRENT=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')
    THRESHOLD=90
    
    if [ "$CURRENT" -gt "$THRESHOLD" ] ; then
        mail -s 'Disk Space Alert' mailid@domainname.com << EOF
    Der Plattenplatz deiner root Partition läuft voll. Verwendet: $CURRENT%
    EOF
    fi

    Erklärung:

    Mit CURRENT und TRESHOLD werden zwei Variablen erzeugt, bzw. gesetzt.
    Bevor man das Script einsetzt, kann man die Funktion für die Variable CURRENT überprüfen, in dem man den Befehl in den Klammern in der Shell absetzt:

    df / | grep / | awk '{ print $5}' | sed 's/%//g'

    Dabei sollte jetzt eine ganze Zahl gezeigt werden. Das sind die belegten Prozent der root Partition ‚/‘
    Man kann natürlich auch andere Partitionen so überwachen.
    Mit THRESHOLD gibt man die Warnschwelle an, ab der eine Mail gesendet werden soll. Die Zahl entspricht der belegten Prozent der Partition. Also 90 für eine 90% volle Partition.

    Mit der ‚if‘-Bedingung wird jetzt geprüft, ob die Warnschwelle erreicht wurde:

    if [ "$CURRENT" -gt "$THRESHOLD" ] ; then

    Also wenn der Wert für CURRENT größer ist (-gt) als der Wert für THRESHOLD, dann führe den Mail-Teil aus.
    Der weitere Teil des Scripts ist mehr oder weniger selbsterklärend. Dort wird dann der Betreff (Subject), der Empfänger und der Inhalt der Mail angegeben.

  4. Das Script kann man jetzt z.B. nach /etc/cron.daily legen.
    Nicht vergessen:
    Mit ‚chmod +x‘ ausführbar machen und keine Endung wie ‚.sh‘ in dem Verzeichnis verwenden.
  5. Alternativ kann man das Script auch woanders ablegen und als cronjob laufen lassen.

Hoffe es hilft …

Script-Quelle: linuxjournal

Last updated by at .

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..