| |
| — | anwenderwiki:nagios:nagios-usbbakupplatte [2013/03/29 15:50] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.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. |
| |