Checkmk
to checkmk.com

1. Einleitung

Der Kern des Monitorings mit Checkmk ist es, Ihnen jederzeit ein klares Bild vom Ist-Zustand Ihrer IT-Infrastruktur zu geben. Die Aufzeichnung all dieser Ist-Zustände in Datenbanken erlaubt es dann jederzeit in die Vergangenheit zu blicken, Performance-Graphen zu erstellen und Zusammenhänge zu erkennen, die eventuell zu Problemen geführt haben.

Und auch wenn beispielsweise ein Blick auf die Graphen eines Dateisystems schon grob erahnen lässt, wann der Platz hier mal eng werden könnte, trügt dieser schnelle Eindruck häufig. Er lässt nämlich zentrale Elemente des Capacity Managements außen vor. Saisonale Faktoren etwa, lassen viel Raum für Fehleinschätzungen. Wie sich die Anforderungen an Ihre IT-Infrastruktur bspw. während Ferienzeiten, Feiertagen oder gar im Bezug auf Jahreszeiten ändern kann, ist nicht immer trivial und augenscheinlich.

Ein weiterer wichtiger Faktor in der Berechnung von Vorhersagen sind Einmaleffekte. Wenn beispielsweise der verwendete Speicherplatz rund um eine große Aufräumaktion auf einem Dateisystem unter Anwendung einer linearen Regression für eine Extrapolation herangezogen würde, könnte der Eindruck entstehen, dass ihr Dateisystem in naher Zukunft vollständig leer sein wird. Dass dies falsch ist erschließt sich sofort und zeigt plakativ, warum es für verlässliche Vorhersagen deutlich robusterer Methoden bedarf.

Solche robusten Methoden, welche auf Grundlage der gesammelten historischen Daten eine schlaue Interpretation und bei korrekter Konfiguration gute Vorhersagen ermöglichen, bietet Checkmk ab Version 1.6.0. Wie diese eingerichtet werden, zeigen wir Ihnen im Folgenden.

2. Installation

2.1. Compiler installieren

Um die Vorhersagefunktion in Checkmk 1.6.0 nutzen zu können, müssen Sie zuerst die von Facebook zur Verfügung gestellte Methode Prophet auf Ihrem Checkmk-Server installieren. Für die Installation von Prohpet wird unter anderem ein C-Compiler benötigt. Im Folgenden zeigen wir Ihnen, wie Sie die benötigten Compiler in den wichtigsten Linux-Distributionen installieren können:

Debian/Ubuntu

root@linux# apt-get install gcc g++

Red Hat/CentOS

root@linux# yum install gcc gcc-c++

SUSE Linux Enterprise Server

Unter SLES müssen Sie unter Zuhilfenahme von YAST oder SUSEConnent zuerst das "Development Tools Module" hinzufügen. Erst danach können Sie den Compiler per Zypper installieren:

root@linux# zypper install gcc-c++

2.2. Installation von Prohpet

Für die Installation von Prophet bieten wir in unserem Repository bei GitHub ein Installationsskript an. Mit den folgenden Befehlen können Sie dieses als Site-User herunterladen und ausführen. Da zum Abschluss dieser Installation der Apache Ihrer Checkmk-Instanz neu gestartet wird, sollten Sie die Installation entsprechend planen:

OMD[mysite]:~$ wget raw.githubusercontent.com/tribe29/checkmk/1.6.0/bin/install_fbprophet
OMD[mysite]:~$ chmod +x install_fbprophet
OMD[mysite]:~$ ./install_fbprophet

Hinweis: Ab Checkmk 2.0.0 wird die Möglichkeit, Vorhersagegraphen zu erstellen nativ integriert sein. Eine Installation weiterer Pakete wird dann nicht mehr nötig sein.

3. Konfiguration in Checkmk

3.1. Erstellen eines Vorhersagegraphen

Die mit Abstand einfachste Möglichkeit einen Vorhersagegraphen zu erstellen, ist der Weg über die Detailansicht eines beliebigen Service, welcher Metriken produziert. In einer solchen Detailansicht finden Sie direkt unter den Servicegraphen die Zeile mit den Service Metrics. Hinter den aktuellen Werten jeder dieser Kennzahlen finden Sie jeweils einen Knopf für das spezielle icon menu Aktionsmenü für Metriken.

forecast graphs service metrics

Öffnen Sie nun das Aktionsmenü und wählen Sie anschließend New forecast graph…​.

forecast graphs service metrics action menu

Nach wenigen Augenblicken sehen Sie bereits den ersten Vorhersagegraphen zu der von Ihnen gewählten Metrik.

forecast graphs first graph

3.2. Die Modellparameter

Jetzt ist es an dieser Zeit speziell für diese Metrik die Parameter für die Berechnung der Vorhersage auszuwählen. Da diese Parameter besonders stark von Ihrer jeweiligen Umgebung und dem Zweck der Vorhersage abhängen ist eine genaue Auseinandersetzung mit den Optionen und Ihren möglichen Auswirkungen sehr wichtig.

forecast graphs model parameters

Minimum - Maximum - Durchschnitt

Bereits das letzte Feld in der Zeile Change metric kann erheblichen Einfluss auf die Sinnhaftigkeit der Vorhersage haben. Unsere Vorauswahl ist an dieser Stelle immer die Option Maximum, da dieses im Kontext des Capacity Managements am häufigsten einen Hinweis auf eben das liefert, was man mit einer solchen Vorhersage erkennen möchte - Engpässe bei Spitzenlasten. Würden Sie bspw. beim Service CPU utilization ausschließlich auf Durchschnittswerte schauen, könnten Sie zwar sehen, dass die Auslastung im Schnitt noch akzeptabel ist, dass Ihre CPU aber in absehbarer Zeit bei Spitzenlasten ständig an ihre Grenzen stößt, würden Sie im Monitoring erst dann erkennen, wenn es soweit ist.

Consider history of

Mit dieser Option können Sie festlegen welcher Zeitraum der historischen Daten als Berechnungsgrundlage für die Vorhersage herangezogen werden soll. Pauschal lässt sich sagen, dass viele Datenpunkte benötigt werden um einen guten Fit zu ermöglichen. Wenn Sie aber beispielsweise immer die Messwerte des Vormonats als Grundlage nehmen möchten, können Sie dies mit der Auswahlmöglichkeit Last month tun. Dies meint nämlich nicht die vergangen 30 Tage sondern den vorherigen Kalendermonat.

Ein anderer Grund den Zeitraum zu begrenzen könnte zum Beispiel ein Upgrade einzelner Komponenten eines Servers sein. Die Einbeziehung von Daten vor diesem Upgrade könnte ja gegebenenfalls die Vorhersage verfälschen.

Forecast into the future

Die Vorhersage beginnt am letzten Tag des unter Consider history of ausgewählten Zeitraums. Dies ist deshalb erwähnenswert, weil also je nach Auswahl auch eine Vorhersage für einen Zeitraum berechnet wird, in dem bereits reale Messdaten angefallen sind. Innerhalb dieser Überschneidung lässt sich also schon ablesen wie nah die Vorhersage an den tatsächlichen Werten lag.

Des Weiteren bleibt hier nur zu sagen, dass die Vorhersage natürlich um so unpräziser wird, je weiter Sie versuchen in die Zukunft zu blicken. Diese Banalität wird aber im Vorhersagegraphen durch die immer größer werdenden orangen Schattierungen sehr gut visualisiert.

Trend flexibility

Bei der Betrachtung und Analyse von Zeitreihen - hier also den aufgezeichneten Messwerten Ihrer Services - spielen sogenannte Strukturbrüche oder Changepoints eine sehr wichtige Rolle. Vereinfacht ausgedrückt bezeichnen diese Changepoints gerade die Momente in der Zeitreihe, an denen sich mehr oder weniger starke Veränderungen beobachten lassen. Während der Analyse der Zeitreihe identifiziert Checkmk nun eine ganze Reihe dieser Changepoints und nutzt diese, um sie in der Vorhersage wiederzuverwenden und diese damit zu präzisieren. Wie stark Checkmk die Kurve des Vorhersagegraphen nun an diese Changepoints anpasst, lässt sich über die fünf Wahlmöglichkeiten der Trend flexibility bestimmen. Durch eine zu starke Anpassung - eine sogenannte Überanpassung (overfitting) - würde die Vorhersagefunktion zu stark einer schlichten Fortschreibung (im Grunde einer Kopie) der bisherigen Zeitreihe gleichen. Eine Unteranpassung (underfitting) auf der anderen Seite, würde die Vorhersage extrem ungenau machen. Checkmk gibt hier einen für viele Fälle guten Standardwert vor den wir mit Adaptable umschreiben. Sollte Ihr Vorhersagegraph zu ungenau sein - also eine Unteranpassung vorliegen - müssten Sie die Flexibilität der Trendkurve erhöhen indem Sie hier Voluble oder Very Voluble wählen. Im umgekehrten Fall - also einer Überanpassung - blieben Ihnen noch die beiden Optionen Susceptible und Linear übrig, obwohl wir von der Verwendung von Linear eher abraten, weil Sie nur der Vollständigkeit halber zur Verfügung steht.

Model seasonality

An dieser Stellen müssen Sie festlegen, wie im Vorhersagegraphen mit wiederkehrenden und saisonabhängigen Anforderungen an Ihre Infrastruktur umgegangen werden soll. In den Vorhersagengraphen werden hier automatisch in erster Linie zwei Zeiträume betrachtet. Wöchentlich wiederkehrende, wie bspw. die unterschiedlichen Anforderungen zwischen einer 5-tägigen Arbeitswoche und dem Wochenende und jährliche bzw. saisonabhängige Anforderungen, wie Sie bspw. durch Feiertage und Urlaubszeiten zustande kommen. Chechmk erkennt diese Saisonalität automatisch und Sie müssen hier nur auswählen, wie diese in die Vorhersage eingerechnet werden soll.

Die Option Additive rechnet diese veränderten Anforderungen nur einmalig mit in die Vorhersage ein. Wie der Name schon sagt, wird die erhöhte bzw. auch verringerte Anforderung nur zum Trend addiert.

Mit der Auswahl von Multiplicative hingegen, erhöht bzw. verringert sich der zukünftige saisonale Bedarf proportianal zum Trend.

Confidence interval

An dieser Stelle müssen Sie das Konfidenzniveau für Ihre Vorraussage festlegen. Vereinfacht ausgedrückt legen Sie hier fest, mit welcher Wahrscheinlichkeit die zu erwartenden Werte innerhalb des aus dem Niveau resultierenden Konfidenzintervalls liegen sollen. Ziel einer solchen Auswahl ist es immer bei einem möglichst hohen Niveau ein möglichst schmales Intervall zu erhalten. Dies gelingt mit den Vorhersagegraphen umso besser je mehr historische Daten zur Verfügung stehen. Wichtig ist, dass diese Auswahl den eigentlichen Fit nicht beeinflusst. Nur der ihn umgebende Bereich (also die Visualisierung des Intervalls) wird bei höheren Niveaus dementsprechend größer.

Display historic data since the last

Im Vorhersagegraphen sehen Sie auf der linken Seite - abgetrennt durch eine vertikale gelbe Linie - die Visualisierung einer gewissen Anzahl an Tagen tatsächlicher ausgezeichneter Daten. Wieviele dies sein sollen, können Sie hier festlegen. Die Wert hat keine Auswirkungen auf die Berechnung der Vorhersage, sondern beeinflusst nur die Darstellung.

Display Model Parametrization in graph

Und auch die letzte Option hat erneut nur Einfluss auf die Darstellung des Graphen. Wenn Sie hier den Haken bei Model parameters setzen, werden die zuvor ausgewählten Parameter unter dem fertigen Graphen angezeigt. Dies ermöglicht dem Betrachter einerseits den Graphen ggf. besser einordnen zu können.

4. Diagnosemöglichkeiten

4.1. Mögliche Fehler und Fehlermeldungen

Cannot create graph

Die Fehlermeldung Cannot create graph - Metric historic data has less than 2 days of valid values ist weitgehend selbsterklärend. Um sinnvolle Vorhersagen treffen zu können benötigt Checkmk mehr als 2 volle Tage an historischen Messdaten. Mit weniger Messpunkten als Grundlage ist schlicht kein halbwegs seriöser Fit möglich.

Necessary dependencies for forecast have not been installed

Sollten Sie beim Versuch einen Vorhersagegraphen zu erstellen diese Fehlermeldung erhalten, sollten Sie sich vergewissern, dass das unter Checkmk 1.6.0 notwendige Paket Prophet auf Ihrem Checkmk-Server installiert ist.

Derzeit kann diese Fehlermeldung aufgrund eines Bugs allerdings noch einen anderen Grund haben. Sollte Ihre Benutzeroberfläche auf Deutsch eingestellt sein, erhalten Sie auch die o.a. Fehlermeldung. Als Workaround bleibt Ihnen nur die Umstellung der GUI auf die englische Sprache.

Probleme bei der Installation von Prophet

Sollte es während der Installation von Prophet zu Fehlern (roter Text bei der Installation) kommen, so vergewissern Sie sich, dass die notwendigen Compiler installiert sind.

Wenn Sie Prophet erstmal in einer virtuellen Maschine testen wollen und dabei auf Schwierigkeiten stoßen, könnte dies daran liegen, dass dei VM nicht über genügend Resourcen verfügt. Für die Installation von Prophet sind mindestens 4 GB RAM (Base Memory) vonnöten. Außerdem sollte die virtuelle Festplatte deutlich über 10 GB groß sein um sowohl dem Betriebssystem als auch Checkmk und Prophet genug Platz zu bieten.

Auf dieser Seite