Professionelles Logging im DAM Umfeld

Graylog Dashboard
Aus aktuellem Anlass habe ich mich vor Kurzem mit dem Thema Logging innerhalb von DAM Systemen auseinandergesetzt. Jedes DAM System schreibt prinzipiell zahlreiche Logfiles. Meist werden für die unterschiedlichen Events, oder Aktionen jeweils eigene Logdateien geschrieben. Diese liegen leider häufig nur als Textdateien im System vor und können, wenn überhaupt, nur von Systemadministratoren mit dementsprechenden Kenntnissen gelesen und analysiert werden.
Mir erschien es daher sinnvoll einmal den Versuch zu wagen ein DAM System an einen Logging Server anzubinden.
Als Logging Server habe ich mich in diesem Fall für Graylog (https://www.graylog.org) entschieden. Graylog ist ein hoch professioneller, weit verbreiteter Logging Server für den eine Open Source und eine Enterprise Version vorhanden ist. Die Tests habe ich erstmal mit der Open Source Lösung durchgeführt.
Als Pendant auf DAM Seite habe ich Cavok (cavok.pro) in der Version 4.1.1 von Peak 14 verwendet. Cavok ist ein DAM System, das im mittleren Preissegment angesiedelt ist und das durch sehr gut definierte Schnittstellen punktet.

Graylog als Open Source Variante ist relativ einfach und schnell installiert. Meine Instanz läuft auf CentOS7. Um Graylog zu installieren wird auf dem CentOS nur Java, MongoDB und ElasticSearch benötigt.
Ist dies erstmal installiert lässt sich auch Graylog in der aktuellsten Version einfach installieren. Die Konfiguration von Graylog benötigt hier schon etwas mehr Aufwand und KnowHow.
Ist die Grundkonfiguration von Graylog abgeschlossen. Geht es nun daran zu planen wie man welche Logfiles an Graylog schicken möchte. Graylog bietet zahlreiche Schnittstellen über die man logs schicken kann. Als Transportformat nutzt Graylog das proprietäre GELF Format, das JSON sehr ähnlich ist. Schnittstellen die Graylog anbietet sind z.B. eine REST API, oder Input über UDP.
Cavok bietet auf der Gegenseite eine sehr gut definierte SOAP Schnittstelle an und diverse Scripting Schnittstellen, über die Daten direkt abgegriffen werden können. Ich habe mich für eine Anbindung via UDP entschieden, die direkt Daten aus der Cavok logging Funktion an Graylog schickt.
Welche Informationen können nun relevant sein, damit man sie überhaupt an einen Logging Server schicken möchte? Hier hat man sowohl bei Cavok, als auch bei Graylog ziemlich freie Auswahl. In Graylog kann man mehrere sogenannte Inputs erstellen, die jeweils einen Event aus Cavok abbilden können.
Zum Beispiel könnte es ein Anwendungsfall sein, dass ich alle Änderungen, die an Metadaten gemacht wurden loggen und darstellen möchte.
Die Ansicht im Graylog könnte dann folgendermaßen sein:
metadata-change
Das Histogramm zeigt eine Übersicht über alle Metadaten Änderungen innerhalb eines gewissen Zeitraums. Im Bereich Messages kann man detailliert einsehen was genau passiert ist.
Die jeweilige Nachricht kann man sich auch durch klick auf den Nachrichten Link im Detail ansehen:
detail
Übrigens ein wichtiger Hinweis hierzu: Was in Graylog geloggt werden soll ist reine Konfigurationssache. So können die Loggings auch jederzeit DSGVO konform gestaltet werden.

Aber natürlich ist Graylog nicht nur nützlich und notwendig, um eine darstellbare und verlässliche Übersicht über Statistiken des DAM Servers zu gewinnen, sondern natürlich können auch Fehlermeldungen explizit geloggt werden. Hier kann Graylog nicht nur ein Logging vollziehen, sondern auch sogenannte Alerts kreieren. Alerts sind Warnungen, die ausgelöst werden, wenn bestimmte Logging Nachrichten an Graylog übermittelt werden.
Nehmen wir beispielsweise das Szenario an, dass jemand ein Bild (Format z.B. JPEG) auf Cavok hochlädt. Dieses Bild ist aber korrupt und daher kann Cavok auch keine Preview generieren.
Cavok generiert in diesem Fall einer Fehlermeldung, welche an Graylog geschickt wird. Graylog erstellt hierzu einen Alert im System:
Bildschirmfoto 2019-06-18 um 16.50.17

Als Benachrichtigung kann entweder von diesem Alert eine Email an verschiedene Empfänger geschickt werden, oder ein Aufruf per http Request erfolgen. In meinem Fall habe ich mich für das Schicken einer Email entschieden:
Bildschirmfoto 2019-06-18 um 16.53.11

Beide Szenarien sind nur Beispiele was man im Zusammenspiel zwischen Logging Server und DAM System machen kann. Graylog ist als Logging Server Instanz ein mächtiges Tool. Sind die Daten einmal dort eingepflegt können sie fast nach Belieben strukturiert werden und natürlich auch wieder exportiert werden. Auf der Gegenseite hat sich Cavok als der perfekte Partner für diesen Test erwiesen, da das Zugreifen auf die Logging Funktion dort sehr einfach zu machen ist.Dies ist eine wichtige Voraussetzung, um überhaupt die Daten so an Graylog schicken zu können, dass Graylog sie verarbeiten kann. Durch das Andocken an diese Schnittstelle im Cavok spart man sich auch das lästige Parsen von Logfiles im System.
Fazit:
Aus meiner Sicht gibt es absolut Sinn auch Logdaten aus einem DAM System an Graylog oder einen anderen Logging Server zu schicken. Die Logs werden zentral abgelegt, können strukturiert werden, können in kritischen Fällen zügig über Fehler informieren und die geschickten Logging Infos können jederzeit weiterverarbeitet werden. Natürlich kann Graylog als zentraler Logging Server auch Logs von anderen Systemen entgegennehmen und verarbeiten.

Fragen?

Nehmen Sie Kontakt mit uns auf, wir helfen ihnen gerne weiter:


Kommentar verfassen