NetzwerkOffice & Business

Checkmk: Shell-Zugriff im Dashboard

So richtet Ihr eine Shell, samt Rechten für OMD, direkt im Checkmk-Dashboard ein.

Checkmk läuft komplett im Browser, aber mal ehrlich, ab und an wird doch der Terminal angeworfen. Klar kann man sich mal eben auf den Server SSHen, aber warum den Browser verlassen? Ein Webserver läuft ja eh, also kann man auch gleich eine Shell per PHP aufsetzen.

PHP Shell und Dashboard

Zunächst zum Dashboard: Über das Dashlet Custom URL lassen sich wunderbar Views oder einzelne Graphen aus dem Monitoring auf Übersichtsseiten übernehmen. Auch externe Webseiten oder -dienste können darüber verwendet werden, allerdings machen das Webseiten-Richtlinien und Sicherheitsmechanismen in Browsern schwierig bis unmöglich. Aber interne URLs vom selben Server sind problemlos möglich.

PHP Shell ist, mit eigenen Worten, „eine Shell verpackt in einem PHP-Skript,“ vor allem zum Warten von Webseiten gedacht. Die Shell bietet nicht denselben Komfort wie ein normales Terminal-Fenster, vor allem, da sie nicht interaktiv ist. Aber selbst sudo-/Admin-Rechte lassen sich nutzen, um beispielsweise per OMD Checkmk-Instanzen zu steuern.

checkmk mit php shell screenshots
PHP Shell als Dashlet.

Wer einen echten Ersatz für eine SSH-Verbindung sucht, könnte sich zum Beispiel shellinabox anschauen, das einen eigenen Server beinhaltet – was die Integration in Checkmk aber eben wieder erschwert.

Im Folgenden seht Ihr die nötigen Schritte, um OMD im Dashboard nutzen zu können: PHP Shell aufsetzen, OMD-Rechte konfigurieren, Dashlet einstellen und ins Dashboard einfügen.

1. PHP Shell aufsetzen

Das Open-Source-Programm ist erfreulich simpel gehalten: Ihr müsst einfach das heruntergeladene Archiv in den Dokumenten-Root-Ordner des Webservers entpacken – unter Debian, Ubuntu und vielen anderen Systemen mit Apache-Webserver ist das standardmäßig /var/www/html. Es genügt also (beispielhaft):

cd /var/www/html
sudo tar -xzf /home/mirco/Downloads/phpshell-2.6.tar.gz

Anschließend könnt Ihr im Browser die Login-Seite aufrufen, also beispielsweise 192.168.178.101/phpshell-2.6/phpshell.php. Wenn diese Seite kommt, ist alles in Ordnung.

checkmk mit php shell screenshots
Die Login-Seite von PHP Shell.

Einloggen könnt Ihr Euch noch nicht, da es kein Standard-Login gibt. Einen User erstellt Ihr über 192.168.178.101/phpshell-2.6/pwhash.php. Der Name sagt es schon: Das Passwort wird über das Skript pwhash.php verschlüsselt und dann als Hash in der Konfigurationsdatei config.php gespeichert, die trotz ihres Namens eine reine INI-Datei ist.

checkmk mit php shell screenshots
Logins anlegen.

Nun könnt Ihr Euch einloggen und Befehle eingeben. Jetzt geht es an die Rechte: Die Shell läuft über den Webserver-User, unter Debian zum Beispiel www-data – und der hat freilich keine Root-Rechte und ist auch kein Sudoer. Benutzer per su zu wechseln ist auch nicht drin, da nicht interaktiv.

Also werden www-data über die sudoers-Datei schlicht Zugriffsrechte ohne Passworteingabe für OMD eingeräumt:

sudo visudo

öffnet die Datei im Standardeditor; fügt dann folgende Zeile hinzu:

www-data ALL=(ALL) NOPASSWD: /usr/bin/omd

Anschließend lassen sich Befehle wie sudo omd status in der PHP-Shell nutzen.

2. Dashboard konfigurieren

Die Konfiguration, hier unter Checkmk 2.0, ist ebenfalls straight forward:

  1. Dashboard aufrufen/erstellen: Customize/Dashboards
  2. Dashlet hinzufügen: Add/Custom URL
  3. URL festlegen: 192.168.178.101/phpshell-2.6/phpshell.php
  4. Eigener Frame: Option Render in iframe aktivieren
checkmk mit php shell screenshots
Das Dashlet „Custom URL“.

Nun habt Ihr Shell-Zugriff im Dashboard – zum Starten eigener Skripte genügt das allemal.

checkmk mit php shell screenshots
PHP Shell als Dashlet – hier mit sudo-Rechten für OMD-Befehle.

Achtung: Was hier außen vor bleibt ist natürlich der Aspekt Sicherheit, nicht in jedem Szenario ist diese Variante einer Shell oder der Rechtevergabe angebracht! Allerdings lässt sich PHP Shell auch via SSH nutzen.

Mehr rund um Checkmk.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Empfohlene Beiträge

Schaltfläche "Zurück zum Anfang"
Tutonaut.de