Einführung / Konfiguration des FirstSpirit-Servers / Zusätzliche Sicherheitsmechanismen / Audit-Logging (Log4j2)
Audit-Logging in FirstSpirit
| Inhaltsverzeichnis |
Um einen einwandfreien und sicheren Betrieb von FirstSpirit-Servern zu gewährleisten, bietet FirstSpirit bei Bedarf Möglichkeiten für ein Audit-Logging. Um dem Missbrauch von Rechten vorzubeugen, können hiermit verdächtige Aktivitäten nachvollzogen und zugeordnet werden.
Geloggte Aktivitäten
Die folgenden Aktivitäten können verfolgt und geloggt werden:
- Projekte anlegen / löschen
- Benutzer anlegen / löschen
- Gruppen anlegen / löschen
- Benutzer einem Projekt hinzufügen / aus Projekt entfernen
- Module installieren / aktualisieren / löschen
- Web-Komponenten hinzufügen / entfernen
- Aufträge installieren / aktualisieren / löschen (global u. projekt-lokal)
- Aktionsvorlagen installieren / aktualisieren / löschen (global u. projekt-lokal)
- Alle Projektänderungen über den ServerManager mit Ausnahme von Font hinzufügen und Repository-Version ändern
- Konfigurationsdateien fs-server.conf und fs-server-aux.conf über das ServerMonitoring ändern
Log-Level
Es existieren drei Log-Level für die Ausgabe: INFO, DEBUG und TRACE.
- INFO: Allgemeine Ausgabe, wer hat wo, welche Änderung vorgenommen. Das „Wer“ ist hierbei definiert durch den Benutzer-Namen, die Benutzer-ID sowie den Session-Kontext.
- DEBUG: Bei diesem Log-Level kommt eine leicht zu erfassende, minimalistisch gehaltene Vergleichsansicht der Änderungen hinzu.
- TRACE: Es erfolgt eine komplette Ausgabe aller geänderten Konfigurationen. Änderungen werden gut sichtbar hervorgehoben.
Audit-Logging aktivieren
Die Audit-Funktionalitäten sind per default zunächst deaktiviert. Sie können in der fs-server.conf durch Setzen des Parameters audit.logging.enabled=true aktiviert werden. Wenn aktiv, wird das Audit-Logging per default in der fs-server.log-Datei persistiert. Es wird empfohlen, das Verhalten des Audit-Logging durch die Log4j-Konfiguration anzupassen, und zumindest die Persistenz der Log-Ausgaben in einer eigenen Datei zu realisieren. Die Konfiguration erfolgt in der Datei fs-logging.xml (siehe Konfiguration Logging).
Rudimentäres Konfigurations-Beispiel
Beispielkonfiguration für einfaches Audit-Logging bis Ebene DEBUG mit Ausgabe in fs-audit.log:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" packages="de.espirit.firstspirit.server.logging">
<Appenders>
<!-- dated logging is used by server monitoring for log file display -->
<File name="audit" fileName="d:/firstspirit/log/fs-audit.log" bufferedIO="true" immediateFlush="true" append="true">
<PatternLayout>
<pattern>%d{DEFAULT} %p %C{10} [%t] %m %n</pattern>
</PatternLayout>
</File>
<FsAppender name="fs" consoleLogging="false" plainLogging="true"
datedLogging="true" maxFileSize="5MB" buffer="8192" flushCycle="10"/>
</Appenders>
<Loggers>
<Logger name="de.espirit.firstspirit.logging.audit" level="DEBUG" additivity="false">
<AppenderRef ref="audit"/>
</Logger>
<Logger name="org.eclipse.jetty" level="WARN" additivity="false">
<AppenderRef ref="fs"/>
</Logger>
<Logger name="org.apache" level="WARN" additivity="false">
<AppenderRef ref="fs"/>
</Logger>
<Logger name="org.apache.log4j.jmx" level="ERROR" additivity="false">
<AppenderRef ref="fs"/>
</Logger>
<Logger name="de.espirit.firstspirit.server.ExecutionManagerImpl" level="INFO" additivity="false">
<AppenderRef ref="fs"/>
</Logger>
<Logger name="httpclient.wire" level="INFO" additivity="false">
<AppenderRef ref="fs"/>
</Logger>
<Logger name="org.apache.commons.httpclient" level="INFO" additivity="false">
<AppenderRef ref="fs"/>
</Logger>
<Logger name="org.apache.http" level="INFO" additivity="false">
<AppenderRef ref="fs"/>
</Logger>
<Logger name="org.apache.http.impl.execchain.RetryExec" level="WARN" additivity="false">
<AppenderRef ref="fs"/>
</Logger>
<Root level="INFO">
<AppenderRef ref="fs"/>
</Root>
</Loggers>
</Configuration>
Beispielhafter Logging-Eintrag
Ein Logging-Eintrag auf INFO-Ebene bei Änderung der Mitglieder einer Projekt-Gruppe sieht beispielsweise wie folgt aus:
INFO 2018-07-10 08:34:50,443 (de.espirit.firstspirit.logging.audit.ProjectDTOLogger)
Benutzername ( id: 5471 ) changed project properties for
{ project : Mithras ; id : 296791 }
172.17.16.206 (fsSession=877290240094464842, fsLogin=FirstSpiritLogin,
session=SystemUser, client=Windows 10 10.0 amd64
(Java(TM) SE Runtime Environment 1.8.0_171-b11))
Änderungen an Konfigurationsdateien
Änderungen an den Konfigurationsdateien fs-server.conf und fs-server-aux.conf, die über das ServerMonitoring (Bereich FirstSpirit / Konfiguration) gespeichert werden, werden protokolliert. Die Einträge schreibt der Logger de.espirit.firstspirit.logging.audit.ServerConfigurationLogger.
- INFO: Benutzer, der die Änderung gespeichert hat (Login-Name und ID), Verbindungsinformationen und Name der geänderten Datei.
- DEBUG: Zusätzlich eine Vergleichsansicht der hinzugefügten (ADDED), geänderten (CHANGED) und entfernten (REMOVED) Parameter mit ihren Werten.
- TRACE: Zusätzlich der vollständige Parameterstand der Datei, alphabetisch nach Parameternamen sortiert.
Werden beide Dateien in einem Speichervorgang geändert, entsteht für jede Datei ein eigener Eintrag. Speichervorgänge, die den Inhalt der Datei nicht verändern, werden nicht protokolliert. Für den Vergleich werden die effektiven Parameterwerte herangezogen: Eine Änderung, die nur Kommentare oder Leerzeichen betrifft, erzeugt zwar einen Eintrag auf Level INFO, aber keine geänderten Parameter in der Vergleichsansicht.
Die Werte von Passwort-Parametern werden nicht protokolliert. Sie werden durch *** ersetzt. Ein geänderter Passwort-Wert erscheint in der Vergleichsansicht als *** (previous value) -> *** (new value).
Beispiel (Level DEBUG):
INFO 2026-09-18 10:15:02,118 (de.espirit.firstspirit.logging.audit.ServerConfigurationLogger) Benutzername ( id: 1234 ) changed server configuration file 'fs-server.conf'
DEBUG 2026-09-18 10:15:02,120 (de.espirit.firstspirit.logging.audit.ServerConfigurationLogger) Minimal diff:
CHANGED:
ServerConfigurationProperties:
_properties: # java.util.List
_name_audit.test.property: # de.espirit.firstspirit.logging.audit.ServerConfigurationProperties$ConfigurationProperty
_value: "one -> two"
![]() |
Nicht protokolliert werden Änderungen, die direkt im Dateisystem an den Konfigurationsdateien vorgenommen werden, sowie Konfigurationsänderungen über die übrigen Konfigurationsbereiche des ServerManagers und des ServerMonitorings. |
Zugriff auf die Log-Dateien per ServerMonitoring
Die durch das Audit-Logging angelegten Log-Dateien können über das ServerMonitoring heruntergeladen werden. Hierzu muss im ServerMonitoring unter dem Punkt FirstSpirit / Konfiguration / System auf „Datei-Download“ geklickt werden (siehe Screenshot). Nun den Ordner log öffnen und die gewünschte Datei auswählen.
![]() |
Um Dateien über den beschriebenen Weg herunterladen zu können, muss sichergestellt sein, dass sie sich im FirstSpirit Log-Verzeichnis befinden. Dies kann durch die Log4J 2-Konfiguration in der Datei fs-logging.xml sichergestellt werden. |


