1. Funktionsweise
Im IT-Betrieb unterscheidet man zwei Arten von Ausfällen: geplante und ungeplante. Das Monitoring-System kann — wenn es einen Ausfall feststellt — natürlich erst mal nicht wissen, ob dieser geplant war oder nicht. Über das Konzept von Wartungszeiten (Englisch Scheduled Downtimes) können Sie geplante Ausfallzeiten eines Hosts oder Services dem System bekannt machen, indem Sie für die entsprechenden Objekte eine Wartungszeit definieren. Befindet sich ein Host oder Service in so einer Wartungszeit, hat das folgende Auswirkungen:
In den Ansichten erscheint ein Symbol bei den betroffenen Hosts und Services: Services werden mit einem Leitkegel markiert, Hosts mit einem blauen Pause-Symbol. Auch Services, deren Hosts sich in Wartung befinden, bekommen das blaue Pause-Symbol. In der Historie werden gestartete Wartungszeiten mit markiert und beendete mit .
Die Benachrichtigungen über Probleme sind während der Wartung abgeschaltet.
Die betroffenen Hosts/Services tauchen im Overview nicht mehr als Probleme auf.
In der Verfügbarkeitsanalyse werden geplante Wartungszeiten gesondert berücksichtigt.
Zu Beginn und Ende einer Wartungszeit wird eine spezielle Benachrichtigung ausgelöst, die darüber informiert.
2. Wartungszeiten eintragen
Das Setzen von Wartungszeiten geschieht über Kommandos. Alle Aktionen, die Wartungszeiten betreffen, sind hier in einem eigenen Kasten zusammengefasst:
Das Feld Comment muss immer ausgefüllt werden. Sie können an dieser Stelle auch eine URL in der Form http://www.example.com eintragen, die dann als anklickbarer Link zur Verfügung steht. Für die Definition von Start und Ende gibt es zahlreiche unterschiedliche Möglichkeiten — vom einfachen 2 hours, welches die Wartung ab sofort definiert, bis hin zu der Angabe eines expliziten Zeitraums, mit dem auch eine Wartung in der Zukunft definiert werden kann.
2.1. Flexible with max. duration
Diese Option ist z.B. nützlich, wenn Sie wissen, dass ein Host für ein paar Minuten DOWN gehen wird, aber die exakte Uhrzeit nicht vorhersagen können. Mit dieser Option beginnt die Wartungszeit nicht automatisch zum angegebenen Zeitpunkt, sondern erst dann, wenn der Host tatsächlich in einen Problemzustand eintritt.
Beispiel: Sie definieren eine Wartungszeit von 14:00 bis 16:00 Uhr und aktivieren die Option flexible mit einer Dauer von 30 Minuten. Um 14:00 Uhr wird die Wartungszeit noch nicht automatisch aktiv, sondern ist nur in Wartestellung. Sobald der Host auf DOWN oder UNREACH geht, beginnt die Wartungszeit und das Pausenzeichen erscheint. Sie dauert jetzt genau die bei der Option angegebene Zeit — egal wie sich der tatsächliche Zustand vom Host entwickelt und ggf. auch über die eingestellte Endzeit der Wartungszeit hinaus.
Die Start-/Endzeit ist also bei den flexiblen Wartungszeiten nur das Zeitfenster, innerhalb dessen die Wartungszeit beginnt. Wenn innerhalb dieses Zeitfensters kein Problemzustand eintritt, so wird die Wartungszeit einfach ausgelassen. Alles für Hosts gesagte gilt natürlich für Services analog.
2.2. Also set downtime on child hosts
Diese Option ist für Router und Switche nützlich, aber z.B. auch für Virtualisierungshosts. Checkmk wird so auch automatisch auf alle Hosts eine Wartungszeit setzen, welche über den betroffenen Host direkt (oder bei angehaktem Do this recursively auch indirekt) erreichbar sind.
2.3. Repeat this downtime on a regular basis
Hier können Sie Wartungszeiten eintragen, die sich regelmäßig wiederholen. Diese werden weiter unten in einem eigenen Abschnitt ausführlich besprochen.
2.4. Schedule downtimes on hosts
Wenn Sie, beispielsweise in der Ansicht Services of Host, Ausfallzeiten gesetzt haben, würden sich die geplanten Ausfallzeiten auch tatsächlich direkt auf alle bzw. alle ausgewählten Services beziehen. Sollte dies mal nicht gewünscht sein, müssen Sie nicht zuerst in die Ansicht Status of Host navigieren sondern können mithilfe dieser Option, die Ausfallzeit direkt auf den Host setzen.
3. Wartungszeiten anzeigen und löschen
Für die Wartungszeiten gibt es in Checkmk eine eigene Ansicht, die Sie erreichen über Monitor > Overview > Scheduled downtimes:
Wie in jeder Ansicht können Sie über die Filter die Auswahl einschränken. Über die Kommandos in dieser Ansicht können Sie eine oder mehrere Downtimes entfernen und sogar auch nachträglich ändern (nur Checkmk Enterprise Editions), z.B. wenn diese verlängert werden müssen, da die eigentliche Wartung länger dauert als zunächst vorgesehen.
3.1. Historie
Die Ansicht Monitor > History > Downtime history zeigt nicht die aktuellen Wartungszeiten, sondern deren Geschichte — also alle Ereignisse, bei denen eine Wartungszeit begonnen hat oder endete (entweder durch ein natürliches Ende oder durch das Löschen per Kommando).
4. Regelmäßige Wartungszeiten
Manche Wartungen werden regelmäßig ausgeführt — wie z.B. der automatische Neustart eines Servers einmal pro Woche. Jedes mal von Hand eine Wartung einzutragen wäre recht umständlich. Wenn es nur um die Benachrichtigungen geht, können Sie hierzu mit Zeitperioden und dem Regelsatz Notification period for Hosts/Services arbeiten. Dies hat allerdings verschiedene Einschränkungen. Eine Wichtige ist, dass man für das Anlegen von Zeitperioden globale Konfigurationsberechtigungen benötigt.
Die Checkmk Enterprise Editions bieten daher das Konzept von sich automatisch periodisch wiederholenden Wartungszeiten. Diese können auf zwei verschiedene Arten eingetragen werden.
4.1. Anlegen mittels Kommandos
Die erste Methode ist der Weg, den wir bereits für einmalige Wartungszeiten kennengelernt haben — über ein Kommando — aber mit der zusätzlichen Checkbox Repeat this downtime on a regular basis every …
Dabei wählen Sie die Periode aus, mit der sich die Wartung wiederholen soll. Das erste Auftreten tragen Sie wie gewohnt ein. Hier bietet sich der Knopf Custom time range an. Von dem hier eingetragenen Startzeitpunkt aus wird die Periode berechnet. Es gibt folgende Möglichkeiten:
hour |
Die Wartungszeit wiederholt sich stündlich genau um die gleiche Uhrzeit. |
day |
Tägliche Wiederholung um die gleiche Uhrzeit. |
week |
Wiederholung alle sieben Tage am gleichen Wochentag und zur gleichen Uhrzeit wie beim ersten Mal. |
second week |
Wie wöchentlich, nur jetzt 14-tägig |
fourth week |
Das Gleiche, aber jetzt alle 28 Tage. |
same nth weekday (from beginning) |
Hiermit können Sie Dinge realisieren wie „jeden zweiten Montag im Monat“. Checkmk nimmt dabei den Wochentag als Startzeitpunkt, guckt dann, der wievielte Tag im Monat das ist und basiert darauf die Periode. Wenn also der Starttermin am zweiten Montag des Monats ist, wird fortan jeden Monat am zweiten Montag wieder eine Wartung eingetragen. |
same nth weekday (from end) |
Dies ist analog, allerdings wird jetzt vom Ende des Monats gerechnet, also so etwas wie „jeder letzte Freitag im Monat“. |
same day of the month |
Bei dieser Variante bleibt der Wochentag unberücksichtigt. Hier geht es nur darum, der wievielte Tag im Monat es ist. Wenn also das Startdatum am 5. eines Monats ist, so wird die Wartungszeit fortan jeden 5. eines Monats wiederholt. |
4.2. Anlegen mittels Regeln
Eine alternative, sehr elegante Methode für das Einrichten von periodischen Wartungszeiten ist das Anlegen über Regeln. Mithilfe von Host-Merkmalen können Sie damit z.B. Dinge bestimmen wie: Jeder produktive Windows-Server bekommt jeden Sonntag von 22:00 bis 22:10 Uhr eine Wartungszeit.
Zwar könnten Sie fast das Gleiche erreichen, indem Sie mit der Host-Suche alle betroffenen Server finden und die Wartungszeit dann über ein Kommando eintragen. Aber dies funktioniert natürlich nur für bestehende Server. Wird in Zukunft ein neuer Host ins Monitoring aufgenommen, so fehlt ihm dieser Eintrag. Wenn Sie stattdessen mit Regeln arbeiten, haben Sie dieses Problem nicht mehr. Ein weiterer Vorteil von Regeln ist, dass Sie die Wartungs-Policy später ändern können — einfach durch Anpassung der Regeln.
Die Regeln für die regelmäßigen Wartungszeiten finden Sie unter Setup > Host monitoring rules > Recurring downtimes for hosts beziehungsweise Setup > Service monitoring rules > Recurring downtimes for services.
5. Wartungszeiten und Verfügbarkeit
Wie eingangs erwähnt, haben Wartungszeiten eine Auswirkung auf die Berechnung der Verfügbarkeitsanalyse. Per Default werden alle Wartungszeiten in einen eigenen „Topf“ gerechnet und in der Spalte Downtime angezeigt.
Wie genau Wartungszeiten verrechnet werden sollen, können Sie über Availability > Change computation options einstellen:
Honor scheduled downtimes |
Wartungszeiten werden in die Verfügbarkeitsgrafiken eingerechnet und als eigenständige Spalte angezeigt. Das ist das Standardverhalten. |
Exclude scheduled downtimes |
Wartungszeiten werden bei der Berechnung der 100% komplett ausgeklammert. Alle prozentualen Angaben über Verfügbarkeit beziehen sich also nur auf die restlichen Zeiten, quasi: Wie viel Prozent der Nicht-Wartungszeit war das Objekt verfügbar? |
Ignore scheduled downtimes |
Wartungszeiten werden überhaupt nicht berücksichtigt, sondern nur der tatsächliche Status, den das Objekt jeweils hatte. |
Zusätzlich gibt es noch unter Phases die Option Treat phases of UP/OK as non-downtime. Wenn diese angehakt ist, dann werden Zeiten, in denen ein Objekt in einer Wartung, aber trotzdem gleichzeitig OK bzw. UP ist, nicht als Wartungszeit gewertet. Somit geht in die Berechnung nur derjenige Teil der Wartungszeiten ein, der tatsächlich mit einem Ausfall verbunden war.