pixel
Select Page

NETWAYS Blog

Icinga Director Branches veröffentlicht

Der Icinga Director kommt mit einer Vielzahl an Features um Icinga Konfigurationen im Web Interface zu erstellen und zu bearbeiten und wird genau aus diesem Grund von vielen Nutzer:Innen so gerne genutzt. Um dieses Featureset noch weiter auszubauen, hat Icinga das Director Branches Modul veröffentlicht – eine neue Erweiterung für den Icinga Director.

Dieses Modul stellt eine sichere, virtuelle Arbeitsumgebung im Director zur Verfügung. Nach der Umstellung auf einen Custom Configuration Branch werden alle Änderungen nur dann Teil der Icinga Konfiguration, wenn ihr euch zu einem Merge entscheidet. In diesen Branches können sowohl einzelne Nutzer als auch ganze Teams arbeiten und die jeweiligen Konfigurationen verwalten.

Arbeiten mit Configuration Branches

Mit den Configuration Branches könnt ihr eure Icinga Konfiguration in einem parallelen Branch erstellen und bearbeiten. Damit lassen sich in aller Ruhe Änderungen vorbereiten, ohne dass ihr die Deployments von anderen Nutzer:Innen blockiert. Wenn die Arbeiten in dem Branch abgeschlossen sind, können ihr einen Merge Request erstellen. So fließen eure Anpassungen zurück in den Hauptbranch des Directors und das Deployment erfolgt dann über den Hauptbranch.

Dieser Workflow ermöglicht es eurem Team bestimmte Tasks auf verschiedene Teams zu verteilen, wobei ihr euch eine saubere und überprüfbare Konfiguration bewahrt. Jeder Merge Request beinhaltet einen Kommentar, welcher die Änderungen im Detail beschreibt. Weiterhin könnt ihr jederzeit in die einzelnen User Branches springen, um euch alle Anpassungen genau anzusehen.

Erweitertes Activity Log

Bei der Nutzung der Director Branches wird das Activity Log des Directors in zwei Teile aufgesplittet. Oben seht ihr jetzt nur noch die Änderungen innerhalb eines Branches. Im unteren Teil der Anzeige finden sich alle Einträge des Hauptbranches, welcher für das Deployment der Konfiguration genutzt wird. Außerdem ist jeder Eintrag im Activity Log mit einem Kommentar versehen.

Erzwungene Configuration Branches

Die Director Branches kommen mit unterschiedlichen Berechtigungen für Benutzer und Teams. Somit können die Nutzer:Innen genau die Services und Hosts bearbeiten, für die sie zuständig sind, ohne sich Sorgen machen zu müssen, ob dies ggf. Auswirkungen auf das komplette Deployment hat.

Verfügbarkeit des Moduls

Die Icinga Director Branches stehen in der Version 1.1 allen Icinga Supportvertrags- und Icinga Subscriptionkunden zur Verfügung. Falls ihr euch für einen Test für 60 Tage, einen Supportvertrag oder eine Icinga Subscription interessiert, fragt uns einfach! Weitere Informationen zu den Director Branches findet ihr in der Dokumentation.

Martin Krodel
Martin Krodel
Head of Sales

Der studierte Volljurist leitet bei NETWAYS die Sales Abteilung und berät unsere Kunden bei ihren Monitoring- und Hosting-Projekten. Privat reist er gerne durch die Weltgeschichte und widmet sich seinem ständig wachsenden Fuhrpark an Apple Hardware.

Icinga Web 2 trifft Guacamole

In meinem heutigen Blogpost geht es um Guacamole in Icinga Web 2 und die Frage, wie Guacamole in Icinga Web 2 implementiert werden kann. Aber was sind eigentlich Guacamole und Icinga Web 2?

Introducing Icinga Web 2

Icinga ist eine Open Source Verfügbarkeits-Monitoring Plattform, mit der man Server, Netzwerke und Applikationen überwachen kann. Hier bietet Icinga Web 2 eine Weboberfläche für Icinga, mit der man eine grafische Übersicht der Monitoring-Umgebung hat. Icinga Web 2 bietet anhand von Modulen weitere Funktionalitäten. Mit dem Director-Modul etwa kann man Hosts, Services und weitere Icinga-Objekte sowie die Konfiguration bearbeiten und pflegen.

Hallo Guacamole

Administratoren verwenden häufig mehrere Arten von Anwendungen, um sich mit Servern/Computern Remote zu verbinden. Hier bietet Guacamole einen einfachen Weg, denn Apache Guacamole ist eine Open Source Anwendung, die mehrere Standardprotokolle für den Fernzugriff (wie SSH, VNC und RDP) unterstützt. Und dies über einen Webbrowser, ganz ohne zusätzliche Tools oder Erweiterungen.

Umsetzung

Beim Überwachen von Systemen kommt es immer wieder vor, dass man sich auf den Systemen einloggen muss, um etwas zu fixen oder zu ändern. Klassischer Fall: Ein Dienst läuft plötzlich nicht mehr oder eine Änderung muss in einer Konfigurations-Datei oder den Firewall-Regeln eingesetzt werden. Diese wird je nach System mit verschiedenen Protokollen realisiert, etwa SSH für Linux-Systeme oder RDP für Windows Systeme. Im Folgenden werde ich Dir zeigen, dass man mithilfe von Guacamole einen Remote-Zugriff auf Linux und Windows Systeme in Icinga Web 2 erhalten kann. Und das mit nur einem Klick auf einen Link in Deinem Webbrowser!

Installation

Ich werde nicht auf detaillierte Installationsschritte von Icinga 2 bzw. Icinga Web 2 und Guacamole eingehen, da es hier hauptsächlich um die Implementation von Guacamole in Icinga Web 2 geht.

Für die Installation von Guacamole gibt es zwei Möglichkeiten: die native Installation mit dem Quellcode oder die Installation mit Docker. Hier habe ich die offizielle Dokumentation von Guacamole benutzt. Für die Installation von Icinga 2 und Icinga Web 2 empfehle ich Dir die docker-compose, die unser Icinga Team entwickelt hat.

Connection Konfiguration in Guacamole

Guacamole liest alle Benutzer und Verbindungen aus einer einzigen Datei namens user-mapping.xml. In dieser Datei werden die Benutzer definiert, die auf das Guacamole-Webinterface zugreifen dürfen. Außerdem die Server, zu denen eine Verbindung hergestellt werden soll und die Verbindungsmethode. Unten sieht man, wie diese Datei konfiguriert werden soll:

<user-mapping>
    # Benutzer Administrator
    <authorize username="admin" password="strongpass">

        # RDP-Remotedesktop-Verbindung für Windows-System
        <connection name="Windows-Host">
                <protocol>rdp</protocol>
                <param name="hostname">10.77.14.114</param >      => FQDN oder IP des Zielhost
                <param name="port">3389</param>                   => Port, Standard ist 3389
                <param name="username">user</param>               => Benutzername
                <param name="password">strongpass</param>         => Password für den Benutzer
                <param name="domain">TEST-VM</param>              => Domäne des Benutzer, ggf. Hostname des Ziels
                <param name="disable-audio">true</param>          => Audio-Übertragung deaktivieren
                <param name="server-layout">de-de-qwertz</param>  => mit deutscher Tastatur verbinden
                <param name="security">any</param>                => Wie die Daten verschlüsselt werden sollen
                <param name="ignore-cert">true</param>            => Alle Zertifikate akzeptieren
        </connection>

        # SSH-Verbindung für Linux-System
        <connection name="Linux-Host">
                <protocol>ssh</protocol>
                <param name="hostname">10.77.14.10</param>      
                <param name="port">22</param>                     
                <param name="username">user</param>             
                <param name="password">strongpass</param>        
        </connection>
    </authorize>
</user-mapping>

 

Nachdem die Konfiguration angepasst wurde, muss der Guacamole-Dienst neu gestartet werden. Zunächst loggen wir uns im Browser auf dem Guacamole Webinterface an. Unten sieht man die beiden Systemen, die konfiguriert wurden. Wenn Du auf einen von beiden System klickst, landest Du Remote auf dem System. Die URL, die im Browser angezeigt wird, ist die URL des jeweiligen Systems. Dieses wird später für den Eintrag von beiden Systemen auf Icinga Web 2 für den Remote-Zugriff benötigt.

Konfiguration in Icinga Web 2

Nachdem Icinga Web 2 installiert wurde, loggen wir uns in Icinga Web 2 ein. Für den Eintrag der Guacamole-URLs wird die Shared Navigation Option unter den icingaadmin-Enstellungen genutzt. Hier wird ein Name für die Navigation eingegeben, als Type kann man Service oder Host Actions auswählen (und so konfigurieren, wo die Navigation angezeigt werden soll). Ins Target Feld kann die Darstellungsart des Remote-Fensters gesetzt werden und in der Url wird die Guacamole-URL der Remote-Systeme eingetragen, die wir im Guacamole-Webinterface haben.

Nachdem Du für die URL eine Navigation definiert hast, siehst Du diese unter Overview > Hosts > Actions. Hier kannst Du mit einem Klick auf die Systeme Remote zugreifen.

Windows-Host

Linux-Host

Zusammenfassung

Guacamole bietet Dir eine große Flexibilität im Vergleich zu anderen Tools, da hier keine Client-Installation nötig ist und nur mit URLs gearbeitet wird, die man in verschiedenen Anwendungen einsetzen kann. Ich habe Dir hier eine Basis-Konfiguration für die Verbindung gezeigt. Es gibt zudem die Möglichkeit, diese mit z.B. SSH-Keys und weiteren Methoden zu verschlüsseln und dadurch eine sichere Verbindung für den Remote-Zugriff zu bauen.

Momentan können die URL-Eintragungen in Icinga Web 2 nur über Shared Navigation erfolgen, somit ist eine URL-Zuordnung zum jeweiligen System nicht möglich. Das kann trotzdem für relevante Systeme wie das Icinga-Master-System vorteilhaft sein.

Dieses Thema wird mich weiterhin beschäftigen und vielleicht zeige ich Euch in meinem nächsten Blogartikel dann die Lösung. 😉

Saeid Hassan-Abadi
Saeid Hassan-Abadi
Systems Engineer

Saeid hat im Juli 2022 seine Ausbildung als Fachinformatiker für Systemintegration bei uns abgeschloßen, und arbeitet nun in Operation-Team. Der gebürtige Perser hat in seinem Heimatland Iran Wirtschaftsindustrie-Ingenieurwesen studiert. Er arbeitet leidenschaftlich gerne am Computer und eignet sich gerne neues Wissen an. Seine Hobbys sind Musik hören, Sport treiben und mit seinen Freunden Zeit verbringen.

Icinga Camp Berlin 2022

Das erste Icinga Camp nach 2019 fand nun fast 3 Jahre später statt. NETWAYS hat als Sponsor und Hilfe in der Organisation zusammen mit der Icinga das Event zusammen auf die Beine gestellt und zu einem vollen Erfolg gemacht.
Es wurde der aktuelle Stand der Dinge geteilt, neue Features vorgestellt und Perspektiven und Erfolge von Nutzern geteilt.

Für alle, die es nicht zur Veranstaltung schafften, haben wir nun alle Vorträge auf YouTube online gestellt. Die Videos sind im folgenden in den Überschriften der jeweiligen Vorträge verlinkt.

Wir begannen die Veranstaltung um 09:00 Uhr in Berlin mit frischem Kaffee und vielen Möglichkeiten, die anderen Besucher und das Team Icinga zu treffen. Es war eine großartige Gelegenheit, alte Freunde zu treffen und neue Gesichter in der Community willkommen zu heißen. Nach einer herzlichen Begrüßung durch den CEO Bernd, begannen wir direkt mit unserem ersten Vortrag:

 

How Companies tackle their Monitoring Challenge with Icinga – von Blerim Sheqa

In den letzten Monaten gab es verstärkt Bemühungen, mit Icinga-Nutzern zusammenzuarbeiten, um Customer Stories zu erstellen. Diese erklären, wie die Leute Icinga nutzen, was ihre besonderen Herausforderungen in deren Monitoring waren und wie Icinga geholfen hat, Probleme zu lösen. Für mehr Informationen, neben dem Überblick von Blerim, gibt es die vollständigen Stories auf der Icinga Website. 

 

Current State of Icinga DB – von Eric Lippmann

Der nächste Vortrag war das diesjährige Update von Icinga DB – und dieses Mal durfte Eric über die nun veröffentlichte Version vorstellen! Eric hat darüber gesprochen, wie Icinga DB funktioniert, was sie für Eure Monitoring Umgebung tun kann und welchen Herausforderungen wir während der Entwicklung gegenüberstanden. Darüber hinaus eröffnet Icinga DB neue Möglichkeiten, die mit IDO nicht möglich waren – also testet unsere Icinga DB gerne selbst!

 

Nach den Eröffnungsvorträgen von Team Icinga gab es in der ersten Kaffeepause einiges zu erzählen. Es wurde viel über Erfahrungen mit Icinga DB geplaudert, und Ideen ausgetauscht, was als nächstes in Angriff genommen werden soll. Es war eine schöne Pause, bevor es zurück in den Raum ging. Die Bühne wurde dann der Icinga-Community überlassen:

 

Monitoring at Scale with Icinga – geschrieben von Matthew Smith, präsentiert von Dave Kempe

Der Autor des Vortrags war leider nicht in der Lage, für uns zu sprechen, aber zum Glück konnte sein Kollege Dave kurzfristig einspringen. In diesem Vortrag hörten wir über die Erfahrungen von der australischen Firma Sol1. Diese haben durch ihre jahrelange Arbeit mit Icinga in großen Umgebungen einiges an Erfahrung sammeln können. Sie erzählten von den Vorteilen und möglichen Gefahren, die bei der Verwendung einer externen source of truth zur Konfiguration der Überwachung zu beachten sind, und welche Lektionen sie auf diesem Weg gelernt haben.

 

The Linuxfabrik Monitoring Plugin Collection – von Markus Frei

Die Plugins der Linuxfabrik wurden bereits Anfang des Jahres auf dem Icinga blog vorgestellt. In seinem Vortrag geht Markus ein wenig mehr ins Detail über die Hintergründe der Plugin-Kollektion und zeigt uns, wie sie unter der Haube funktioniert.

 

Die Mittagspause bot eine weitere Gelegenheit, bei einem leckeren Buffet Leute zu treffen und sich über alle Dinge rund um Icinga zu unterhalten. Nach anderthalb Stunden geselligen Beisammenseins kehrten wir zu unseren Plätzen zurück, um uns weitere Vorträge über interessante Tools anhören zu können:

 

Parallel Realities – Configuration Branches – von Thomas Gelf

Die zweite Hälfte des Tages wurde von Thomas eingeleitet, der uns zeigte, was er ein paar Stunden zuvor veröffentlicht hatte: Ein neues Icinga-Modul, das sich in den Icinga Director integriert und eine Art Git-ähnliche Versionskontrolle für die Konfiguration bietet. Mit verschiedenen Director Branches kann man nun mehrere Zustände der Konfiguration haben, die zur gleichen Zeit erstellt, ausgetauscht und reviewed werden können. Lies hier den vollständigen Blogpost über das Release von Icinga Director Branches.

Meerkat – a new Icinga Dashboarding tool – von Dave Kempe

Als Nächstes folgte der zweite Auftritt von Dave an diesem Tag, dieses Mal mit seinem originellen Vortrag über Meerkat. Dashboarding ist ein wichtiger Bestandteil, um einen Überblick über Ihre Systeme zu erhalten. Das Open-Source-Tool kann bei der Visualisierung von Daten mit vielen praktischen Funktionen, die während der Präsentation vorgestellt wurden, sehr helfen.

Some Icinga stickers on a table

Kaffeepause Nummer zwei signalisierte nun, dass die letzten Vorträge des Tages anstanden. Wir holten uns ein paar Snacks und Merch und gingen dann zurück in den Konferenzraum.

 

Icinga Web 2 + Guacamole: Speeding up your incident resolution – von Cecilia Gripenberg

Wir versetzten uns in die Perspektive eines Service-Desk-Mitarbeitenden und erfuhren, wie man den Leuten, die Icinga benutzen, das Leben mit Guacamole (nicht der auf Avocado basierenden) erleichtern kann. Ceclila zeigte uns, wie die Integration von Remote-Desktop-Tools beim Monitoring helfen kann.

 

Doing Community Surveys for an Open Source Project – von Feu Mourek

Der letzte Vortrag des Tages war etwas weniger technisch als die vorangegangenen. In meinem Vortrag teilte ich Erfahrungen, die wir bei Icinga mit der Durchführung von Umfragen gesammelt haben. Wie man gute Fragen stellt und woran man denken muss, wenn man Daten sammelt.

 

Damit war das Icinga Camp bereits am Ende seines offiziellen Programms angelangt. Während einige von uns die Heimreise antraten, blieben andere noch für ein weiteres leckeres Essen und etwas Gesellschaft in der Stadt.

Alles in allem bin ich sehr froh, Teil des diesjährigen Icinga Camps in Berlin gewesen zu sein, und ich freue mich darauf, Euch alle bei der nächsten Veranstaltung wieder zu treffen!
Vielen Dank an Alle: die sich mit einem Talk eingebracht haben, das Orga Team und natürlich auch Alle, die das Camp besucht haben! Denn ohne Euch wäre das alles nicht möglich gewesen.

Vielen Dank und bis zum nächsten Mal!

Feu Mourek
Feu Mourek
Developer Advocate

Feu verbrachte seine Kindheit im schönen Steigerwald, bevor es sich aufmachte die Welt zu Erkunden. Seit September 2016 unterstützt es Icinga zunächst als Developer und seit 2020 als Developer Advocate, und NETWAYS als Git und GitLab Trainer. Seine Freizeit verbringt es hauptsächlich damit Video-, und Pen and Paper Rollenspiele zu spielen, sich Häuser zu designen (die es sich nie leisten können wird) oder ganz lässig mit seinem Cabrio durch die Gegend zu düsen.

Icinga for Windows Preview: Visualisiert eure Metriken!

Icinga hat in seinem Blogpost mitgeteilt, dass es mit Icinga for Windows v1.10.0 einige Änderungen an den Performance Metriken geben wird. Hier wollen wir einmal grob zusammenfassen, worum es geht und welche Auswirkungen diese Änderungen haben. Für alle Details ist der Original-Post aber sehr zu empfehlen!

Das Label-Problem

Ein grundlegendes Problem in aktuellen Icinga for Windows Versionen ist die Tatsache, dass die Labels für Performance Metriken zwar automatisch vom Icinga PowerShell Framework generiert werden, jedoch eine Filterung auf diese Werte innerhalb von Grafana nicht so einfach möglich ist. Nimmt man sich einmal das Partition-Space Plugin zur Hand, sehen die Metriken wie folgt aus:

‘free_space_partition_c’=10328260000B;;;0;491811100000

‘used_space_partition_c’=481483000000B;;;0;491811100000

Das Label ändert sich dabei, je nachdem ob das Plugin den Free- oder Used-Space der Partitionen überwacht. An sich wäre das nicht schlimm, da Grafana ja das Filtern über mehrere Metriken hinweg erlaubt. Jedoch ergeben sich Probleme bei komplexen Plugins oder wenn verschiedene Plugins eine ähnliche Struktur der Performance Metriken liefern – dann ist nicht mehr abzugrenzen, woher eine Metrik kommt.

Check_Multi Label

Um diesem Problem entgegenzuwirken, gibt es mit Icinga for Windows v1.10.0 im August einen Breaking Change: Alle Performance Metriken werden künftig im check_multi Format geschrieben. Dadurch ergeben sich eine Vielzahl von Vorteilen, da im Vorfeld schon während der Label Generierung ein Index, ein Template sowie ein Metrik Name definiert werden kann. Im Beispiel der oberen Performance Werte, sieht das Ergebnis dann wie folgt aus:

‘c::ifw_partitionspace::used’=480627800000B;;;0;491811100000

‘c::ifw_partitionspace::free’=11178000000B;;;0;491811100000

In diesem Beispiel wäre der Index unsere Partition c, das Template für die Visualisierung ifw_partitionspace und der Name der Metrik used oder free. Sowohl der Index als auch der Metrik Name müssen innerhalb der Plugins mittels der Funktion New-IcingaCheck gesetzt werden. Hierfür gibt es dann neue Argument, -MetricIndex und -MetricName. Das Template, in unserem Beispiel ifw_partitionspace, wird dabei automatisch je nach Name des Check-Plugins gesetzt.

Natürlich ergibt sich hierdurch ein kleiner Mehraufwand für Entwickler während des Bauens der Plugins, jedoch sind die Daten in der Regel sowieso vorhanden und werden in bisherige Labels eingearbeitet, weshalb dieser überschaubar ist.

Metriken Visualisieren

Da es sich hierbei um einen Breaking Change handelt und deshalb vorhandene Grafana Dashboards nicht mehr funktionieren, gibt es eine gute Nachricht: Icinga liefert ab Tag 1 der Icinga for Windows v1.10.0 für alle Plugins Grafana Dashboards aus!

Aufgrund technischer Gründe ist ein Parallelbetrieb von alten und neuen Performance Metriken nicht möglich, daher wurde dies zum Anlass genommen, standardisierte und von Icinga gepflegte Dashboards bereitzustellen. Hierfür wird lediglich InfluxDB 2 sowie Grafana benötigt. Wer bereits eigene Dashboards erstellt hat, kann sich die vorgefertigten Dashboards als Basis hernehmen und seine Ansichten anpassen, während neue User sich direkt aus dem Portfolio bedienen können.

Icinga Web 2 CPU Metriken

Icinga Web 2 Disk Metriken

Grafana Basis-Dashboard für Icinga for Windows

 

Wir freuen uns bereits sehr auf den Release von Icinga for Windows v1.10.0 im August und helfen gerne beim Update, der Implementierung oder Erweiterung. Hierzu könnt Ihr gerne mit uns Kontakt aufnehmen!

Christian Stein
Christian Stein
Lead Account Manager

Christian kommt ursprünglich aus der Personalberatungsbranche, wo er aber schon immer auf den IT Bereich spezialisiert war. Bei NETWAYS arbeitet er als Senior Sales Engineer und berät unsere Kunden in der vertrieblichen Phase rund um das Thema Monitoring. Gemeinsam mit Georg hat er sich Mitte 2012 auch an unserem Hardware-Shop "vergangen".

Icinga DB v1.0 released

Das Icinga Team hat nach langjähriger Entwicklungszeit die Icinga DB veröffentlicht. Damit steht Icinga ein neues Backend zur Verfügung, welches mittelfristig die IDO ablösen wird.

Was ist die Icinga DB?

Die Icinga DB ist nicht eine zentrale Komponente, sondern besteht aus verschiedenen Bausteinen.

Redis kümmert sich um die Speicherung aller volatilen Daten wie z.B. Checkergebnisse und die Datenbank (MySQL/MariaDB oder PostgreSQL) wird für Ablage von historischen und strukturellen Daten genutzt. Diese verschiedenen Datenquellen werden von Icinga Web komplett transparent zur Anzeige gebracht. Somit habt ihr einen schnellen Zugriff auf alle Daten – abgesichert mit komplexen Zugriffsrechten und ausgelegt für eine sehr große Anzahl an Monitoringobjekten.

Warum wurde die Icinga DB entwickelt?

Das Ziel der Entwicklung was es, Icinga zukunftssicher und vor allem für große Umgebungen aufzustellen. Mit der IDO ist Icinga ab einer bestimmten Anzahl von Objekten an Performancegrenzen gestoßen, somit war es nicht ausreichend, einfach nur das Datenmodell der IDO zu optimieren, sondern einen komplett neuen Ansatz zu nutzen. Daraus enstand die Trennung von volatilen und historischen Daten.

Da Icinga aber nicht nur eine einfache Monitoringanwendung ist, sondern für viele Nutzer ein zentraler Baustein für eine Vielzahl von weiteren Komponenten darstellt, konnte Icinga nicht einfach alle alten Zöpfe abschneiden. Das Icinga Team hat daher alle verfügbaren Module von Icinga in den letzten Monaten für die Icinga Db angepasst.

Weitere Informationen zur Icinga DB findet ihr im Blogartikel auf icinga.com. Und wenn wir euch beim Einsatz und Test der Icinga DB unterstützen können, kommt bitte einfach auf uns zu.

Martin Krodel
Martin Krodel
Head of Sales

Der studierte Volljurist leitet bei NETWAYS die Sales Abteilung und berät unsere Kunden bei ihren Monitoring- und Hosting-Projekten. Privat reist er gerne durch die Weltgeschichte und widmet sich seinem ständig wachsenden Fuhrpark an Apple Hardware.