Ziel unseres Admin Logs ist es, alle Aktionen auf dem Server zu protokollieren. Nur so kann der Admin lückenlos jede Aktion nachvollziehen.
Es wird außerdem möglich sein, Inhalte der Logs nach Ablauf eines gewissen Zeitraums automatisch zu löschen oder zu anonymisieren.
Alle Aktionen auf dem Server werden protokolliert
Damit der Admin nachvollziehen kann, was auf dem Server passiert, müssen alle Aktionen protokolliert werden. Dazu gehören neben Logins auch sämtliche Veränderungen an Dateien oder an Rechten von Dateien, alle gesendeten E-Mails, alle Einstellungen die ein Benutzer macht. Also wirklich ein lückenloses Protokoll.
Wenn der Admin ein Problem auf dem Server auswerten will, muss er auf einen möglichst großen Datenbestand zugreifen können. Wenn in den Protokollen nicht alle Aktionen oder nur bestimmte Aktionen protokolliert werden, macht das die Fehlersuche unnötig schwerer.
Das bedeutet dann aber eine noch größere Menge an Daten in den Protokollen als aktuell.
Speicherung der Daten in Elastic/ Logstash
Durch https://syncwerk.cloud und unsere gehosteten Syncwerk Server konnten wir in den letzten Jahren viel Erfahrung in der Administration größerer Syncwerk Installationen sammeln. Dabei haben wir gemerkt, dass das die interne Datenbank nicht die beste Möglichkeit zum Speichern der Protokolle ist. Sie wird sehr schnell sehr groß.
Die Admin Protokolle werden zum Nadelöhr. Installationen mit sehr vielen Benutzern oder großen Datenmengen mit vielen Veränderungen zwingen die Datenbank regelmäßig in die Knie.
Da wir für unsere Suche sowieso schon Elastic verwenden, haben wir uns dafür entschieden, die Protokolle in einen Elastic / Logstash auszulagern.
Neben der effizienteren Speicherung großer Datenmengen haben wir so auch die Möglichkeit Daten flexibler zu verarbeiten. Ein wichtiger Punkt ist hier insbesondere die Anonymisierung personenbezogener Daten.
Automatische Löschung oder Anonymisierung der Log Daten
Neben der effizienten Speicherung von Daten ist auch die Löschung und Anonymisierung von Daten ein wichtiges Thema. Personenbezogene Daten in den Logs dürfen in der Regel nicht unbegrenzt gespeichert werden. Im Admin Bereich der Webapp lässt sich daher einstellen, das Daten nach einem bestimmten Zeitablauf automatisch gelöscht werden.
Für alle Admins, die die Daten für statistische Zwecke aufheben wollen, wird es auch die Möglichkeit geben, die Daten zu anonymisieren. Ganz wichtig sind hier IP-Adresse, Name und E-Mailadresse. Welche Daten anonymisiert werden sollen, lässt sich über die Webapp einstellen.
So kann jeder Admin selbst entscheiden, ob er lieber den Weg der Löschung oder Anonymisierung gehen möchte. Je nachdem wie die firmeninternen Anforderungen an die Löschung von Daten aussehen – sie lassen sich mit Syncwerk abbilden.
Export und Anzeige von Daten
Standardmäßig können die Protokolle über die WebApp angesehen werden. Es wird aber auch die Möglichkeit geben, die Daten zu exportieren und in anderen Programmen anzuzeigen.
Da wir in den Protokollen eine große Menge an Daten speichern, wird die Anzeige von Daten in unserer Webapp in größeren Installationen keinen Sinn machen. Wir überlegen daher, die visuelle Auswertung der Protokolle als Alternative in Kibana darzustellen. Hier haben wir für große Datenmengen mehr Flexibilität.
Admin Protokolle – Noch in der Entwicklung
Wir sind gerade mitten in der Entwicklung der Admin Protokolle. Alles was wir in diesem Blogpost kommunizieren, ist unser aktueller Plan. Allerdings kann sich in der Umsetzung dieses Plans doch wieder einiges ändern. Dann werden wir diesen Blogpost aktualisieren.