Monitoring: Unterschied zwischen den Versionen
[unmarkierte Version] | [gesichtete Version] |
Admin (Diskussion | Beiträge) |
|||
(54 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
+ | __NOTOC__ | ||
MailStore verfügt selber nur über eingeschränkte Benachrichtigungs- oder Monitoringfunktionalitäten. Mittels externer Komponenten kann jedoch zum Beispiel der Status der Archivierungsdurchläufe überwacht werden. | MailStore verfügt selber nur über eingeschränkte Benachrichtigungs- oder Monitoringfunktionalitäten. Mittels externer Komponenten kann jedoch zum Beispiel der Status der Archivierungsdurchläufe überwacht werden. | ||
− | = Einsatz einer externen Monitoring-Software = | + | == Einsatz einer externen Monitoring-Software == |
− | == Nagios/Icinga Plugin check_mailstore.py | + | === MailStore Nagios/Icinga-Plugin === |
+ | Im [[Media:Scripts.zip|Python Skripting Paket]] befindet sich das Plugin <tt>check_mailstore.py</tt>. Das Plugin prüft die Anzahl der gelaufenen Profile oder die Anzahl der archivierten E-Mails in einem festgelegten Zeitraum. Es wird mindestens MailStore Server 8 benötigt. Sofern nicht anders angegeben, sind die Skripte unter der [[wikipedia:MIT_Licence|MIT Lizenz]] veröffentlicht. | ||
− | + | ==== Installation ==== | |
+ | Der [[Python API-Wrapper Tutorial|Python API-Wrapper]] muss installiert sein. Unter Umständen ist es notwendig, das Paket <tt>python-argparse</tt> zu installieren. | ||
− | Das | + | Das Plugin kommuniziert mit der [[MailStore Server Dienst-Konfiguration|MailStore Administrations API]]. Diese muss folglich in der [[MailStore Server Dienst-Konfiguration]] aktiviert sein. |
− | + | ==== Verwendung ==== | |
− | + | Ein Check, der die erfolgreiche Ausführung von Profilen überwacht, könnte folgendermaßen in Nagios/Icinga definiert sein: | |
− | |||
− | |||
− | |||
− | |||
− | Ein Check, der die erfolgreiche Ausführung von Profilen | ||
define command { | define command { | ||
command_name check_mailstore | command_name check_mailstore | ||
− | command_line /usr/local/lib/nagios/plugins/check_mailstore.py --host $ARG1$ --password $ | + | command_line /usr/local/lib/nagios/plugins/check_mailstore.py --host $ARG1$ --username $ARG2$ --password $ARG3$ -s since:$ARG4$ --status $ARG5$ -c $ARG6$ -w $ARG7$ --search $ARG8$ |
} | } | ||
− | Die passende Service Definition könnte so aussehen: | + | Die passende Service-Definition könnte so aussehen: |
define service { | define service { | ||
host_name mailstoreserver | host_name mailstoreserver | ||
− | service_description MailStore Succeeded | + | service_description MailStore Succeeded Profiles |
− | check_command check_mailstore!mailstoreserver!sUp3rs3CcR6ET3!1H!succeeded!8!10! | + | check_command check_mailstore!mailstoreserver!admin!sUp3rs3CcR6ET3!1H!succeeded!8!10!profiles |
use generic-service | use generic-service | ||
} | } | ||
− | In diesem Beispiel | + | In diesem Beispiel wird überprüft, ob in der letzten Stunde (-s since:1H) mehr als 10 Profile erfolgreich (--status succeeded) ausgeführt wurden. |
− | Das Plugin unterstützt folgende Parameter | + | <p class="msnote">'''Hinweis:''' Bei der Überwachung von SPE Instanzen müssen die Zugangsdaten des Service Provider Administrators verwendet werden, die auch für den Login an der SPE Management Console benutzt werden.</p> |
+ | |||
+ | ==== Parameterübersicht ==== | ||
+ | Das Plugin unterstützt folgende Parameter. | ||
--help<nowiki>|</nowiki>--h | --help<nowiki>|</nowiki>--h | ||
− | + | Zeigt die Hilfeseite. | |
--host HOST | --host HOST | ||
− | + | Hostname oder IP-Adresse des MailStore Servers. | |
--port PORT | --port PORT | ||
− | + | TCP Port auf welchem die MailStore Administration API Verbindungen annimmt. Standardmäßig wird ''8463'' verwendet. | |
− | -- | + | --username USERNAME<nowiki>|</nowiki>--user USERNAME |
− | + | Benutzernamen zur Anmeldung am MailStore Server. Dieser muss ein MailStore Administrator sein. | |
− | --password PASSWORD | + | --password PASSWORD<nowiki>|</nowiki>--pass PASSWORD |
− | + | Passwort des Benutzers, welcher bei ''username'' angegeben wurde. | |
--start STARTTIME<nowiki>|</nowiki>--s STARTTIME | --start STARTTIME<nowiki>|</nowiki>--s STARTTIME | ||
− | + | Gibt die Startzeit des Betrachtungszeitraums an. Die Startzeit im Format YYYY-mm-ddTHH:MM:SS (z.B. 2013-01-01T00:00:00) gibt die Anfangszeit des zu betrachtenden Zeitraums an. Es muss zusätzlich der ''--end'' Parameter verwendet werden. | |
− | Alternativ kann ein Zeitraum in der Form since:XY angegeben werden, wobei X eine Zahl und Y einer der folgenden Buchstaben ist: Y (Jahr), m (Monat), d (Tag), H (Stunde), M (Minute) und S (Sekunde). Beispiel --s since:90M (die letzten 90 Minuten). | + | Alternativ kann ein Zeitraum in der Form since:XY angegeben werden, wobei X eine Zahl und Y einer der folgenden Buchstaben ist: Y (Jahr), m (Monat), d (Tag), H (Stunde), M (Minute) und S (Sekunde). Beispiel ''--s since:90M'' (die letzten 90 Minuten). |
--end ENDTIME<nowiki>|</nowiki>--e ENDTIME | --end ENDTIME<nowiki>|</nowiki>--e ENDTIME | ||
− | Gibt die Endzeit des Betrachtungszeitraums an. Das Format ist ebenfalls YYYY-mm-ddTHH:MM:SS (z.B. 2013-02-28T23:59:59). Bei der Verwendung von | + | Gibt die Endzeit des Betrachtungszeitraums an. Das Format ist ebenfalls YYYY-mm-ddTHH:MM:SS (z.B. 2013-02-28T23:59:59). Bei der Verwendung von ''since:'' wird dieser Parameter nicht benötigt. |
--timezone TIMEZONE | --timezone TIMEZONE | ||
− | MailStore Server speichert die Daten in UTC Zeit. Hiermit kann | + | MailStore Server speichert die Daten in UTC Zeit. Hiermit kann die Ausgabe angepasst werden. Standardmäßig wird ''$Local'' verwendet. Dies entspricht der Zeitzonen-Einstellung des Betriebssystems des MailStore Servers. Mittels des API Befehls [[Administration API - Function Reference#GetTimeZones|GetTimeZones]] können sich die möglichen Werte ausgegeben werden lassen. In den meisten Fällen wird dieser Parameter nicht benötigt. |
− | --machinename | + | --machinename MACHINENAME |
− | Filtert die Ergebnisse nach MACHINENAME. Dies kann | + | Filtert die Ergebnisse nach ''MACHINENAME''. Dies kann sinnvoll sein, wenn die Ergebnisse lokaler Profile verschiedener Rechner überwacht werden sollen. |
− | -- | + | --filteruser USERNAME |
− | Filtert die Ergebnisse nach | + | Filtert die Ergebnisse nach ''USERNAME''. Dies kann sinnvoll sein, wenn die Ergebnisse verschiedener Benutzer überwacht werden sollen. |
+ | |||
+ | --profile PROFILE | ||
+ | |||
+ | Filtert die Ergebnisse nach Archivierungsprofil. Die ID des Archivierungsprofil muss übergeben werden. Die ID eines Profiles kann über die API-Method [[Administration API - Function Reference#GetProfiles|GetProfiles]] herausgefunden. Alternativ kann man sich im MailStore die Details eines markierten Archivierungsprofils durch drücken von Strg+Shift+P angezeigt werden. | ||
--status STATUS | --status STATUS | ||
− | Filtert die Ergebnisse nach STATUS. Mögliche Werte sind | + | Filtert die Ergebnisse nach STATUS. Mögliche Werte sind ''succeeded'', ''failed'', ''cancelled'', ''disconnected'', ''threadAbort'', ''completedWithWarnings'' und ''completedWithErrors''. Der Status kann durch ein vorangestelltes ''#'' negiert werden. Standard ist ''succeeded''. Geben Sie ''#all'' an, wenn Sie alle ausgeführten Profile erhalten möchten. |
− | --search [ | + | --search [profiles<nowiki>|</nowiki>emails] |
− | Gibt an, ob auf die Anzahl der zurückgelieferten | + | Gibt an, ob auf die Anzahl der zurückgelieferten Profile oder auf die Anzahl der archivierten Mails geprüft werden soll. Standard ist ''profiles''. |
--warning WARNING<nowiki>|</nowiki>--w WARNING | --warning WARNING<nowiki>|</nowiki>--w WARNING | ||
− | + | Der Schwellenwert, ab dem gewarnt wird. | |
--critical CRITICAL<nowiki>|</nowiki>--c CRITICAL | --critical CRITICAL<nowiki>|</nowiki>--c CRITICAL | ||
− | + | Der Schwellenwert, ab dem alarmiert wird. | |
--compare COMPARE | --compare COMPARE | ||
− | Gibt an, wie die Werte WARNING und CRITICAL mit dem zurückgeliefertem Ergebnis verglichen werden. Mögliche Werte sind | + | Gibt an, wie die Werte WARNING und CRITICAL mit dem zurückgeliefertem Ergebnis verglichen werden. Mögliche Werte sind ''lt'', ''le'', ''eq'', ''ge'', ''gt'' (lt, lesser than = kleiner als; le, lesser or equal = kleiner oder gleich; eq, equal = gleich; ge, greater or equal = größer oder gleich; gt, greater than = größer als). Standard ist ''le'' (kleiner oder gleich). |
--DEBUG | --DEBUG | ||
− | Gibt die Liste der zutreffenden | + | Gibt die Liste der zutreffenden Profile auf der Standardausgabe aus. Ist nur beim Testen sinnvoll, um zu prüfen, welche Ergebnisse tatsächlich beachtet werden. |
+ | |||
+ | ==== Weitere Beispiele ==== | ||
+ | check_mailstore.py --host 192.168.0.1 --username admin --password sUp3rs3CcR6ET3 -s "since:1d" -c 20 -w 22 --search profiles --status="succeeded" --compare lt | ||
+ | |||
+ | Status ist Critical, wenn weniger (--compare lt) als 20 (-c 20) Profile (--search profiles) mit dem Status erfolgreich (--status="succeeded") innerhalb eines Tages beendet wurden. Eine Warnung wird bei weniger als 22 erfolgreichen Profilen ausgegeben. | ||
+ | |||
+ | check_mailstore.py --host 192.168.0.1 --password sUp3rs3CcR6ET3 -s "since:1d" -c 5 -w 2 --search profiles --status="#succeeded" --compare gt | ||
− | + | Status ist Critical, wenn mehr (--compare gt) als 5 (-c 5) Profile (--search profiles) NICHT mit dem Status erfolgreich (--status="#succeeded") innerhalb eines Tages beendet wurden. Eine Warnung wird bei mehr als 2 nicht erfolgreichen Profilen ausgegeben. | |
− | check_mailstore.py --host 192.168.0.1 --password sUp3rs3CcR6ET3 -s "since:1d" -c 5 -w | + | check_mailstore.py --host 192.168.0.1 --password sUp3rs3CcR6ET3 -s "since:1d" -c 5 -w 20 --search emails --profile 7 |
− | + | Status ist Critical, wenn weniger als 5 (-c 5) E-Mails (--search emails) vom Profil mit der ID 7 (--profile 7) innerhalb eines Tages archiviert wurden. Eine Warnung wird bei weniger als 20 archivierten E-Mails ausgegeben. | |
− | + | === Überwachung der lizenzierten Benutzer === | |
+ | Das ''check_mailstorelicence''-Skript aus dem [[Media:Scripts.zip|Skripting Paket]], dient der Überwachung der lizenzierten Benutzer mittels Nagios/Icinga. Sollten Sie Ihre Benutzer über eine externe Quelle synchronisieren, und es sollen über diesen Weg in einem Schritt mehr Benutzer angelegt werden als Lizenzen verfügbar sind, wird diese Überwachung nicht "Alarm" schlagen, da nur die existierenden Benutzer überwacht werden, und nicht die, die angelegt werden sollen. | ||
− | + | Command-Definition: | |
− | + | define command { | |
+ | command_name check_mailstorelicence | ||
+ | command_line /usr/local/lib/nagios/plugins/check_mailstorelicence.py --host $ARG1$ --password $ARG2$ --licensed $ARG3$ --warning $ARG4$ --critical $ARG5$ | ||
+ | } | ||
− | Dieses Beispiel setzt voraus, dass im Abschnitt | + | === Nagios/Icinga mit NSClient++ überwacht die geplanten Tasks === |
+ | |||
+ | Dieses Beispiel setzt voraus, dass im Abschnitt <tt>[NRPE]</tt> der Datei <tt>NSC.ini</tt> der Parameter ''allow_arguments=1'' gesetzt ist. Alternativ und in öffentlichen Umgebungen sicherer, können Sie auch im Abschnitt <tt>[External Alias]</tt> einen Alias definieren. | ||
Die entsprechende Service Check sieht unter Nagios/Icinga wie folgt aus: | Die entsprechende Service Check sieht unter Nagios/Icinga wie folgt aus: | ||
Zeile 127: | Zeile 145: | ||
Der Service-Check gibt eine Liste alle zeitgesteuerten Aufgaben im Windows Task-Planer aus, deren Exit-Code ungleich Null ist. Bei mehr als einem Ergebnis wird der Check-Status ''Critical'' gesetzt. Die Rückgabe beinhaltet eine Liste aller Aufgaben mit Exit-Code ungleich Null und der Exit-Codes. | Der Service-Check gibt eine Liste alle zeitgesteuerten Aufgaben im Windows Task-Planer aus, deren Exit-Code ungleich Null ist. Bei mehr als einem Ergebnis wird der Check-Status ''Critical'' gesetzt. Die Rückgabe beinhaltet eine Liste aller Aufgaben mit Exit-Code ungleich Null und der Exit-Codes. | ||
− | + | [[de:Monitoring]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[en:Monitoring]] | [[en:Monitoring]] |
Aktuelle Version vom 29. Januar 2018, 11:05 Uhr
MailStore verfügt selber nur über eingeschränkte Benachrichtigungs- oder Monitoringfunktionalitäten. Mittels externer Komponenten kann jedoch zum Beispiel der Status der Archivierungsdurchläufe überwacht werden.
Einsatz einer externen Monitoring-Software
MailStore Nagios/Icinga-Plugin
Im Python Skripting Paket befindet sich das Plugin check_mailstore.py. Das Plugin prüft die Anzahl der gelaufenen Profile oder die Anzahl der archivierten E-Mails in einem festgelegten Zeitraum. Es wird mindestens MailStore Server 8 benötigt. Sofern nicht anders angegeben, sind die Skripte unter der MIT Lizenz veröffentlicht.
Installation
Der Python API-Wrapper muss installiert sein. Unter Umständen ist es notwendig, das Paket python-argparse zu installieren.
Das Plugin kommuniziert mit der MailStore Administrations API. Diese muss folglich in der MailStore Server Dienst-Konfiguration aktiviert sein.
Verwendung
Ein Check, der die erfolgreiche Ausführung von Profilen überwacht, könnte folgendermaßen in Nagios/Icinga definiert sein:
define command { command_name check_mailstore command_line /usr/local/lib/nagios/plugins/check_mailstore.py --host $ARG1$ --username $ARG2$ --password $ARG3$ -s since:$ARG4$ --status $ARG5$ -c $ARG6$ -w $ARG7$ --search $ARG8$ }
Die passende Service-Definition könnte so aussehen:
define service { host_name mailstoreserver service_description MailStore Succeeded Profiles check_command check_mailstore!mailstoreserver!admin!sUp3rs3CcR6ET3!1H!succeeded!8!10!profiles use generic-service }
In diesem Beispiel wird überprüft, ob in der letzten Stunde (-s since:1H) mehr als 10 Profile erfolgreich (--status succeeded) ausgeführt wurden.
Hinweis: Bei der Überwachung von SPE Instanzen müssen die Zugangsdaten des Service Provider Administrators verwendet werden, die auch für den Login an der SPE Management Console benutzt werden.
Parameterübersicht
Das Plugin unterstützt folgende Parameter.
--help|--h
Zeigt die Hilfeseite.
--host HOST
Hostname oder IP-Adresse des MailStore Servers.
--port PORT
TCP Port auf welchem die MailStore Administration API Verbindungen annimmt. Standardmäßig wird 8463 verwendet.
--username USERNAME|--user USERNAME
Benutzernamen zur Anmeldung am MailStore Server. Dieser muss ein MailStore Administrator sein.
--password PASSWORD|--pass PASSWORD
Passwort des Benutzers, welcher bei username angegeben wurde.
--start STARTTIME|--s STARTTIME
Gibt die Startzeit des Betrachtungszeitraums an. Die Startzeit im Format YYYY-mm-ddTHH:MM:SS (z.B. 2013-01-01T00:00:00) gibt die Anfangszeit des zu betrachtenden Zeitraums an. Es muss zusätzlich der --end Parameter verwendet werden. Alternativ kann ein Zeitraum in der Form since:XY angegeben werden, wobei X eine Zahl und Y einer der folgenden Buchstaben ist: Y (Jahr), m (Monat), d (Tag), H (Stunde), M (Minute) und S (Sekunde). Beispiel --s since:90M (die letzten 90 Minuten).
--end ENDTIME|--e ENDTIME
Gibt die Endzeit des Betrachtungszeitraums an. Das Format ist ebenfalls YYYY-mm-ddTHH:MM:SS (z.B. 2013-02-28T23:59:59). Bei der Verwendung von since: wird dieser Parameter nicht benötigt.
--timezone TIMEZONE
MailStore Server speichert die Daten in UTC Zeit. Hiermit kann die Ausgabe angepasst werden. Standardmäßig wird $Local verwendet. Dies entspricht der Zeitzonen-Einstellung des Betriebssystems des MailStore Servers. Mittels des API Befehls GetTimeZones können sich die möglichen Werte ausgegeben werden lassen. In den meisten Fällen wird dieser Parameter nicht benötigt.
--machinename MACHINENAME
Filtert die Ergebnisse nach MACHINENAME. Dies kann sinnvoll sein, wenn die Ergebnisse lokaler Profile verschiedener Rechner überwacht werden sollen.
--filteruser USERNAME
Filtert die Ergebnisse nach USERNAME. Dies kann sinnvoll sein, wenn die Ergebnisse verschiedener Benutzer überwacht werden sollen.
--profile PROFILE
Filtert die Ergebnisse nach Archivierungsprofil. Die ID des Archivierungsprofil muss übergeben werden. Die ID eines Profiles kann über die API-Method GetProfiles herausgefunden. Alternativ kann man sich im MailStore die Details eines markierten Archivierungsprofils durch drücken von Strg+Shift+P angezeigt werden.
--status STATUS
Filtert die Ergebnisse nach STATUS. Mögliche Werte sind succeeded, failed, cancelled, disconnected, threadAbort, completedWithWarnings und completedWithErrors. Der Status kann durch ein vorangestelltes # negiert werden. Standard ist succeeded. Geben Sie #all an, wenn Sie alle ausgeführten Profile erhalten möchten.
--search [profiles|emails]
Gibt an, ob auf die Anzahl der zurückgelieferten Profile oder auf die Anzahl der archivierten Mails geprüft werden soll. Standard ist profiles.
--warning WARNING|--w WARNING
Der Schwellenwert, ab dem gewarnt wird.
--critical CRITICAL|--c CRITICAL
Der Schwellenwert, ab dem alarmiert wird.
--compare COMPARE
Gibt an, wie die Werte WARNING und CRITICAL mit dem zurückgeliefertem Ergebnis verglichen werden. Mögliche Werte sind lt, le, eq, ge, gt (lt, lesser than = kleiner als; le, lesser or equal = kleiner oder gleich; eq, equal = gleich; ge, greater or equal = größer oder gleich; gt, greater than = größer als). Standard ist le (kleiner oder gleich).
--DEBUG
Gibt die Liste der zutreffenden Profile auf der Standardausgabe aus. Ist nur beim Testen sinnvoll, um zu prüfen, welche Ergebnisse tatsächlich beachtet werden.
Weitere Beispiele
check_mailstore.py --host 192.168.0.1 --username admin --password sUp3rs3CcR6ET3 -s "since:1d" -c 20 -w 22 --search profiles --status="succeeded" --compare lt
Status ist Critical, wenn weniger (--compare lt) als 20 (-c 20) Profile (--search profiles) mit dem Status erfolgreich (--status="succeeded") innerhalb eines Tages beendet wurden. Eine Warnung wird bei weniger als 22 erfolgreichen Profilen ausgegeben.
check_mailstore.py --host 192.168.0.1 --password sUp3rs3CcR6ET3 -s "since:1d" -c 5 -w 2 --search profiles --status="#succeeded" --compare gt
Status ist Critical, wenn mehr (--compare gt) als 5 (-c 5) Profile (--search profiles) NICHT mit dem Status erfolgreich (--status="#succeeded") innerhalb eines Tages beendet wurden. Eine Warnung wird bei mehr als 2 nicht erfolgreichen Profilen ausgegeben.
check_mailstore.py --host 192.168.0.1 --password sUp3rs3CcR6ET3 -s "since:1d" -c 5 -w 20 --search emails --profile 7
Status ist Critical, wenn weniger als 5 (-c 5) E-Mails (--search emails) vom Profil mit der ID 7 (--profile 7) innerhalb eines Tages archiviert wurden. Eine Warnung wird bei weniger als 20 archivierten E-Mails ausgegeben.
Überwachung der lizenzierten Benutzer
Das check_mailstorelicence-Skript aus dem Skripting Paket, dient der Überwachung der lizenzierten Benutzer mittels Nagios/Icinga. Sollten Sie Ihre Benutzer über eine externe Quelle synchronisieren, und es sollen über diesen Weg in einem Schritt mehr Benutzer angelegt werden als Lizenzen verfügbar sind, wird diese Überwachung nicht "Alarm" schlagen, da nur die existierenden Benutzer überwacht werden, und nicht die, die angelegt werden sollen.
Command-Definition:
define command { command_name check_mailstorelicence command_line /usr/local/lib/nagios/plugins/check_mailstorelicence.py --host $ARG1$ --password $ARG2$ --licensed $ARG3$ --warning $ARG4$ --critical $ARG5$ }
Nagios/Icinga mit NSClient++ überwacht die geplanten Tasks
Dieses Beispiel setzt voraus, dass im Abschnitt [NRPE] der Datei NSC.ini der Parameter allow_arguments=1 gesetzt ist. Alternativ und in öffentlichen Umgebungen sicherer, können Sie auch im Abschnitt [External Alias] einen Alias definieren.
Die entsprechende Service Check sieht unter Nagios/Icinga wie folgt aus:
define service { use generic-service host_name mailstore.mydomain.tld service_description Scheduled Tasks check_command check_nrpe!CheckTaskSched!filter="exit_code ne 0" "syntax=%title%: %exit_code%" "crit=>0" }
Der Service-Check gibt eine Liste alle zeitgesteuerten Aufgaben im Windows Task-Planer aus, deren Exit-Code ungleich Null ist. Bei mehr als einem Ergebnis wird der Check-Status Critical gesetzt. Die Rückgabe beinhaltet eine Liste aller Aufgaben mit Exit-Code ungleich Null und der Exit-Codes.