Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— |
anwenderwiki:nagios:nagios-usbbakupplatte [2013/03/29 15:50] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | {{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 <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. | ||