Einleitung

Dieser Blog Beitrag soll zeigen, wie Du mittels HTTP Aufruf, die Graphen von bestimmten Services aus Centreon exportieren und weiterverarbeiten kannst.

Centreon ist ein Open Source Monitoring System zur Überwachung von IT Umgebungen. Wegen seiner guten Skalierbarkeit und des modularen Aufbaus ist es sowohl zur Überwachung von kleinen als auch großen Netzwerken geeignet. Bis heute begeistert Centreon eine große Community, die eifrig an der konstanten Weiterentwicklung arbeitet und zahlreiche Zusatztools bereitstellt.

Aktuell realisiere ich für ein Kundenprojekt ein Web-Frontend, das als Kunden-Frontend für Centreon dienen soll. Die Oberfläche soll an die CI des Kunden angepasst werden, um die Zugehörigkeit zum Unternehmen darzustellen. Um besseren Einblick in die Zustände der jeweiligen Hosts und Services des Kunden darzustellen, werden im späteren Verlauf des Projekts auch Graphen benötigt. Diese lassen sich mittels einer von Centreon implementierten Funktion exportieren.

Um die Funktion zum Exportieren von Graphen verwenden zu können, sind einige Anpassungen an Centreon notwendig. Wie diese eingerichtet werden, erfährst du im nächsten Abschnitt.

Vorrausetzungen – Centreon Version

Als grundlegende Vorrausetzung setze ich eine funktionsfähige Centreon Installation, welche sich zum Entstehungszeitpunkt dieses Artikels in der Version 2.8.8 befand.
Notwendig für das Exportieren von Daten ist mindestens ein konfigurierter Host und zugehöriger Service.

Als weitere Vorrausetzung setze ich einen angelegten User und dessen Autologin Key fest.
Wie man einen solchen Autologin Key hinterlegt erfährst du gleich.

Als Skriptsprache zum Anfragen der Daten werde ich hier als Beispiel PHP verwenden.
Natürlich lassen sich diese Daten mit jeder beliebigen Programmiersprache abgreifen.

Die Graphen werde ich als Rohdaten erhalten. Um sie später in einer Anwendung oder einer Webseite einzubinden müssen sie entweder mit entsprechenden Header, kodiert oder als Datei gespeichert werden.

Autologin Key einem User hinterlegen

Es ist notwendig einen User mit einem Autologin Key zu versehen. Diesen kann man in der Userverwaltung hinterlegen. Hierfür kann ein bestehender User angepasst oder ein Neuer anlegt werden.

Configuration -> Users -> Centreon Authentication -> Autologin Key

Der Key kann mithilfe des Knopfs „Generate“ erzeugt oder selbst eingetragen werden.

Als Beispiel habe ich hier meinen User verwendet

Anschließend können die Information am User gespeichert werden. Ein Neustarten des Pollers ist bei Änderungen am User nicht notwendig, die Änderungen werden sofort aktiv.

Simples Beispiel Skript

Ich habe für diesen Beitrag ein kleines PHP Skript geschrieben welches sich ausschließlich mit dem Anfragen der Daten an Centreon befasst. In meiner Implementation für das Kundenprojekt werden die Daten noch weiterverarbeitet und es enthält Kontrollstrukturen falls beim Generieren der Graphen etwas Unerwartetes geschieht.

Im Prinzip muss das Skript lediglich eine URL erzeugen und diese mittels CURL aufrufen. Die Antwort enthält bereits die Rohdaten des Graphen.

Die schlussendliche URL sieht wie folgt aus:

Diese URL nehmen wir kurz Schritt für Schritt auseinander.

Hier tragen wir die IP oder den FQDN ein, unter der Centreon erreichbar ist.

Dieses Skript von Centreon ermöglicht das Abfragen von Graphen.

Der hinterlegte Autologin Key für den verwendeten User.

Der zugehörige Username.

Der Host des Graphen den wir haben möchten.

Der Service auf dem entsprechenden Host den wir haben möchten.

Im Skript selbst habe ich das Erstellen dieses Strings etwas aufgeteilt. Hier werden username, autologin key und centreon host schließlich nicht verändert.

Im Konstruktor ist es wie folgt hinterlegt.

Somit kann auf die URL von innerhalb der Funktionen zugegriffen werden. Der Host- und Servicename wird dann innerhalb der Funktion getGraph angehängt.

Start und Endzeit können optional der URL übergeben werden. Erwartet wird hier ein Timestamp. Hierdurch kann beeinflusst werden welcher Zeitraum für den Graphen angezeigt wird.

Den CURL Aufruf habe ich gesondert in einer Funktion untergebracht um ihn auch von anderen Funktionen aus aufrufen zu können.

Die Optionen für CURL
•CURLOPT_HEADER = false, verhindert das übergeben eines Headers
•CURLOPT_RETURNTRANSFER = true, gibt die Antwort als String zurück
•CURLOPT_BINARYTRANSFER = true, gibt die Antwort unverarbeitet zurück

Als Antwort erhält man nun den entsprechenden Graphen als Rohdaten. Diese kann man weiterverarbeiten oder mittels file_put_contents in eine Datei speichern.

Fazit

Centreon bietet hier eine einfache Methode um die Graphen aus dem Monitoring zu exportieren. Dieser Beitrag zeigt nur einen kleinen Einblick wie so etwas realisiert werden kann. Zusätzliche Verarbeitung der Daten ermöglicht es hier eine Umgebung zu schaffen die alle wichtigen Informationen auf einen Blick bereit hält. Ein weiteres Einsatzgebiet für das Exportieren dieser Graphen könnten Reports sein, die dem Kunden einen Überblick seiner Hosts und Services über einen größeren Zeitraum geben. Es gibt viele Anwendungsgebiete für einen solchen Export. Ich hoffe ich konnte einen kleinen Einblick liefern.

Nicolas Kortgen

Nicolas Kortgen

Application Developer

Nick ist in Frankreich aufgewachsen, bevor es ihn nach Deutschland verschlagen hat. Er kann nicht nur die Bälle beim Jonglieren in der Luft halten, sondern auch die unterschiedlichsten Projekte am Laufen. Löst den Rubik Würfel in unter einer Minute. Startete bei Braintower als Praktikant, wechselte dann zum Azubi und bringt auch noch heute alle zum Lachen.

Gefällt dir der Artikel? Bitte teile ihn!
Share on Facebook
Facebook
9Share on Google+
Google+
0Share on LinkedIn
Linkedin
Email this to someone
email
Tweet about this on Twitter
Twitter