Seite wählen

NETWAYS Blog

Open-Source-Schulungen und Workshops – dein Erfolg mit Icinga, Ansible und Co.

This entry is part 3 of 4 in the series So geht IT Consulting

Moderne IT entwickelt sich in unglaublichem Tempo weiter. Produkte und Software, die vor drei Jahren noch Standard waren, sind heute vielleicht schon Schnee von gestern. Um hier nicht den Überblick zu verlieren und immer auf dem neuesten Stand zu sein, bietet NETWAYS wie viele andere Open Source Dienstleister auch Trainings und Workshops an. Doch was genau unterscheidet diese beiden Modelle eigentlich voneinander? Und welche davon ist vielleicht die Richtige für dich?

Als Senior Manager Services ist Markus Waldmüller zusammen mit seinem Team unter anderem für die Einplanung unserer Open Source Spezialist:innen als (Co-)Trainer:innen verantwortlich. Er gibt dir einen Einblick, was wir bei NETWAYS Professional Services unter Trainings und Workshops verstehen, welche Voraussetzungen du mitbringen solltest und wie wir mit individuellen Anfragen und Wünschen umgehen.

Was sind eigentlich Anwenderschulungen?

Anwenderschulungen bei NETWAYS bezeichnen wir intern in der Regel nur kurz als Schulungen bzw. Trainings. Wir bieten sie zu verschiedenen Open Source Anwendungen an, zum Beispiel Ansible, Icinga, Prometheus oder Kubernetes.

Schulungen bieten wir über unsere Webseite in regelmäßigen Abständen zur öffentlichen Teilnahme an. Das heißt, dass sich das Teilnehmerfeld sehr oft aus Menschen aus verschiedenen Firmen oder Organisationen mit unterschiedlichem Hintergrund zusammensetzt. Allerdings ist die Sprache hierbei auf Deutsch begrenzt. Außerdem gibt es seit der Pandemie bei uns eine gesunde Mischung aus Online-Trainings und Schulungen vor Ort.
Für diese Vor-Ort-Termine haben wir hier in Nürnberg ein eigenes NETWAYS Schulungszentrum, das sogenannte „Kesselhaus“. Dieses kann neben den Schulungen auch für andere Veranstaltungen gebucht werden. Spätestens hier findet vor, während und nach der Schulung – nicht zuletzt auch bei der gemeinsamen und reichlichen Nahrungsaufnahme – auch ein reger Austausch zwischen den Teilnehmer:innen statt. Du lernst also nicht nur den Umgang mit der von dir gewählten Anwendung, sondern kannst zeitgleich wertvolle Kontakte knüpfen. Die Möglichkeit, in besonderen Maß von einer Teilnahme zu profitieren, ist jederzeit vorhanden. Wenn deine Firma oder Organisation gleich mehrere Teilnehmer:innen zur Schulung schicken möchte, bieten wir hierfür entsprechende Staffelungen für Rabattcodes an.

Das besondere Merkmal einer NETWAYS Schulung ist, dass sie einen roten Faden hat und einem vorgegebenen Stoff folgt. So ist sichergestellt, dass alle Teilnehmer:innen der Schulung dieselben Grundinhalte und Best Practices vermittelt bekommen und darauf aufbauen können. Bei unseren Schulungen haben wir stets einen hohen Anteil an praktischen Übungen, sodass du dein neu erlangtes Wissen durch Übungen prüfen und vertiefen kannst. Wenn du einmal an einer Stelle nicht weiter kommst, bekommst Du Ad-hoc Hilfestellungen und Fragen können am spezifischen Problem beantwortet werden.
Findet die Schulung vor Ort statt, so erhalten die Teilnehmer:innen die Schulungsunterlagen (inkl. Aufgaben und Musterlösungen) auch noch mal in ausgedruckter Form. Bei Online-Terminen erfolgt dies zumindest in digitaler Form als PDF.

Interesse und Neugier, den Rest erledigen wir

Ein weiterer Aspekt ist, dass alle unsere Trainer:innen aus der Praxis stammen und den fest vorgegebenen Schulungsstoff sowie Pausen- und Abendgespräche auch mit großem Wissen ergänzen können. Damit diese Wissensvermittlung auch gewährleistet bleibt und unterschiedliche Vorkenntnisse bzw. Verhaltens- oder Arbeitsweisen der Teilnehmer:innen nicht zum Problem werden, versuchen wir die Anzahl auf ca. 12 Personen zu begrenzen. Bei Vor-Ort-Terminen setzen wir deswegen ab 6 Teilnehmern eine:n zusätzlichen Co-Trainer:in ein, dessen Hauptaufgabe darin besteht, dich und die anderen Schulungsteilnehmer:innen entsprechend zu unterstützen, damit ihr den Schulungsinhalten weiter folgen und aufnehmen könnt.

Für die Vor-Ort-Schulungen wird Dir ein eigenes Schulungsnotebook (inkl. entsprechender Peripherie) zur Verfügung gestellt. Dieses verfügt über Internetzugriff und dient dazu, die praktischen Übungen in einer vorgegebenen Umgebung durchführen zu können. Bei vielen Schulungen arbeiten wir inzwischen nicht mehr auf den Notebooks, sondern mit virtuellen Maschinen. Dabei bekommst du (je nach Schulung) eine oder mehrere eigene VMs um dort autark in Deinem eigenen Kosmos arbeiten zu können. Bei Online-Trainings verzichten wir natürlich auf die Bereitstellung eigener Hardware, jedoch bekommst du hier mindestens eine eigene VM für die Dauer der Schulung.

Individuelle Schulungen: wir setzen Deine Wünsche um

Neben den Schulungen an den öffentlichen Terminen bieten wir dir und deinem Unternehmen auf Bestellung auch individuell abgestimmte Schulungstermine und bei Bedarf auch auf Englisch an. Auch hier unterscheiden wir zwischen Online und vor Ort. Zu Vor-Ort-Terminen bei Kunden, sog. „Inhouse-Schulungen„. Wir bringen unser Schulungsequipment mit in Dein Unternehmen oder senden es im Vorfeld, je nach Anreise des bzw. der Trainer:innen.
So kannst du auch hier ohne Restriktionen auf dem Schulungsnotebook arbeiten. Wir mussten leider schon oft die Erfahrung machen, dass sich Teilnehmer mit eigener Hardware aufgrund von Sicherheitsvorkehrungen nicht bzw. nur mit viel Aufwand auf den Trainings-VM’s oder deren Interfaces einloggen und arbeiten konnten. Außerdem steigt die Gefahr, das die Wissensvermittlung durch Mails oder Chats unterbrochen oder zumindest gestört werden kann. Mit unserer eigenen, speziell auf das Thema vorbereiteten Hardware stellen wir sicher, das du ein funktionierendes und getestetes Notebook hast und Störfälle soweit möglich minimiert werden können.
Natürlich ist dazu bzgl. des Schulungsraumes oder benötigtem Internetzugriff im Vorfeld eine höhere Abstimmung notwendig.

Als Sonderform des NETWAYS Schulungsangebots bleiben noch individuelle Schulungen zu erwähnen. Diese stellen die absolute Ausnahme dar und werden eher selten bestellt. Eine individuelle Schulung zeichnet sich, wie der Name schon vermuten lässt, durch individuelle Schulungsinhalte aus. Das heißt, wir erstellen in deinem Auftrag die Schulung nach Deinen Themenwünschen. Da bereits eine 1-2 tägige Schulung mehrere Wochen an Vorbereitung und dem eigentlichen Schreiben der Schulung an Aufwand bedeutet, ist es natürlich eine Frage der Kosten und ob nicht doch eine Schulung aus unserem bestehenden Portfolio Kosten-Nutzen-technisch gesehen besser geeignet ist. Nicht zuletzt wollen wir bei unseren Schulungen ja sowieso bestmöglich Wissen und Best Practices vermitteln.

Eine andere, teilweise gewünschte Variante ist das Überspringen mancher Themen, das sogenannte „Picking„. Viele unserer Schulungen folgen einem bestimmten Muster und die jeweiligen Kapitel bauen aufeinander auf. Ein Weglassen eines Kapitels würde dazu führen, das auch der Rest der Schulung nicht ohne Weiteres behandelt werden kann oder zumindest Lücken im Schulungsstoff entstehen.
Vielleicht mag es für dich auf den ersten Blick sinnvoll sein, für dich eher nicht relevante Teile auszulassen, um somit die Gesamtzeit der Schulung zu kürzen, auf den zweiten Blick hat bei unseren Schulungen jedoch jedes Kapitel seine Daseinsberechtigung.
Es kann durchaus vorkommen, dass du nicht alle Teile aus einem Kapitel oder das Ganze sofort in deiner jeweiligen IT-Umgebung brauchst, es kann aber natürlich durchaus sein, das dies zukünftig mal der Fall sein wird. Zumindest lassen sich daraus auch Lösungen für ähnliche oder andere Fälle herleiten.

Erst Fundamentals dann Advanced – unsere Empfehlung

Wenn eine Schulung mehrere Level hat, z.B. „Icinga 2 Fundamentals“ und „Icinga 2 Advanced“ empfehlen (und erwarten) wir das du als Teilnehmer der Advanced-Schulung zuvor auch die Fundamentals-Schulung besucht hast. Die Schulungen bauen aufeinander auf und klar, in der Fundamentals-Schulung vermitteln wir auch Grundlagen, die manche Advanced-Interessenten zum teil schon haben mögen.
Durch den sehr hohen praktischen Anteil orientiert an Best Practices fehlen Ihnen aber vielleicht und erfahrungsgemäß auch einige Dinge, die wir in der Advanced-Schulung voraussetzen. Das hat zur Folge, dass der Stoff aus der Fundamentals nachgearbeitet werden muss und dieser zeitliche Mehraufwand ist in der Advanced-Schulung nicht vorgesehen. Warum wir das so handhaben? Eine regelmäßige Nachbearbeitung von Wissenslücken aus einer Grundlagenschulung würde dazu führen das andere relevante Teile nicht mit der nötigen Zeit behandelt werden können.
Und das möchten wir nicht zuletzt auch zum Wohl anderer Schulungsteilnehmer vermeiden.

Nichtsdestotrotz versuchen natürlich alle deiner individuellen Wünsche bestmöglich zu bedienen und darauf einzugehen. Unser Schulungsportfolio ändert sich von Zeit zu Zeit, weswegen wir auf bestehenden Schulungsstoff zurückgreifen können, auch wenn wir die Schulung dazu aktuell nicht auf der Webseite anbieten. Auch im Rahmen unserer internen Ausbildung haben wir einige Schulungen, die es (noch) nicht in unser offizielles Angebot und damit auf die Webseite geschafft haben.
Wenn du also den Wunsch nach einer bestimmten Schulung hast, sie aber aktuell nicht auf unserer Homepage sehen kannst, schreib uns einfach eine kurze Mail mit deinem Anliegen. In den meisten Fällen finden wir eine Lösung!

Das wichtigste Wissen kurz und kompakt – unsere Workshops

Falls eine mehrtägige Schulung deinen Zeit- oder Budgetrahmen übersteigt, haben wir eine Lösung für dich: unsere Workshops. Meistens veranstalten wir diese im Rahmen unserer Fachkonferenzen wie der Open Source Monitoring Conference oder der Stackconf.
Im Gegensatz zu unseren Schulungen gibt es für die Workshops keine ausführlich ausgefertigten Unterlagen. Stattdessen erhältst du in vielen Fällen Handouts mit den wichtigsten Eckdaten und Erkenntnissen. Dennoch folgen auch unsere Workshops einer vorgegebenen Linie. Diese kann jedoch von dir und anderen Teilnehmer:innen beeinflusst werden.
Beispiel gefällig? Das Teilnehmer:innenfeld hat bereits die Grundlagen verinnerlicht, aber spezifische Fragen zu bestimmten Aspekten einer Anwendung. Unsere erfahrenen Trainer:innen passen den Workshop an einigen Stellen auf Fragen und Wissenstand an. So kommst du immer auf Deine Kosten.

Dieser Ansatz kann bei unseren Schulungen meistens aus Zeitgründen nicht verfolgt werden. Hier kann, wenn dann nur kurz auf das zusätzliche Thema eingegangen werden.
Eine weitere Besonderheit unserer Workshops ist, dass sie ausschließlich vor Ort stattfinden. Ähnlich wie bei Schulungen setzen wir auf ein gesundes Maß an Teilnehmer:innen und setzen bei Bedarf eine:n zweiten Trainer:in ein.
Zur Open Source Enterprise Monitoring Software Icinga bieten wir derzeit jedoch keine Workshops an, andere Workshops werden im Rahmen der jeweiligen Konferenz publiziert.

Ich hoffe, ich konnte dir einen guten und vor allem spannenden Einblick in unser Schulungsangebot geben und was dich als Teilnehmer:in bei NETWAYS erwartet. Wir erweitern und aktualisieren regelmäßig unser Trainingsangebot. Ich empfehle dir also regelmäßig einen Blick auf unsere aktuelle Trainings-Webseite zu werfen. Ich bin mir sicher, dass das richtige Training für dich und deine Kolleg:innen dabei ist.
Falls du dich jetzt für ein Training interessierst oder weitere Fragen hast, zögere nicht, uns einfach eine kurze Kontaktanfrage zu schicken.

Markus Waldmüller
Markus Waldmüller
Head of Strategic Projects

Markus war bereits mehrere Jahre als Sysadmin in Neumarkt i.d.OPf. und Regensburg tätig. Nach Technikerschule und Selbständigkeit ist er nun Anfang 2013 bei NETWAYS als Senior Manager Services gelandet. Seit September 2023 kümmert er sich bei der NETWAYS Gruppe um strategische Projekte. Wenn er nicht gerade die Welt bereist, ist der sportbegeisterte Neumarkter mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Mountainbike oder am Baggersee zu finden.

FAQs zur Icinga DB

Nachfolgend möchte ich auf einige Fragen zur Icinga DB eingehen, die uns derzeit bei unseren Kunden begegnen:

Was ist die Icinga DB?

Icinga DB ist eigentlich ein Sammelbegriff für verschiedene Komponenten der Monitoringlösung Icinga. Vorwiegend bezieht sich Icinga DB aber auf das Datenbankbackend als Nachfolger der IDO. Damit einher geht auch auch ein neues Modul für Icinga Web das mit diesem neuen Backend sprechen kann.

Was haben Icinga DB und IDO gemeinsam?

Beide Komponenten stellen einen persistenten Speicher für Icinga zur Verfügung, dieser basiert auf einer relationalen Datenbank. Es wird sowohl MySQL bzw. MariaDB als auch PostgreSQL unterstützt.

Was ist der Unterschied zwischen Icinga DB und IDO?

Während das Datenbankschema der IDO historisch gewachsen ist wurde das Datenbankschema der Icinga DB von Grund auf neu designed. Zusätzlich zum persistenten Speicher bringt die Icinga DB mit Redis auch einen In-Memory-Datenspeicher mit. Damit wird effizienter und insgesamt weniger in den persistenten Speicher geschrieben, was sich positiv auf die Gesamtperformance des Systems auswirkt.

Wie konfiguriere ich den Icinga Core für Icinga DB als Backend?

Aktuelle Icinga-Versionen bringen die Unterstützung für Icinga DB bereits mit. Die Komponenten der Icinga DB stehen als zusätzliche Pakete zur Verfügung. Sobald diese installiert sind, die persistente Datenbank erstellt ist und die beiden Dienste der Icinga DB für Redis und Datenbank ordnungsgemäß laufen, verbindet man den Icinga Core über ein integriertes Feature mit dem Redis Service der Icinga DB.

Wie konfiguriere ich das Webfrontend für Icinga DB?

Mit einem zusätzlichen Modul für Icinga Web ist dieses in der Lage die Daten der Icinga DB aus Redis und persistenten Speicher anzuzeigen, beide Teile werden konfiguriert und angesprochen. Auch der sog. Command Transport muss für Icinga DB entsprechend konfiguriert werden um z.B. Aktionen wie die Neuausführung von Checks via Icinga Web an den Icinga Core weiter zu geben.

Ist ein Parallelbetrieb der Backends von Icinga DB und IDO möglich?

Ja. Da beide vom Icinga Core als Features angesprochen werden, können diese auch parallel laufen. Natürlich führt das dann in beiden persistenten Speichern auch zu doppelter Datenhaltung. Daher empfehlen wir das nur temporär.

Ist ein Parallelbetrieb des Webfrontends für Icinga DB und IDO möglich?

Ja. Sobald Icinga Web das Monitoring Modul und auch das Icinga DB Modul aktiviert und konfiguriert hat, ist ein Zugriff auf beide Backends möglich. Mittels Berechtigungen lässt sich allerdings einschränken wer überhaupt das herkömmliche Monitoring bzw. Icinga DB sehen und benutzen darf. Sind die Berechtigungen für beide Module erteilt, gibt es beim sog. „Dualview“ in vielen Ansichten eine Auswahlmöglichkeit zwischen Daten aus der Icinga DB oder der IDO. Die Unterstützung der Backends variiert jedoch v.a. bei Community Modulen noch etwas.

Wie sieht eine Migration von IDO auf Icinga DB aus?

Das letzte Release der Icinga DB liefert auch ein Migrationsskript. Damit kann die gesamte Historie aus der IDO in den persistenten Speicher der Icinga DB übernommen werden. Alternativ kann aber auch der Zeitraum der zu migrierenden Daten eingeschränkt werden. Eigene Dashboards in Icinga Web müssen auf Icinga DB angepasst werden und auch bestehende Reports sind für Icinga DB mit dem neuen Backend abzuspeichern. Da sich die Ansichten des Webmoduls für Icinga DB von dem für IDO (Monitoring) teilweise unterscheiden, ist jedoch eine Übergangszeit mit einem Parallelbetrieb beider Backends ratsam um v.a. auch die Nutzer daran zu gewöhnen.

Sollten alle auf Icinga DB umsteigen?

Ja, v.a. mittel- bis langfristig! Denn Icinga DB gilt als Nachfolger bzw. Ersatz der IDO. Auch wenn der genaue Zeitpunkt derzeit noch nicht feststeht, wird der Support für IDO früher oder später eingestellt werden. Schon jetzt ist absehbar das neue Features v.a. bei Icinga Web Modulen nur noch für Icinga DB kommen und man profitiert ab sofort von der verbesserten Performance.

Natürlich beraten und unterstützen wir gerne bei der Neuinstallation von Icinga oder beim Umstieg auf Icinga DB. Kommt einfach ganz unverbindlich auf uns zu!

Markus Waldmüller
Markus Waldmüller
Head of Strategic Projects

Markus war bereits mehrere Jahre als Sysadmin in Neumarkt i.d.OPf. und Regensburg tätig. Nach Technikerschule und Selbständigkeit ist er nun Anfang 2013 bei NETWAYS als Senior Manager Services gelandet. Seit September 2023 kümmert er sich bei der NETWAYS Gruppe um strategische Projekte. Wenn er nicht gerade die Welt bereist, ist der sportbegeisterte Neumarkter mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Mountainbike oder am Baggersee zu finden.

Schulungsnotebooks in neuem Gewand

In diesem Jahr konnten wir endlich wieder mehr Vor-Ort Trainings durchführen als in den vergangenen Jahren und sogar vereinzelte Inhouse-Trainings bei Kunden waren möglich. Bisher haben wir bei unseren Präsenztrainings oder auch -workshops auf Notebooks mit CentOS 7 gesetzt, und zwar deshalb weil die automatische Provisionierung durch unseren sog. „Event“-Foreman in Kombination mit Puppet seit langer Zeit gut funktioniert.

Recovery-Eintrag

Da es in der Vergangenheit für die Kollegen allerdings sehr aufwändig war die Notebooks nach jedem Training wieder ins Büro zu schleppen, sie zu verkabeln und sie dann von Grund auf neu zu installieren, haben wir uns einen Trick einfallen lassen: Nach der automatischen Grundinstallation des Betriebssystems wird ein LVM-Snapshot des Base Images erstellt. Grob gesagt heißt das der Stand des Base Images wird eingefroren und alles was neu hinzukommt bzw. verändert wird (z.B. individuelle Schulungsvorbereitungen für verschiedene Trainings) belegt zusätzlichen Plattenplatz. Damit lässt sich das ursprüngliche Base Image ohne Neuinstallation eines Notebooks schnell wieder herstellen und kann so auf das nächste Training angepasst werden.

Ein weiterer Vorteil des Ganzen ist das die Schulungsteilnehmer ihre Arbeitsumgebung so gestalten können wie sie möchten und beispielsweise auch uns nicht bekannte Passwörter setzen können, mit dem Löschen des LVM-Snapshots ist alles wieder vergessen. Um es auch technisch nicht so affinen Kollegen einfach möglich zu machen Notebooks „zurückzusetzen“, gibt es hierfür beim Booten unser Schulungsnotebooks einen „Recovery“-Eintrag im GRUB-Bootloader der den LVM-Snapshot des Base Images ohne jedes Zutun zurückspielt und das Notebook anschließend neu startet.

Wie kommen aber nun die individuellen Schulungsvorbereitungen auf die Notebooks? Ist die Frage die wir uns auch gestellt haben. Individuelle Schulungsvorbereitungen können z.B. die virtuelle Maschine(n) für das Training sein, meistens auf Basis von Virtual Box, SSH Keys, Hosteinträge, bestimmte Browser oder andere Applikationen um den Schulungsteilnehmern die praktischen Übungen überhaupt möglich bzw. so einfach wie nur denkbar zu machen. Sie in den Provisionierungsprozess einzubauen scheidet ja aus, da die Notebooks wenn überhaupt nur unregelmäßig neu installiert werden sollen.

Also haben wir uns auch hier etwas überlegt: Wir haben im allgemeinem Base Image ein Bash-Skript mit einem statischen Link zur Nextcloud abgelegt. Dort findet sich ein weiteres Skript das auf die aktuell angebotenen Trainings und die jeweils dafür benötigten Schulungsvorbereitungen verweist. D.h. hier liegen beispielsweise dann auch die aktuellen virtuellen Maschinen. Um das Ganze auf den Notebooks umzusetzen verwenden wir wieder Puppet, hier war die Transition leichter da wir das in der Vergangenheit so ähnlich eh schon im Foreman hatten. Damit auch jeder der Kollegen ein Notebook individualisieren kann, gibt’s hierfür natürlich auch einfache Auswahldialoge. Wurde ein Notebook für ein bestimmtes Training vorbereitet, so löscht sich das Skript zur Vorbereitung und kann erst nach dem Recovery wieder ausgeführt werden.

Beispielhafter Auswahldialog für individuelle Schulungsvorbereitung (teils mit historischen Trainings)

Das alles sollte nun natürlich auch weiterhin funktionieren. Da CentOS 7 ab 2024 keine Maintenance Updates mehr bekommt und wir bei manchen Schulungen die nativ auf den Notebooks durchgeführt werden auch etwas mit den veralteten Versionsständen zu kämpfen haben, fiel unsere Entscheidung auf CentOS Stream 9 als neues Betriebssystem für unsere Schulungsnotebooks. Damit wir überhaupt dran denken konnten CentOS Stream zu provisionieren musste erstmal das Debian auf unserem „Event“-Foreman angehoben werden, danach folgten viele kleine Updates von Foreman 1.22 bis zum aktuellen Release 3.4.0 und auch Puppet bzw. die Puppetmodule mussten aktualisiert werden. Im Foreman selbst waren die Mirrors für CentOS Stream einzurichten, Bereitstellungsvorlagen anzupassen und auch die Partitionierung haben wir aufgrund der gestiegenen Plattenkapazität der Notebooks adaptiert. Für einen automatischen Ablauf der Provisionierung nutzen wir das Foreman Discovery Plugin.

Foreman Discovery der Schulungsnotebooks

Wer sich nun selbst ein Bild von unseren Schulungsnotebooks machen möchte, dem kann ich natürlich auch nicht nur deswegen eines unserer Trainings oder einen unserer angebotenen Workshops ans Herz legen. Vielleicht auch im Zuge der diesjährigen OSMC (Open Source Monitoring Conference).

Markus Waldmüller
Markus Waldmüller
Head of Strategic Projects

Markus war bereits mehrere Jahre als Sysadmin in Neumarkt i.d.OPf. und Regensburg tätig. Nach Technikerschule und Selbständigkeit ist er nun Anfang 2013 bei NETWAYS als Senior Manager Services gelandet. Seit September 2023 kümmert er sich bei der NETWAYS Gruppe um strategische Projekte. Wenn er nicht gerade die Welt bereist, ist der sportbegeisterte Neumarkter mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Mountainbike oder am Baggersee zu finden.

Grafana queries InfluxDB

Christoph hat euch ja bereits in einem früheren Blogpost vor ca. einem Jahr näher gebracht wie man Icinga 2 und InfluxDB 2 miteinander „zum Reden“ bringt. Seit Icinga 2.13 steht nun auch der Influxdb2Writer zur Verfügung, welchen Afeef in seinem Blogpost benützt.

Ich möchte euch heute darauf basierend zeigen wie man nun das Setup erweitert und Grafana mit InfluxDB 2 konnektiert. Da InfluxDB 2 zum aktuellen Zeitpunkt sowohl die neue Flux Open Source Query Language (Flux) als auch noch die ältere Influx Query Language (InfluxQL) unterstützt, gibt es dafür grundsätzlich zwei verschiedene Möglichkeiten.

Zuerst stellen wir jedoch sicher das bereits ein Bucket für Icinga existiert und kopieren die ID für später:

$ influx bucket list
b860eefe6e38c504 icinga infinite 168h0m0s 6533ea60dddd2193 implicit

InfluxQL

Fangen wir mit der etwas aufwändigeren Methode an. Diese ist nötig wenn man InfluxDB 2 mittels InfluxQL abfragen möchte und geht nur auf CLI-Ebene. Dafür erstellen wir eine v1-Authentifizierung namens „grafana“ mit lesendem Zugriff auf das Icinga-Bucket:

$ influx v1 auth create --username grafana --password ****** --read-bucket b860eefe6e38c504
$ influx v1 auth list

Genau dieser „username“ und das zugehörige „password“ wird dann bei Grafana in der jeweiligen Data Source mit der Query Language „InfluxQL“ als „User“ bzw. „Password“ eingetragen. Zusätzlich geben wir bei „Database“ den Namen des Buckets, in unserem Fall „icinga“, an.

Flux

Für Flux gestaltet sich das Ganze etwas einfacher, da hier die native Authentifizierung verwendet werden kann:

$ influx auth create --description grafana --read-bucket b860eefe6e38c504
$ influx auth list

Bei der Data Source mit der Query Language „Flux“ ist dann in Grafana der soeben erstellte lange und kryptische „Token“ einzutragen. Außerdem wird das Bucket, beispielhaft „icinga“, und die Organisation benötigt. Diese wird beim initialen Setup von InfluxDB generiert und lässt sich wie folgt herausfinden:

$ influx org list

Wem das jetzt etwas zu Trocken war, dem kann ich gerne unsere Schulung zum Thema InfluxDB & Grafana nahe legen. Dort wird das im Kontext nochmal anschaulicher erklärt und auch Rückfragen sind natürlich gestattet.

Markus Waldmüller
Markus Waldmüller
Head of Strategic Projects

Markus war bereits mehrere Jahre als Sysadmin in Neumarkt i.d.OPf. und Regensburg tätig. Nach Technikerschule und Selbständigkeit ist er nun Anfang 2013 bei NETWAYS als Senior Manager Services gelandet. Seit September 2023 kümmert er sich bei der NETWAYS Gruppe um strategische Projekte. Wenn er nicht gerade die Welt bereist, ist der sportbegeisterte Neumarkter mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Mountainbike oder am Baggersee zu finden.

Stresstest für InfluxDB

Nach einer frischen Installation von InfluxDB, egal ob auf einem dedizierten System oder nicht, frägt man sich vielleicht wie leistungsfähig das Graphing Setup nun wirklich ist oder wie viel es denn eigentlich verträgt?

Diese Fragen lassen sich mit influx-stress beantworten. Das in Golang geschriebene Helferchen ist über GitHub erhältlich und feuert beliebig viele einstellbare Metriken an InfluxDB. Dabei spielt es keine Rolle ob es lokal oder remote von einem anderen System aus aufgerufen wird.

Installation

Nachdem das Repository heruntergeladen wurde, wird das Ganze mit „go build“ kompiliert:

# git clone https://github.com/influxdata/influx-stress.git
# cd influx-stress/cmd/influx-stress/
# go build -o /usr/local/bin/influx-stress

Vorbereitungen

Das Tool unterstützt derzeit nur die Authentifizierung für v1, allerdings kann man auf diese bei Bedarf auch komplett verzichten. Mit InfluxDB OSS 2.x kann dafür die „InfluxDB 1.x compatibility API“ benutzt werden. Außerdem empfiehlt es sich für die Tests ein eigenes Bucket anzulegen um es später in einem Rutsch wieder zu löschen oder um gleich eine passende Retention Policy zu definieren.

# influx bucket create -n stress
# influx bucket list
# influx v1 auth create --username stress --password ****** --write-bucket f596604f968324ff
# influx v1 dbrp create --bucket-id f596604f968324ff --db stress --rp infinite

Let’s go!

Sind die Vorbereitungen gemacht, kann es losgehen. Mit „-f“ läuft die Abgabe der Metriken so schnell wie möglich (fast as possible). Ich würde empfehlen zumindest noch mit „-r“ (runtime) die Laufzeit einzuschränken, andernfalls würde es endlos laufen. Durch Eingabe von „–host“ definiert man den Remotehost (Standard: „http://localhost:8086“).

# /usr/local/bin/influx-stress insert -f -r 1m --user stress --passs ****** --db stress

Eine beispielhafte Serie (für Icinga) könnte so aussehen: (Standard: „ctr,some=tag n=0i“)

# /usr/local/bin/influx-stress insert -r 1m ping4,hostname=agent.example.com,service=ping4,metric=rta crit=0.200000,min=0,unit="seconds",value=0.200000,warn=0.100000 --user stress --passs ****** --db stress

Nach erfolgtem Lauf bekommt man sowohl den Durchsatz (Throughput) als auch die geschriebenen Punkte (Points Written) angezeigt. Außerdem werden die Standardeinstellungen für die nicht definierten Parameter ausgegeben, die sich natürlich aber auch noch abändern lassen.

Using batch size of 10000 line(s)
Spreading writes across 100000 series
Output is unthrottled
Using 20 concurrent writer(s)
Running until ~18446744073709551615 points sent or until ~1m0s has elapsed
Write Throughput: 212335
Points Written: 13100000

Wer mehr zum Thema InfluxDB erfahren möchte, dem kann ich neben unseren üblichen Dienstleistungen auch unser InfluxDB & Grafana Training wärmstens ans Herz legen.

Markus Waldmüller
Markus Waldmüller
Head of Strategic Projects

Markus war bereits mehrere Jahre als Sysadmin in Neumarkt i.d.OPf. und Regensburg tätig. Nach Technikerschule und Selbständigkeit ist er nun Anfang 2013 bei NETWAYS als Senior Manager Services gelandet. Seit September 2023 kümmert er sich bei der NETWAYS Gruppe um strategische Projekte. Wenn er nicht gerade die Welt bereist, ist der sportbegeisterte Neumarkter mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Mountainbike oder am Baggersee zu finden.