Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:nagios:nagios-usbbakupplatte]] 

USB Backup-Platte mit Nagios überwachen

Problematik: USB-Backup-Platten am Server sind normalerweise nicht gemounted, sondern mondo-rescue mounted sie erst, wenn es ein Bakup schreiben will. Nach dem Bakup werden die USB-Platten wieder „unmounted“.

Das Nagios-plugin check_disk kann aber nur Partitionen überwachen, die gemounted sind.

Lösung: neues Plugin schreiben, das die Partition ggf. mounted, dann check_disk aufruft und schließlich die Partition wieder unmounted. Da Nagios während einem Bakup abgeschaltet wird, dürfte es keine Konflikte mit den mount-Befehlen geben.

Neues Plugin: /usr/lib/nagios/plugins/check_disk_partition

 #!/bin/bash
 #
 # exit 0 OK
 # exit 1 warning
 # exit 2 critical
 
 helpmessage () {
    echo "Usage check_disk_partition -w <warning> -c <critical> -p <device> -m <mountpoint>"
    exit 0
 }
 
 while getopts w:c:p:m:h opt
 do
    case $opt in
      w)     warn=$OPTARG
             ;;
      c)     critical=$OPTARG
             ;; 
      p)     device=$OPTARG
             ;;
      m)     mountpoint=$OPTARG
             ;;
      h)     helpmessage
             ;;
    esac
 done
    
 mounten="ja"   
 mount | grep $device > /dev/null && mounten="nein"   # Das device ist bereits gemounted
  
 if [ "$mounten" = "ja" ]; then
    mount $device $mountpoint || exit 2
 fi
 
 /usr/lib/nagios/plugins/check_disk -w $warn -c $critical -p $device
 exitstatus=$?
 
 if [ "$mounten" = "ja" ]; then
    umount $device || exit 2
 fi
 
 exit $exitstatus

Hinweis: Diese Datei muss vom Besitzer ausführbar sein!

Zur Beachtung: Das einfache script fängt keine unvorhergesehenen Fehler, wie z.B. dass der mountpoint oder das device nicht existiert, ab!

In einer neuen Datei z.B. testeusb.cfg im Verzeichnis /etc/nagios3/conf.d ist der neue Service einzutragen. Der verwendete mountpoint (hier: /mnt/usbplatte) muss auch angelegt werden. Ebenso muss ggf. der hostname angepasst werden. Das normal_check_interval ist dabei auf 1 Tag (1440 Minuten) gesetzt. Da Nagios nach der crontab-daily immer um 6.25 Uhr neu gestartet wird, gibt es immer morgens diesen check_disk_partition.

 define command{
   command_name    check_disk_partition
   command_line    sudo /usr/lib/nagios/plugins/check_disk_partition -w $ARG1$ -c $ARG2$ -p $ARG3$ -m $ARG4$
   }
 
 define service{
   use                      linuxmuster-service
   host_name                 server.schule.local
   service_description      BACKUP-USB-Platte /dev/sdb1
   notification_options     w,u,c,r
   normal_check_interval    1440
   retry_check_interval     1440
   check_command            check_disk_partition!40%!20%!/dev/sdb1!/mnt/usbplatte 
   }

Und schließlich die Datei sudoers mit visudo editieren (da das script für den mount-Befehl root-Rechte benötigt) - einfach auf der Konsolo visudo eintippen:

Die folgenden Zeilen mit check_disk_partition außerhalb der vom Nagios Paket angebrachten Kommentare ergänzen:

 ...
 # Manuell eingerichtete Nagios Checks
 Cmnd_Alias  NAGIOS_MANUAL=/usr/lib/nagios/plugins/check_disk_partition
 nagios ALL=NOPASSWD: NAGIOS_MANUAL
 ...

Diese Änderungen überleben nun auch Paketupdates von linuxmuster-nagios.

Zuletzt nach den Änderungen ist ein Neuladen der Konfiguration notwendig:

/etc/init.d/nagios3 reload

Probleme: Jede Partition hat einen maximalen mount-count, der durch das mounten von Nagios nun viel früher erreicht wird. Nach dem Erreichen des maximalen mount-count sollte die Partition mit e2fsck kurz überprüft werden.

 [[anwenderwiki:nagios:nagios-usbbakupplatte]] anwenderwiki/nagios/nagios-usbbakupplatte.txt · Zuletzt geändert: 2013/03/29 15:50 von 127.0.0.1