Dashies
Stand: 07/2018
Lesedauer: ca. 6 Minuten
Inhalt:
Funktionsumfang
Anzeige von
Beispiele
Dashboards
Sicherheit
Fazit
Dashies ist die Erste, mit meinem eigenen entwickelten Framework (siehe PHP Framework),
umgesetzte Anwendung.
Ziel der Anwendung ist die einfache Serverüberwachung für Administratoren und Webentwickler. Hierbei muss auf den Servern keinerlei Software installiert, sondern lediglich eine PHP-Datei abgelegt werden.
In der Oberfläche von Dashies kann der Benutzer beliebige Server anlegen, woraufhin jeweils eine eigene PHP-Datei erstellt wird. Diese PHP-Datei muss anschließend auf den zu verwaltenden Server gelegt werden.
Nach Ablage der Datei ist der Server in Dashies integriert und der Benutzer kann eine Vielzahl von Informationen über den Server abrufen. Beliebige Server können so verwaltet und sogar einzelne Informationen auf
Dashboards gruppiert angezeigt werden.
Der Vorteil von Dashies ist das einfache Hinzufügen von beliebigen Servern ohne die Installation einer Software. Der Server muss lediglich über PHP in Version 5.6 oder höher verfügen und das von Dashies generierte Skript auf den Server geladen werden. Hierdurch ist es möglich, sowohl Server mit voller Kontrolle als auch einfache Webserver, ohne umfangreiche Zugriffsmöglichkeiten einzubinden. Anschließend können alle Server zentral an einer Stelle überwacht und die benötigten Informationen in eigenen Dashboards zusammengeführt werden.
Um Informationen abrufen zu können, werden gewisse Funktionalitäten benötigt. Einige dieser Funktionalitäten können direkt über die API des PHP-Servers abgerufen werden. Andere wiederum benötigen einen direkten Zugriff auf Systemfunktionen. Um Systemfunktionen abzufragen, muss das gewählte Betriebssystem unter den unterstützen Systemen aufgeführt sein, damit diese erkannt werden. Standardfunktionen können hingegen auf jedem Betriebssystem mit PHP-Server abgefragt werden. Bisher werden folgende Betriebssysteme unterstützt:
Debian
Ubuntu
Raspbian
Windows 7
Windows 10
Aufgrund der modularen Entwicklung der Anwendung können neue Betriebssysteme, Funktionen und API-Aufrufe innerhalb kürzester Zeit entwickelt und zur Laufzeit der Anwendung hinzugefügt werden.
Die Idee zur Umsetzung reifte im Jahre 2015 und 2016 heran, wobei die Umsetzung im Mai 2016 begann. Die erste Version wurde im September 2016 fertig gestellt, allerdings nie veröffentlicht. Anfang 2017 wurde die Anwendung nochmals aufgegriffen, bis August 2017 auf Version 1.1 erweitert, und steht seitdem im Internet unter dashies.de zur Verfügung. Im Juli 2018 wurde Dashies in Version 1.2 mit neuem Design, openSSL-Unterstützung und diversen Verbesserungen veröffentlicht.
Hinzufügen eigener Server
Jeder Benutzer kann eine beliebige Anzahl an Servern anlegen. Für jeden Server muss ein Name, das Betriebssystem des Servers sowie die URL zur anschließend generierten PHP-Datei angegeben werden.
Erstellen eigener Dashboards
Legen Sie eine beliebige Anzahl von frei konfigurierbaren Dashboards an. Für jedes Dashboard haben Sie die Möglichkeit die anzuzeigenden Informationen für jeden einzelnen Server frei zu wählen.
Überprüfung der Erreichbarkeit aller Server
Sehen Sie auf einen Blick, welche Server erreichbar und welche gerade nicht erreichbar sind.
Überprüfung des Servers
Überprüfen Sie mit einem einzigen Klick, ob Ihr Server erreichbar, der Webserver funktionsfähig und das benötigte Skript zur Verwaltung einsatzbereit sind.
Zeigt die CPU-Auslastung Ihres Servers als Chart an. Unter Linux werden die Mittelwerte der CPU-Auslastung der letzten, der letzten fünf und der letzten fünfzehn Minuten angezeigt. Unter Windows kann lediglich die momentane CPU-Auslastung des ersten Prozessors angezeigt werden.
Zeigt die gesamte Größe und den aktuell belegten Speicherplatz der Festplatte beziehungsweise der Partition, auf dem der Webserver auf Ihrem Server installiert wurde, an.
Die aktuelle Implementierung der RAM-Anzeige zeigt den Verbrauch des aktuell ausgeführten PHP-Skripts, sowie den Verbrauch aller aktuell ausgeführten PHP-Skripte an. In einer späteren Ausbaustufe werden der gesamte sowie der verfügbare Arbeitsspeicher des kompletten Systems angezeigt werden.
Liest alle aktuell gesetzten PHP-Konstanten Ihres Webservers aus und zeigt diese tabellarisch und sortierbar an.
Zeigt Ihren vom Betriebssystem verwendeten Benutzernamen an, mit dem Sie Dateien auf Ihren Server hochladen.
Zeigt Informationen über das Betriebssystem Ihres Servers an, wie beispielsweise das verwendete Betriebssystem und den Namen Ihres PCs im Netzwerk.
Für jeden Server kann eine separate Liste von Hosts hinterlegt werden, die in regelmäßigen Abständen kontaktiert (PING) werden. Für jeden Host wird sowohl die Anzahl der Hops als auch die Laufzeit der Pakete gemessen ausgegeben.
Dashies zeigt in einer Übersicht alle Server und ihre Erreichbarkeit an. [Abbildung 1] Hierfür werden alle Server in einem Abstand von 5 bis 10 Sekunden kontaktiert.
Abbildung 1: Erreichbarkeit
Alle bei Dashies eingebundenen Server können mittels Ping auf Reaktionszeiten überprüft werden. [Abbildung 2]
Abbildung 2: Ping
Für jeden Server bietet Dashies die Möglichkeit Informationen über die Festplattenauslastung abzurufen und anzuzeigen. [Abbildung 3]
Abbildung 3: HDD Speicherverbrauch
Das Abfragen der Arbeitsspeicherauslastung kann abgerufen werden. [Abbildung 4]
Abbildung 4: RAM Auslastung
Dashies zeigt für jeden Server grafisch und mit einer Sekunde Verzögerung die CPU-Auslastung des Servers. [Abbildung 5]
Abbildung 5: CPU Auslastung
Für jeden Server kann eine Überprüfung durchgeführt werden. Hierbei werden mit unterschiedlichen Methoden die Funktionalitäten des Servers überprüft und das Ergebnis jeder Methode angezeigt. [Abbildung 6]
Abbildung 6: Fehleranalyse
Nachdem der Benutzer beliebige Server zur Überwachung hinzugefügt hat, bietet Dashies die Möglichkeit alle Informationen über einen Server in einem Dashboard mit regelmäßiger Aktualisierung anzuzeigen. Ferner bietet Dashies ein Dashboard zur Anzeige der CPU-Auslastung aller hinzugefügten Server, sowie ein Dashboard zur Anzeige aller Informationen aller Server.
Neben den vorgefertigten Dashboards kann der Benutzer neue, eigene Dashboards anlegen, diese benennen und mit beliebigen Informationen konfigurieren. Hierfür steht ihn eine Konfigurationsseite zur Verfügung, auf der er für jedes Dashboard jegliche abrufbaren Informationen jedes Servers angezeigt bekommt und beliebig viele daraus auswählen kann. [Abbildung 7] Nach einer Benennung und Speicherung des eigenen Dashboards wird dies im Menü der Anwendung angezeigt und kann mit einem Klick aufgerufen werden. Neben der Auswahl der anzuzeigenden Werte können Aktualisierungszeiten für einzelne Attribute für eigene Dashboards in einem gewissen Rahmen frei konfiguriert werden.
Abbildung 7: Konfiguration eines eigenen Dashboards
Durch die Verwendung das Frameworks sind in Dashies sehr viele Sicherheitskonzepte automatisch integriert. Beispielsweise implmentiert das Framework ein sicheres Session-Management, schützt vor SQL-Injections und verhindert XSS und CSRF. Benutzereingaben werden automatisch (ohne eine benötigte Implementierung durch den Programmierer) serverseitig validiert. Jeder angemeldete Benutzer erhält nach dem Log-in eine neue Session und das Rechte- und Rollen-System des Frameworks überprüft bei jeder aufzurufenden Funktion die Berechtigungen des Benutzers. Das Benutzerpasswort ist durch einen Salt und mehrstufiges SHA3 (SHA512) gespeichert und zu viele Log-in-Versuche führen zu einer Sperrung des Benutzeraccounts für gewisse Zeiten.
Lediglich die Kommunikation zwischen den Servern musste von Dashies noch abgesichert werden. Hierfür werden alle zwischen den Servern übertragenen Daten durch AES256 verschlüsselt und mit diversen Validierungsverfahren gegen Manipulationen abgesichert. Dennoch sollte die Verbindung zwischen den Servern nicht mittels HTTP, sondern über das sicherere HTTPS-Protokoll durchgeführt werden.
Dashies, als erste Anwendung des eigens entwickelten Frameworks, bietet Administratoren eine Vielzahl von Möglichkeiten. Besonders die einfache Verwendung und die einfache Integration der Server in eine einzige Plattform, ohne die Installation einer Software auf den Servern bietet großes Potential. Aufgrund der Tatsache, dass lediglich eine generierte PHP-Datei auf den Server abgelegt werden muss, können auch einfach Webspaces oder kleineste Computer, wie ein RaspberryPi in die zentrale Überwachung eingebunden werden.