{{tag>nagios monitoring backup externe_festplatte}} ===== 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 -c -p -m " 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.