Toolbox: Linux Dash

Test & Kaufberatung | Test

Linux Dash bietet ein simples Armaturenbrett für den eigenen Web-Server. Mit Hilfe von PHP liefert es eine ansprechende Übersicht über Systeminformationen im Browser.

Ausgewachsene Monitoring-Software wie die Open-Source-Projekte Nagios, Icinga und Cacti stellen auch hohe Ansprüche zufrieden. Allerdings ist ihre Einrichtung entsprechend aufwändig. Für den Hausgebrauch, einzelne Server oder kleine Embedded-Systeme wie den Raspberry Pi reicht dagegen ein Tool wie Linux Dash, das für Linux-Server ein simples Server-Armaturenbrett im Browser bereitstellt.

Geht es nur darum, einen einzigen Webserver hin und wieder zu kontrollieren, dann ist eine umfassende Monitoring-Lösung schlicht zu viel des Guten. Diese Programme sind für ganze Netzwerke geschaffen und können mehrere Server im Auge behalten. Wichtige Leistungsdaten wie die System-Load, CPU- und RAM-Auslastung, Uptime, freien Festplattenplatz sowie Swap kann man auf Linux-Servern natürlich auch einfach gelegentlich in der Shell abfragen. Komfortabler ist es aber, wichtige Systeminformationen mit Hilfe einiger PHP-Skripte zusammengefasst auf einer übersichtlichen Webseite zu präsentieren.

Eines der jüngeren PHP-Projekte für diesen Zweck ist Linux Dash, das sich durch eine ansehnliche Aufmachung auszeichnet, die dank ihres responsiven Designs auch auf Smartphones und Tablets im Hochformat noch gut aussieht. Die Elemente der generierten Web-Seite passen sich an das verfügbare Bildschirmformat an – eine gesonderte App ist damit überflüssig, ein HTML5-fähiger Browser genügt. Linux Dash macht intensiven Gebrauch von Javascript und zeigt jede Systeminformation in einem verschiebbaren Widget im Browserfenster an.

Zu den angezeigten Infos gehören System-Load, Uptime, RAM-Auslastung, Swap-Nutzung, Festplattenbelegung samt Mount-Punkten, IP-Adressen der Netzwerkschnittstellen, User-Accounts, angemeldete Benutzer, die zuletzt angemeldeten Benutzer, eine Prozessliste im Stil von top, eine ARP-Tabelle und Ping-Anwortzeiten von Beispielservern. Falls auf dem Web-Server Memcache läuft, kann Linux Dash eine knappe Statistik zur Cache-Auslastung präsentieren.

Linux Dash verursacht nur dann System-Last, wenn es im Browser aufgerufen wird und eignet sich deshalb auch gut für schwachbrüstige Server wie den Raspberry Pi, um dort hin und wieder nach dem Rechten zu sehen, ohne sich extra über SSH anzumelden. Wie das Ganze aussieht, zeigt die Demo-Seite des Entwicklers live. Linux Dash steht unter der sehr freizügigen und kurz gefassten MIT-Lizenz.

Linux Dash hat nur geringe Ansprüche: Auf dem Server verlangt es lediglich einen Webserver wie Apache2 oder Nginx sowie PHP 5.x und das JSON-Modul von PHP, das meist sowieso zusammen mit dem PHP-Paket installiert wird. Die großen Linux-Distributionen liefern das Modul im Paket php5-common (Debian, Ubuntu, Raspbian) beziehungsweise php-common (Cent OS, Fedora, RHEL) oder php5-json (OpenSuse). Ein typischer LAMP-Stack ist also schon mehr als genug. Eine eigene Konfiguration oder spezielle Webserver-Eigenschaften braucht Linux Dash nicht, alle Funktionen sind in der Web-Seite, die das Tool generiert, untergebracht.

Um Linux Dash auf den Webserver zu befördern, holt man sich den Code als ZIP-Archiv von Github und entpackt es in das gewünschte Verzeichnis im Document-Root des Webservers. Alternativ dazu legt der Befehl

git clone https://github.com/afaqurk/linux-dash.git

eine lokale unkomprimierte Kopie des Quellcodes aus dem Git-Repository im aktuellen Verzeichnis im Unterordner „linux-dash“ ab. Sobald Linux Dash im Zielverzeichnis des Webservers liegt, ist das Armaturenbrett einsatzbereit und kann im Browser aufgerufen werden. Die knappe Dokumentation von Linux Dash liefert auch ein Konfigurationsbeispiel für Nginx.

Die Standard-Ansicht zeigt alle 20 Widgets des Linux Dash, die sich per Drag & Drop innerhalb des Browserfensters neu anordnen oder schließen lassen. Das gewählte Layout speichert Linux Dash als Cookie, sodass man das nicht bei jedem Besuch erneut tun muss. Zur Aktualisierung aller oder einzelner Anzeigen in Widgets gibt es Refresh-Buttons, man kann die Seite aber auch einfach neu laden.

Viel Dokumentation gibt es zu Linux Dash nicht, zumal die Bedienung weitgehend selbst erklärend ist. Ein Blick in den Code offenbart die Funktionsweise des Tools: Seine verschiebbaren Widgets, die animierte Aktualisierungen von Leistungsdaten und das Cookie-Management realisiert Linux Dash mittels jQuery (1.7.2) und jQuery UI (1.10.3), die es selbst mitbringt und nicht extern lädt. Die einzelnen Widgets sind modular in den PHP-Code eingebunden und liegen als einzelne PHP-Dateien im Unterverzeichnis „libs/Modules“. Ihre Daten beziehen die Module mal über exec, mal mit einem beherzten shell_execute(), das einen Shell-Befehl ausführt, dessen Ausgabe per PHP weiter verarbeitet wird. Andere Male sieht Linux Dash in der entsprechenden Pseudo-Datei im /proc-Dateisystem nach, etwa bei der Berechnung der Uptime. Der Entwickler wählt hier jeweils den Weg, der auf den meisten Linux-Systemen ohne ausschweifende Sonderbehandlungen funktioniert. Das ist nicht immer schön, aber pragmatisch.

Eine Benutzer-Authentifizierung fehlt in Linux Dash. Liegt es nicht auf auf einem Server im eigenen lokalen Netzwerk, sondern auf auf einem öffentlich erreichbaren Webserver, muss der Zugang daher noch per Passwort oder mit einer IP-Whitelist abgesichert werden. Bei Apache gelingt das am einfachsten mit einer .htaccess-Datei; bei Nginx mit einer auth_basic-Direktive. Und ein zumindest selbst signiertes SSL-Zertifikat sorgt für die verschlüsselte Übertragung der Login-Daten und abgefragten System-Infos.

Da sich Linux Dash auf die Funktionen exec() und shell_exec() von PHP verlässt, dürfen diese in der Konfigurationsdatei php.ini mit der Definition von „disable_functions“ nicht abgeschaltet sein. Falls die Widgets leer bleiben, sollte man zunächst prüfen, ob „disable_functions“ die Einträge exec und shell_exec enthält und damit deaktiviert. Linux Dash zeigt die PHP-Konfiguration über das Menü oben rechts "PHPInfo / INFO_CONFIGURATION". (lmd)

Kommentare

Anzeige