Reicht der Speicherplatz auf meinem Dateisystem noch für die nächsten Monate? Wie wird sich die CPU-Last meines Servers in der Zukunft entwickeln? Sobald Sie ein ordentliches Monitoring aufgesetzt haben, erhalten Sie Alarmierungen, wenn etwas falsch läuft. Häufig stellt sich dann die nächste Frage: Lassen sich mögliche Zwischenfälle in der Zukunft vermeiden?
Seit Version 1.6 ist Checkmk in der Lage, Vorhersagen zu erstellen. Auf Grundlage von historischen Daten kann es die künftige Entwicklung ihrer IT-Infrastruktur prognostizieren. Auf diese Weise unterstützt Checkmk Sie beim Kapazitäts-Management Ihrer IT-Infrastruktur.
Ist es dadurch möglich, jeden Zwischenfall bereits im Vorfeld zu erkennen? Nein, weil oft Dinge passieren, die sich durch Nichts und Niemanden vorhersagen lassen. Das ist auch der Grund, warum man ein Monitoring benötigt. Basierend auf Ihrem Monitoring sind sie nun nicht nur in der Lage, Ihre IT-Infrastruktur besser zu verstehen. Sie können jetzt auch interessante Trends erkennen, die sich möglicherweise zu Problemen entwickeln können.
In diesem Blog-Artikel zeige ich Ihnen, wie Sie in Checkmk Vorhersagen von Metriken einrichten und welche Konfigurationsoptionen diese haben.
Installation des Vorhersage-Pakets
Die Technik für das Erstellen von prognostizierten Metriken basiert auf Facebooks Vorhersage-Zeitreihen-Modell Prophet. Wir nutzen die Facebook-Implementierung seit Checkmk 1.6. Diese Dependenz muss jedoch separat installiert werden. Mit Checkmk 2.0 implementieren wir die Algorithmen jedoch nativ in Checkmk, sodass die Vorhersagen bereits standardmäßig einsatzbereit sind.
Die Anleitung haben wir mit Checkmk Free Enterprise 1.6.0p13 auf einer neu aufgesetzten Instanz mit Ubuntu 18.04 erstellt. Da die Funktion die erweiterten grafischen Möglichkeiten der kommerziellen Checkmk-Versionen nutzt, ist sie in Checkmk Raw nicht verfügbar. Ich würde prinzipiell empfehlen, die Funktion zunächst auf einer Test-Instanz und nicht in einer Produktivumgebung oder auf einer Appliance auszuprobieren. Ein detaillierter Artikel in unserem Handbuch wird bald folgen.
Da Prophet noch kompiliert werden muss, benötigen wir zunächst gcc
und g++ (sudo apt install gcc g++)
. Anschließend müssen Sie als Checkmk-Instanz-Benutzer (
) das Installationsskript installieren, indem Sie es ausführbar machen und starten.sudo omd su <sitename>
wget https://raw.githubusercontent.com/tribe29/checkmk/1.6.0/bin/install_fbprophet
chmod +x install_fbprophet
./install_fbprophet
Der Vorgang wird einige Zeit brauchen und Sie können getrost die meisten Fehler ignorieren, etwa fbprophet 0.5 requires matplotlib. Wie ich bereits erwähnt habe, wird dies ab Checkmk 2.0 nicht mehr nötig sein.
Erstellen Sie Ihre erste Forecasting Metric
Jetzt können wir endlich anfangen! Die Vorhersage funktioniert mit jeder einzelnen Metrik, sodass wir zunächst eine auswählen müssen. In meinem Beispiel erstelle ich eine Vorhersage über den genutzten Speicher des Dateisystems (Used filesystem space) des neuen Checkmk-Forums, das seit Dezember 2019 auf Discourse läuft.
Gehen Sie zu einer beliebigen Service-View, die Sie als prognostizierte Metrik ansehen wollen.
Scrollen Sie nun zu Service Metrics und klicken sie auf das Symbol neben der Metrik und wählen Sie New forecast graph aus.
Wir erhalten nun eine Standardprognose, die die Daten des letzten Monats zusammenfasst und eine Prognose bis zum Ende des laufenden Monats erstellt. Die blaue Linie ist der aktuell genutzte Speicherplatz auf dem Dateisystem (used filesystem space). Bei der roten Linie handelt es sich um die Prognose und der gelbe Bereich ist das Spektrum, in der die Vorhersage die Metrik prognostiziert. Die grüne Linie symbolisiert den Start der Prognose.
Die Basis-Vorhersage ist bereits viel anspruchsvoller als eine einfache lineare Interpolation. Sie sehen auch, dass es eine Menge Optionen gibt, um das Prognosemodell zu optimieren. Lassen sie uns tiefer darauf eingehen, um eine wirklich leistungsstarke Vorhersage zu erhalten.
Verbessern Sie Ihre Dateisystem-Vorhersage
In der Standard-Vorhersage betrachten wir lediglich einen begrenzten Bereich. Aber Checkmk sammelt und speichert Daten langfristig. Wir können diese Daten nun nutzen, um eine bessere Einsicht zu erhalten, indem wir die Daten des gesamten Jahres nehmen und eine Vorhersage bis Ende diesen Jahres vornehmen.
Die Einstellungen hierfür sind nahezu selbsterklärend. Setzen Sie Consider history of auf This year und Forecast into the future auf Until end of year. Legen Sie außerdem die Display historic data since the last auf 180 days fest, sodass Sie auch die historischen Daten einsehen können.
In den ersten Monaten des Jahres 2020 ist der genutzte Speicherplatz auf dem Dateisystem leicht angestiegen und es sieht so aus, als wäre es an einem bestimmten Punkt bereinigt worden. Seitdem sieht das Wachstum recht stabil aus. Das Tolle ist, dass der Vorhersage-Algorithmus dies richtig interpretiert hat und eine vernünftige Prognose erstellt hat. Das obere und untere Spektrum haben zwar immer noch eine recht große Spannweite, dies lässt sich jedoch auf das fehlerhafte Verhalten in den ersten drei Monaten des Jahres zurückzuführen.
Um noch einmal klar zu machen, dass sich einfache Algorithmen nicht eignen, um Trends vorherzusagen, erstellen wir nun eine einfache lineare Interpolation. Ändern Sie dazu einfach die Trend flexibility auf Linear.
Die lineare Vorhersage prognostiziert nun, dass der genutzte Speicherplatz auf dem Dateisystem bis zum Ende des Jahres sinken wird, was offensichtlich nicht sinnvoll ist. Die lineare Interpolation kann den einmaligen Effekt – die Löschung von Dateien im März – nicht richtig beurteilen. Daher rate ich generell von einer linearen Vorhersage ab, sondern empfehle stattdessen die Standardeinstellung Adaptable, die viel fortschrittlichere Algorithmen verwendet.
Die verschiedenen Optionen unter Trend flexibility bestimmen, wie stark der Algorithmus Änderungen an den Originaldaten vornehmen darf. Ich empfehle Ihnen, ein bisschen mit den Einstellungen zu experimentieren, um ein Gefühl dafür zu bekommen.
Vorhersage der CPU-Load
Wir haben bereits gesehen, dass wir schöne Vorhersagen für Dateisysteme erstellen können. Für unser Checkmk-Forum geht die Prognose von einem Wachstum von 16 GByte auf 18 GByte bis Ende des Jahres aus. Die täglichen Schwankungen sind außerdem nicht so dynamisch, wie sie beispielsweise bei der CPU-Load sein können. Da unsere Teamgröße in den letzten Monaten stetig gewachsen ist und jeder von uns Jira nutzt, habe ich mir die CPU-Load unseres Jira-Servers näher angeschaut.
Wir können sehen, dass die CPU-Load stetig steigt. Besonders in den letzten Monaten lässt sich ein deutlich stärkerer Anstieg feststellen. Die Algorithmen berücksichtigen das ziemlich gut. Während wir immer mehr Mitarbeiter zu Jira hinzugefügt haben, haben wir in den letzten Monaten außerdem damit begonnen, die Analyse-Funktionen von Jira und Jira Service Desk zu nutzen – dies kann auch der Grund für die gestiegene CPU-Load sein. Der Server hat derzeit 8 Cores. Das reicht aktuell noch aus, wir sollten aber besser ein Auge darauf haben.
Sie können alle erstellten Vorhersagen über Views in der Sidebar finden. Klicken Sie dort auf Edit und anschließend auf Forecast Graphs im oberen Menübereich. Checkmk gibt Ihnen die Tools an die Hand, um ein Data Scientist mit Ihren Monitoring-Daten zu werden und vernünftige Prognosen für ihre Dateisysteme, CPU-Loads etc. zu erstellen. Sie können diese Prognosen als Reports exportieren, um sie als Diskussionsgrundlage für das nächste IT-Budget mit Ihrem Vorgesetzten zu verwenden. Sie können sie aber auch nutzen, um potenzielle Zwischenfälle frühzeitig zu erkennen.
Es liegt noch eine Menge Arbeit vor uns, um diese neue Funktion weiter zu verbessern. Der erste Schritt ist jedoch getan, indem wir dafür gesorgt haben, dass die Installation einfach ist und sich die Größe des Checkmk-Pakets dadurch nicht verdoppelt hat. Als nächstes werden wir die Nutzerfreundlichkeit verbessern und Bugs eliminieren. Ein zukünftiges Thema ist außerdem eine Alarmierungen basierend auf Vorhersagen.
Teilen Sie mit uns Ihre Erfahrungen mit Forecasting Metrics und wie wir sie verbessern können. Schreiben Sie uns dazu eine E-Mail an: feedback@checkmk.com.
Happy monitoring!