pixel
Seite wählen

Icinga Web 2 trifft Guacamole

von | Aug 18, 2022 | Icinga

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
Junior Consultant

Saeid hat im September 2019 seine Ausbildung zum Fachinformatiker im Bereich Systemintegration gestartet. 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.
Mehr Beiträge zum Thema Icinga

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...

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...

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...

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...