Server im Heimbereich überwachen: Linux Dash und Cockpit

Aus LinuxUser 06/2015

Server im Heimbereich überwachen: Linux Dash und Cockpit

© Sony Sivanandan, 123RF

Lebenszeichen

Linux Dash und Cockpit helfen bei der Überwachung von Servern in kleinem und großem Rahmen. Fedoras Cockpit glänzt nicht nur als Monitoring-Lösung, sondern dient auch zum Verwalten von Servern über das Web.

Immer mehr Computernutzer nehmen ihre Cloud-Daten in die eigenen Hände und betreiben zu Hause im lokalen Netz oder bei einem Hoster im Internet ein oder gleich mehrere Server. Gut eingerichtet und mit der richtigen Linux-Distribution ausgestattet, machen solch selbst gehostete Server kaum Arbeit – allerdings ist ein gelegentlicher Blick auf den Status des Systems Pflicht.

Die Dickschiffe der Monitoring-Branche wie Nagios, Icinga oder Munin erlauben das Überwachen komplexer IT-Infrastrukturen und sind dementsprechend aufwendig einzurichten. Für kleine Heimserver oder die vielen Raspberry-Pi-Server, die seit einiger Zeit das Netz bevölkern, wäre solch eine Lösung zu viel des Guten. Hier eignet sich das kleine, auf PHP basierte Werkzeug Linux Dash [1] besser.

Linux Dash

Linux Dash macht sich PHP zunutze und braucht lediglich einen Webserver – im einfachsten Fall Apache, aber auch Nginx [2] funktioniert. Eine dritte Option wäre die auf Javascript basierende Webanwendung Node.js [3] – dieser Abschnitt behandelt jedoch nur die Installation unter Ubuntu Server mit Apache 2.4. Das Vorgehen auf anderen Systemen unterscheidet sich jedoch nur in wenigen Details, egal, ob Sie einen PC-Server, Raspberry Pi oder einen virtuellen Server im Netz betreiben.

Zunächst gilt es, sicherzustellen, dass auf dem Server die benötigten Komponenten laufen. Mit dem ersten Befehl aus Listing 1 aktualisieren Sie die Paketquellen und spielen danach Apache mitsamt PHP5 und Git ein (Zeile 2). Anders als diverse Anleitungen im Netz glauben machen, benötigt Linux Dash keine MySQL-Datenbank. Anschließend begeben Sie sich in das Document Root des Webservers (/var/www/html, bei Apache 2.2 noch /var/www), aus dem der Webserver standardmäßig Webanwendungen ausliefert, und laden den Quellcode dorthin (Zeile 4).

Listing 1

$ sudo apt-get update
$ sudo apt-get install apache2 php5 php5-json git
$ cd /var/www/html
$ sudo git clone https://github.com/afaqurk/linux-dash.git

Laufen Browser und Webserver auf derselben Maschine, dann erreichen Sie Linux-Dash nach der Installation des Webskripts unter der URL http://localhost/linux-dash. Hängt der Server in Ihrem Heimnetz oder dem Internet, dann ersetzen Sie das localhost durch die IP-Adresse oder den Hostnamen des fraglichen Rechners. Erscheint die Seite trotz korrekter Adressangabe nicht, fehlen PHP eventuell die richtigen Einstellungen (siehe Kasten “Shell-Exec”).

Shell-Exec

Falls Apache den Aufruf von Linux Dash lediglich mit einer Fehlermeldung quittiert, dann kontrollieren Sie die PHP-Einstellungen in der Datei /etc/php5/apache2/php.ini. Öffnen Sie diese mit Root-Rechten in einem beliebigen Editor und stellen Sie sicher, dass die Zeile disable_functions nicht die Funktionen exec und shell_exec ausführt. Nach einem Neustart des Webservers mittels sudo service apache2 restart sollte die Seite funktionieren.

Schotten dicht

Ein erster Blick genügt in der Regel für einen Funktionstest. Lässt sich der Server aus dem Internet erreichen, sollten Sie aus Sicherheitsgründen umgehend den Zugriff auf Linux Dash limitieren (siehe Kasten “Sicherheit”): Da die Anwendung selbst über keine Nutzerverwaltung verfügt, müssen Sie den Webserver mit dieser Aufgabe betreuen.

Sicherheit

Aus Sicherheitsgründen verbesserungswürdig erscheint bei Linux Dash die Verwendung der PHP-Funktion shell_exec(), die auf der Shell einen Befehl ausführt und die Ausgabe als Zeichenkette zurückgibt, die dann Linux Dash wieder per PHP weiterverarbeitet. Verschafft sich ein Eindringling Zugriff auf den Server, kann er dies als Einfallstor für weitere Hacks verwenden, da ihm die Funktion Ausführungsrechte für eingeschmuggelten Code gibt. Achten Sie deshalb immer darauf, stets die neueste PHP-Version zu verwenden.

Bearbeiten Sie dazu je nach Distribution und Apache-Version mit Root-Rechten die default.conf beziehungsweise 000-default.conf in /etc/apache2/sites-available/ und fügen Sie vor dem abschließenden </VirtualHost> am Ende der Datei mit einem Editor den Inhalt aus Listing 2 ein. Passen Sie dabei in der Directory-Zeile den Pfad zu Ihrer Installation der Linux Dash an.

Listing 2

<Directory <i class="replaceable">/var/www/html/linux-dash>
  Options FollowSymLinks
  AllowOverride All
  Order allow,deny
  allow from all
</Directory>

Anschließend legen Sie im Linux-Dash-Verzeichnis auf dem Webserver (/var/www/html/linux-dash) die Datei .htaccess mit dem Inhalt aus Listing 3 an. Zu guter Letzt erzeugen Sie im selben Verzeichnis die Passwort-Datei .htpasswd (Listing 4, Zeile 1) und starten Apache einmal durch (Zeile 2). Beim nächsten Aufruf von Linux Dash im Browser müsste die Anwendung dann die Login-Daten abfragen.

Listing 3

AuthType Basic
AuthName "Linux Dash"
AuthUserFile .htpasswd
Require valid-user

Listing 4

$ sudo htpasswd -c .htpasswd User
$ sudo service apache2 restart

Linux Dash dient nun der Überwachung von vitalen Lebenszeichen Ihres Servers. Das Menü am Kopf der Seite unterteilt diese in die Kategorien System Status, Basic Info, Network, Accounts und Apps. Unter System Status sehen Sie auf einen Blick die Auslastung von CPU und RAM (Abbildung 1) sowie die Partitionierung der Festplatten. Basic Info zeigt Angaben zum verwendeten Betriebssystem, technische Daten zur CPU, die genaue Speicherbelegung sowie geplante Cron-Jobs (Abbildung 2).

Abbildung 1: Der <code srcset=

System Status von Linux Dash verschafft Ihnen einen Überblick über den Rechner.” width=”300″ height=”241″ /> Abbildung 1: Der System Status von Linux Dash verschafft Ihnen einen Überblick über den Rechner.

Abbildung 2: <code srcset=

Basic Info vertieft die angezeigten Informationen mit zusätzlichen Details zum System.” width=”300″ height=”241″ /> Abbildung 2: Basic Info vertieft die angezeigten Informationen mit zusätzlichen Details zum System.

Der Link Network gibt Aufschluss über Netzwerk-Devices, bestehende Verbindungen, Ping-Zeiten, Bandbreite und Internet-Geschwindigkeit. Unter Accounts listet Linux Dash die auf dem System angemeldeten Nutzer mit deren letzten Anmeldezeiten sowie die Systemkonten auf. Apps schließlich zeigt einige gängige Anwendungen, deren Installationsstatus sowie den Ort im Verzeichnisbaum, in dem die Binärdatei dazu liegt.

Weitere Karten zeigen Inhalte erst nach der Installation zusätzlicher Programme oder Dienste an. Für die NoSQL-Datenbank Redis oder den Memcache-Daemon gibt es bereits entsprechende Links. Die Anzeigen der einzelnen Karten lassen sich, wo sinnvoll, alle einzeln aktualisieren. Auf einigen Karten finden Sie oberhalb der Anzeige ein Suchfeld, um die angezeigten Informationen zu filtern.

Offiziell getestet und unterstützt wird der Einsatz von Linux Dash unter Arch, Debian (ab Version 6), Ubuntu (ab 11.04), Linux Mint (ab Version 16) und CentOS (ab Version 5). Es spricht aber nichts dagegen, die Dash auch unter anderen Linux-Distributionen einzusetzen. In Zukunft sieht der Plan für Linux Dash 2.0 neben einer saubereren Aufteilung der Codeteile auch die Portierung nach Python vor.

Cockpit

Den zweiten Kandidaten dieser Umschau von Server-Tools für Heimanwender stellt Fedora in Form der Cockpit Management Console [4] bereit. Cockpit erlaubt mehr als nur reines Monitoring und lässt sich vom Umfang her eher mit Webmin [5] vergleichen. Red Hat stellte das Webfrontend offiziell in Fedora 21 vor, allerdings in der dabei erstmals separat erhältlichen Server-Variante.

In der Server-Edition, die von Haus aus installiert ist, müssen Sie Cockpit für Fedora-Workstation manuell nachziehen; ein simples sudo yum install cockpit beziehungsweise sudo dnf install cockpit ab Fedora 22 erledigt das. Bei dieser Gelegenheit spielt die Paketverwaltung auch die Container-Verwaltung Docker ein. Nach der Installation müssen Sie Cockpit noch mithilfe der Befehle aus Listing 5 mit Systemd bekannt machen.

Listing 5

$ sudo systemctl enable cockpit.socket
$ sudo systemctl start cockpit

Bei Fedora 21 war es in der Workstation-Variante noch notwendig, die Firewall für Cockpit zu öffnen und die Sicherheitserweiterung SELinux abzuschalten – beides entfällt bei Fedora 22. Für die Anmeldung in Cockpit benötigen Sie allerdings nach wie vor ein richtiges Root-Passwort. Sollten Sie bisher darauf verzichtet haben, dann holen Sie das mit sudo passwd nach.

Anschließend erreichen Sie die Hauptansicht von Cockpit (Abbildung 3) lokal unter der URL http://localhost:9090 oder auf einem entfernten Rechner über http://IP:9090. Als Zugangsdaten geben Sie für den Anwender root und als Passwort das zuvor vergebene Root-Passwort ein.

Abbildung 3: Cockpit stellt wie Linux Dash den Verlauf der wichtigsten Systeminformationen als Graph dar.

Abbildung 3: Cockpit stellt wie Linux Dash den Verlauf der wichtigsten Systeminformationen als Graph dar.

Chef im Cockpit

Das Webinterface von Cockpit gliedert sich in mehrere Teile. In der links angeordneten Seitenleiste finden Sie Werkzeuge zum Verwalten und Überwachen des Systems, die sich ähnlich wie bei Linux Dash in die sechs Bereiche System, Services, Container, Journal, Networking und Storage aufteilen. Unterhalb davon findet sich noch die Administration des Panels selbst sowie eine Zugriffsmöglichkeit auf ein Terminal.

Im Reiter System erscheinen die wichtigsten Systeminformationen wie CPU- und Speicherauslastung, Festplattendurchsatz und Netzwerkverkehr als fortlaufend aktualisierte Graphen. Hier binden Sie auch weitere Server ein oder starten das System neu beziehungsweise schalten es gleich ganz ab. Services zeigt die Dienste und den derzeitigen Zustand an, Container erlaubt die Überwachung von Docker-Containern.

Unter Journal verfolgen Sie die von Systemd und Journald erstellten Logs. Networking stellt Daten zum ein- und ausgehenden Netzwerkverkehr dar, filtert netzwerkspezifische Informationen aus dem Journal (Abbildung 4) und erlaubt das Anlegen einer Netzwerkbrücke oder eines VLAN. Der Reiter Storage zeigt die Belegung der eingebundenen Festplatten und hilft beim Anlegen eines RAID-Verbunds oder beim Zusammenfassen von mehreren Partitionen zu einer Logical Volume Group (VG).

Abbildung 4: Im Gegensatz zu Linux Dash zeigt Cockpit jedoch auch Informationen aus den Logs an.

Abbildung 4: Im Gegensatz zu Linux Dash zeigt Cockpit jedoch auch Informationen aus den Logs an.

Fazit

Am noch jungen Linux Dash arbeitet der Entwickler noch intensiv und fügt sukzessive weitere Karten hinzu. Ein großer Vorteil der Webanwendung liegt in deren Design, das sich an das Anzeigegerät anpasst. Die Webseite der Dash kommt daher bei der Ausgabe auch mit den beschränkten Platzverhältnissen auf Smartphone- oder Tablet-Webbrowsern zurecht.

An Cockpit sollten sich Server-Anfänger eher langsam annähern: Es beherrscht dieselben Monitoring-Funktionen wie Linux Dash, jedoch lassen sich mit dem Werkzeug auch tiefergehende Eingriffe in das System vornehmen. Möchten Sie diese Funktionen in der Weboberfläche nutzen, sollten Sie sie in jedem Fall vorher auf einem Testsystem ausprobieren – anderenfalls laufen Sie Gefahr, ein Produktivsystem unbrauchbar zu machen. 

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 06/2015 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben