Customer System Control Center: Unterschied zwischen den Versionen
| Zeile 54: | Zeile 54: | ||
==Datenbank/Datenbankschnittstelle== | ==Datenbank/Datenbankschnittstelle== | ||
'''1.''' Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln. | |||
'''2.''' Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden. | |||
==Autoit== | ==Autoit== | ||
Version vom 22. Juli 2016, 06:27 Uhr
Das Customer System Control Center (CSCC) ist ein System dessen primäres Ziel es ist das Bearbeiten von IT-Support-Anfragen und -Aufträgen effektiver zu gestalten. Mit Hilfe des CSCC ist es dem IT-Support-Mitarbeiter möglich noch während des Telefonats einer neuen IT-Support-Anfrage wichtige Systemparameter des Geräts des Kunden zu prüfen ohne sich dafür über Fernzugriff aufschalten zu müssen.
Allgemeiner Aufbau
Die Software besteht aus drei Hauptkomponenten. Dem Autoit-Backend, welches für die Datenakquirierung zuständing ist, dem PHP-Skript, das die Daten entgegen nimmt und die Schnittstelle zur Datenbank darstellt und der Verwaltungs- / Übersichtswebseite.
Dem eigentlichen Autoit-Skript, welches jeweils in der aktuellsten Version auf einem Fileserver hinterlegt ist, ist ein kleineres Autoit-Skript vorangestellt, dessen einzige Aufgaben es sind die neuste Version des Hauptskripts herunterzuladen und auszuführen und eine temporäre Firewallausnahme für das Hauptskript einzurichten. Lediglich das vorangestellte, kleine Starterskript wird beim Kunden / zu überwachenden Gerät in den Autostart-Ordner gelegt. Durch diesen Aufbau wird gewährleistet, dass auf allen Geräten immer die neuste, gleiche Version der Software ausgeführt wird, was Kommunikationsprobleme mit dem Datenbankschnittstellen-Skript minimiert und zugleich das Erweitern und Einspielen von Patches extrem angenehm gestaltet.
Sowohl das Backend-Skript als auch das Starter-Skript laufen komplett headless, also ohne grafische Benutzeroberfläche, auf den Geräten und werden nach dem Start des Geräts ohne weiteres zutun des Anwenders ausgeführt. Im Idealfall bemerkt der Anwender nichts von der Ausführung der Software und wird in keinster Weise in der Nutzung seines Gerätes eingeschränkt.
Interaktion der Komponenten
Das Autoit-Backend sammelt mit Hilfe verschiedener Kommandozeilenbefehle diverse Systeminformationen und speichert diese teilweise lokal in Datei zwischen. Anschließend werden die Dateien via FTP temporär auf den Fileserver geladen und es wird ein POST-request an receiveCustomerData.php gesendet. Die POST-Parameter enthalten Informationen sowie die Dateinamen aller zuvor übertragenen Dateien. receiveCustomerData.php stellt die Verbindung zur Datenbank dar. Es nimmt die über POST-request gesendeten Informationen und schreibt diese, sowie den Inhalt der übermittelten Dateien in die Datenbank. Anschließend löscht das Autoit-Skript nochmal alle zuvor übermittelten Dateien vom FTP-Fileserver, da diese nun, wo ihr Inhalt in der Datenbank gespeichert ist, nichtmehr gebraucht werden. Wenn die Übersichtswebseite aufgerufen wird bezieht diese über PHP alle zuvor gespeicherten Informationen aus der Datenbank und erlaubt das übersichtliche Verwalten und Einsehen dieser.
Website
Die Webseite besitzt drei grundlegende Ansichten/Bereiche. Die Gruppenverwaltung, die Geräteübersicht und die Archivansicht.
Geräteübersicht
In der Geräteübersicht werden alle registrierten Geräte angezeigt die der ausgewählten Gruppe zugewiesen sind. Dazu kann oben im Filter-Dropdown-Menü eine Gruppe ausgewählt werden, nach welcher gefiltert werden soll. Ist keine Gruppe ausgewählt (default), so werden einfach alle registrierten Geräte angezeigt. Die Geräte werden in dieser Ansicht mit Nutzername@Rechnername kenntlich gemacht.
Durch das anklicken eines Buttons in einem Geräteeintrag wird ein Menü zur weiteren Inspektion des gewählten Punktes ausgeklappt, welches sich mit den Pfeiltasten am oberen Rand ausblenden und auch wieder einblenden lässt(s. Abb.XX).
-
Abb.XX: Geräteübersicht
-
Abb.XX: Geräteübersicht ausgeklappt
Wurde in der Geräteübersicht ein Gruppenfilter gewählt werden alle dieser Gruppe zugewiesenen Geräte angezeigt. Diese lassen sich an dieser Stelle durch einen Klick auf das Kreuz in der oberen rechten Ecke des Geräteeintrags (s. Abb. XX) wieder aus der Gruppe entfernen, für den Fall, dass sie fälschlicherweise zugewiesen wurden oder man sieeiner anderen Gruppe zuordnen möchte.
Archivansicht
Die Archivansicht stellt die Sammlung aller eingegangenen Informationen eines Geräts dar. Man gelangt zu ihr, indem man in einem Geräteeintrag der Geräteübersicht auf das Schraubenschlüsselsymbol hinter Archive klickt(s.Abb. XX).
Die Archivansicht für ein Gerät stellt jeden eingegangenen Eintrag für dieses Gerät, nach Datum sortiert, wie einen eigenen Geräteeintrag dar. Über die Filterfunktion am oberen Rand lässt sich hier nach Einträgen aus einer bestimmten Zeitspanne suchen. Wie auch schon bei der Geräteübersicht lässt sich durch das auswählen eines Buttons in einem Archiveintrag ein Inspektionsfenster einblenden, welches sich anschließend durch die Pfeiltasten am oberen Rand aus- und wieder einblenden lässt. Im Gegensatz zu den Geräteeinträgen der Geräteübersicht werden die Einträge in der Archivansicht mit ihrem Timestamp gekennzeichnet.
Gruppenverwaltung
In der Gruppenverwaltung werden alle Geräte aufgelistet, welche noch keiner Gruppe zugeordnet wurden und können dort einfach über ein Dropdown-menü einer bestehenden Gruppe zugeordnet werden. Auf der rechten Seite lassen sich die Gruppen selbst bearbeiten. Mit dem Eingabefeld und dem Button "new" lassen sich einfach neue Gruppen erstellen. Das Klicken auf das "x" hinter einer Gruppe löscht diese und markiert alle mit ihr verbundenen Geräte wieder als nicht zugewiesen.
Das Klicken des Schraubenschlüsselsymbols hinter einer Gruppe bringt eine zusätzliche Eingabemaske hervor, mit deren Hilfe man den Gruppennamen editieren kann (s. Abb. XX).
Das Entfernen einer Zuweisung funktioniert in der Geräteübersicht wenn der entsprechende Filter gewählt ist.
Schritt für Schritt: Neue Daten überwachen/loggen
Um neue Daten in das Program einzupflegen die überall nutzbar sein sollen muss es an mehreren Stellen erweitert werden.
Datenbank/Datenbankschnittstelle
1. Die Tabelle MonitoringData muss um eine Spalte für die neuen Informationen erweitert werden. Beim Typ der Spalte sollte es sich um blob oder für besonders lange/große Dateien um longblob handeln.
2. Die Tabelle MonitoringDataArchive muss um die selbe Spalte (gleicher Typ, gleicher Spaltenname) erweitert werden.
Autoit
1. Zuerst muss eine neue Funktion in der Region "Data Collectors: Files" erstellt werden, welche die gewünschten Daten abfrägt und in einer Datei speichert. Dazu kann man sich an den anderen Funktionen in der Region orientieren. Ein Beispiel einer solchen Funktion wäre:
;get startup Programs and save it in a file Func getStartup() RunWait(@ComSpec & ' /c wmic /OUTPUT:"' & @LocalAppDataDir & '\dataFiles\startup.html" startup list /format:hform',"", @SW_HIDE) trimDataFileHeader(@LocalAppDataDir & '\dataFiles\startup.html') EndFunc
Wichtig ist hierbei, dass die erzeugte Datei im Ordner \dataFiles erstellt wird und dass, sofern wmic zum akquirieren der Daten zum Einsatz kommt, noch die Funktion "trimDataFileHeader" auf die neu erstellte Datei angewendet wird. "trimDataFilesHeader" bringt den von wmic erstellten Header in ein ansehnliches Format und (viel wichtiger) hat den Nebeneffekt, dass sich die erstellte Datei anschließend die benötigte Kodierung (UTF-8 ohne BOM) aufweist.
2. Nun muss ein Aufruf der neu erstellte Funktion in der Funktion "executeAllDataCollectors" ergänzt werden.
3. Anschließend gilt es die Funktion "createPOSTParamString" zu erweitern. Für die neu erstellte Datei muss zuerst eine Zeile mit dem folgenden Aufbau ergänzt werden:
$startup = $macAdd & "_" & "startup.html"
Die neue Variable (hier $startup) enthält den Namen der neu erstellten Datei unter dem sie auf dem Fileserver abgespeichert wurde. Dann muss diese neue variable als zusätzlicher POST-Parameter an den POST-Parameter-String angehängt werden:
$postParams &= '&startup='& $startup
Webseite
Datenbank
Das System arbeitet auf der Datenbank adriensql2 mit vier Tabellen. Die Tabellen Groups und DeviceAssignments beinhalten alle vom Nutzer erstellten Gruppen und die Zuweisung der Geräte zu den Gruppen. Die Tabelle MonitoringData ist die Haupttabelle und beinhaltet alle aktuellen Daten der Geräte. Dabei wird die MacAdresse der Geräte als PrimaryKey für die Tabelle verwendet. Jede Information zu dem Gerät belegt eine eigene Spalte der Tabelle. Die Tabelle MonitoringDataArchive speichert alle jemals eingegangenen Geräteeinträge jedes Geräts. Logischerweise ist der PrimaryKey hier ine fortlaufende ID statt der MacAdresse, da für jedes Gerät mehrere Einträge gespeichert werden sollen.
Webserver: http://s1.agilos-webhosting.de DB: adriensql2 Pw: AgiStatus
Sonstiges
Zusatzfunktionalität in Google Chrome
Die Webseite nutzt ein paar HTML5 Komponenten wie z.B. das details-Tag, welche noch nicht vollständig von allen Browsern unterstützt werden. Obwohl die Webseite primär für Firefox gebaut wurde, werden HTML5-Tags verwendet, welche Firefox noch nicht unterstützt, da es für Firefox-Nutzer keinen direkten Nachteil bedeutet. Wird die Webseite über Chrome aufgerufen werden lediglich manche Bereiche der Einträge der Übersichtlichkeit halber ausklappbar dargestellt. Das erleichtert die Navigation durch die großen Datenmengen geringfügig.