Es gibt wieder mal ein neues Plugin, diesmal geht es um die Überwachung von Postfächern/Mailservern/Mailempfang etc. Mit check_mailbox_health prüft man,
Mit check_mailbox_health lassen sich so auch nicht ganz triviale, auf Mail basierende Geschäftsvorgänge monitoren.
Beispiel für eine Anforderung:
$ check_mailbox_health --hostname imap.musterkg.de --mode mail-age \
--username 'MUKG\bestellung' --password geheim \
--warning 30 --critical 30 \
CRITICAL - 2 mails in mailbox, age of the oldest mail is 32 minutes
Die Ausgabe des Plugins kann mit dem Parameter –morphmessage noch an den individuellen Einsatzzweck angepasst werden.
$ check_mailbox_health --hostname imap.musterkg.de --mode mail-age \
--username 'MUKG\bestellung' --password geheim \
--warning 30 --critical 30 \
--morphmessage '^OK.*'='OK - gibt nix zu tun' \
--morphmessage '^CRITICAL.*'='CRITICAL - Bestellung liegt seit 30min rum!!'
CRITICAL - Bestellung liegt seit 30min rum!!
Ein weiteres Beispiel, zugegeben, etwas verwirrend:
Wir brauchen also einen Check, der
define command {
command_name check_mailbox_health
command_line $USER1$/check_mailbox_health \
--hostname '$ARG1$' \
--username '$ARG2$' \
--password '$ARG3$' \
--timeout 120 \
--mode $ARG4$ $ARG5$
}
define service {
service_description last_xls_import
...
check_command check_mailbox_health!imap.musterkg.de!MUKG\imports!geheim!\
count-mails!\
--regexp \
--select subject='Einspielung .* Excel .* erfolgreich' \
--select newer_than='today 12:00' \
--warning 1: --critical 1: \
--isvalidtime $ISVALIDTIME:xls_upload$ \
--morphmessage '^CRITICAL.*'='CRITICAL - Keine aktuellen XLS gefunden' \
--morphmessage '^OK.*mail.*'='OK - XLS-Einspielung ist aktuell'
check_period xls_upload_monitoring
}
define timeperiod {
timeperiod_name xls_upload
alias upload of data
monday 17:00-18:00
tuesday 17:00-18:00
wednesday 17:00-18:00
thursday 17:00-18:00
friday 17:00-18:00
}
define timeperiod {
timeperiod_name xls_upload_monitoring
alias upload of data + 1h
monday 17:00-19:00
tuesday 17:00-19:00
wednesday 17:00-19:00
thursday 17:00-19:00
friday 17:00-19:00
}
In der Servicedefinition sieht man, daß check_mailbox_health u.a. mit –select newer_than=’today 12:00’ aufgerufen wird. Damit wird sichergestellt, daß nur Mails von heute Nachmittag betrachtet werden sollen, alle anderen werden ignoriert.
Das Argument von –isvalidtime, $ISVALIDTIME:xls_upload$, wird so nicht auf der Kommandozeile angegeben, sondern existiert nur in der Servicedefinition. Abhängig davon, ob der Check innerhalb der Timeperiod xls_upload ausgeführt wird oder nicht, nimmt es den Wert 1 oder 0 an.
$ check_mailbox_health --hostname imap.musterkg.de --mode mail-age \
--username 'MUKG\imports' --password geheim \
--mode count-mails \
--regexp \
--select subject='Einspielung .* Excel .* erfolgreich' \
--select newer_than='today 12:00' \
--warning 1: --critical 1: \
--isvalidtime <0 oder 1> \
--morphmessage '^CRITICAL.*'='CRITICAL - Keine aktuellen XLS gefunden' \
--morphmessage '^OK.*mail.*'='OK - XLS-Einspielung ist aktuell'
CRITICAL - Keine aktuellen XLS gefunden
und nach 18:00 dann…
OK - outside valid timerange. check results are not relevant now. original message was: Keine aktuellen XLS gefunden