| |
— | 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. |
| |