Audit Log Service

Über den Audit Log Service werden und können System- bzw. Benutzeraktionen wie z.B. "Benutzer 'xyz' hat eine Datenbankverbindung gelöscht" in einen OpenSearch Index geschrieben. Zur Abfrage der Einträge stellt das BPC einen vorgefertigten Process Monitor zur Verfügung.

Der Audit Log Service bietet folgende Funktionalitäten:

  • OpenSearch wird als Ziel verwendet

  • Neue Logger können ohne großen Aufwand hinzugefügt werden

  • Die Log Levels können für jeden Logger einzeln festgelegt werden

  • Alle Bundles/Module können den Dienst benutzen

  • 3rd Party Entwickler können bei Bedarf ihren eigenen Logger registrieren

  • Im Core sind die wichtigsten Aktionen "ge-audit logged"

  • Kann auch über einen Endpunkt angesprochen werden

Daten eines Audit Logs

Feld

Inhalt

level

DEBUG, INFO, WARNING, ERROR

originator

<Username>, [SYSTEM] oder [UNKNOWN]

action

Schlüsselwort zur Gruppierung

description

Beschreibung der Aktion

old

die alten Daten

new

die neuen Daten

timestamp

der Zeitstempel an dem die Aktion ausgeführt wurde

OpenSearch Logger

Ist per Default aktiviert und schreibt seine Daten in den OpenSearch Index mit dem Alias 'bpc-auditlog'. Als Log Level ist 'INFO' voreingestellt.

Per Default werden keine alten Einträge gelöscht. Dies kann über die beiden Einstellungen in der Konfigurationsdatei [karaf]/etc/de.virtimo.bpc.core.cfg aktiviert werden.

Beispiel: Alle 60 Minuten werden Einträge gelöscht welche älter als 1 Jahr sind
...
de.virtimo.bpc.core.auditlog.OpenSearchAuditLogger.auditlog.cleanupPeriodInMinutes=60
de.virtimo.bpc.core.auditlog.OpenSearchAuditLogger.auditlog.deleteEntriesOlderThan=1 year ago
...

Das Löschen wird nur durchgeführt, wenn die beiden Einstellungen gesetzt sind. Weitere sinnvolle Werte für 'deleteEntriesOlderThan': 14 days ago, 3 weeks ago, 1 month ago, 3 months ago, 6 years ago

Backups/Snapshots werden in der Voreinstellung jeden Tag erstellt (seit dem letzten durchgeführten Backup) und es werden alle Backups die älter als 30 Tage sind gelöscht. Dies kann über den Backup Job core:audit-logger angepasst werden.

Log Level festlegen

Dies wird über die Konfigurationsdatei [karaf]/etc/de.virtimo.bpc.core.cfg gemacht. Hierzu gibt es eine Namenskonvention welche auch bei weiteren Logger angewendet wird: Der vollständige Klassenname wird um den Postfix .auditlog.level erweitert.

Beispiel:

Unser OpenSearch Logger hat den Klassennamen de.virtimo.bpc.core.auditlog.OpenSearchAuditLogger und wird dann z.B. so auf den Log Level DEBUG gesetzt.

...
de.virtimo.bpc.core.auditlog.OpenSearchAuditLogger.auditlog.level=DEBUG
...

Verwendung im Code

Im Core sowie in anderen Bundles können Audit Logs über statische Methoden der Klassen SystemAuditLog sowie UserAuditLog aufgerufen werden.

Die Methoden der SystemAuditLog Klasse werden für vom System getriggerte Aktionen verwenden. Bei der UserAuditLog Klasse um vom Benutzer getriggerte Aktionen.

import de.virtimo.bpc.api.auditlog.SystemAuditLog;
...
SystemAuditLog.info("UserDeleted", "User deleted due to too many login failures");
...
UserAuditLog.debug("<username>", "ProcessUpdated", "Process updated", "old values", "new values");

Endpunkt

Method Endpoint

/cxf/bpc-auditlog/auditlog/log

Description

To create a new audit log entry, send a JSON message with the following structure:

{
    "level": "INFO",
    "originator": "[INUBIT]",
    "action": "TESTACTION",
    "description": "Only a test",
    "oldValues": "5",
    "newValues": "10",
    "externalReference": {
        "workflow": "update_units",
        "engine": "IS8"
    }
}

Hint: 'externalReference' is optional and must be a JSON object when used.

Returns

HTTP Status Code

  • 200 : OK

  • 400 : The transferred data is not valid

  • 401 : Authentication could not be performed

Required Access Rights

The logged in user or API Key must have either the following role or right.

  • Role : AUDIT_LOG_USER

  • Right : AUDIT_LOG_CREATE_ENTRY

Core Audit Logs

Benutzer

level

originator

action

description

old

new

DEBUG

<Username>

UserAuthenticated

Login was successful

-

-

WARNING

<Username>

UserAuthenticationFailed

Login failed

-

-

ERROR

<Username>

UserAuthenticationFailed

Login failed: <Reason>

-

-

DEBUG

<Username>

UserLogout

Logout

-

-

Backups

level

originator

action

description

old

new

INFO

<Username>

BackupCreated

Backup with the snapshot name '<name> created

-

-

INFO

BackupCreated

Backup with the snapshot name '<name>' created

-

-

INFO

<Username>

BackupDeleted

Backup with the snapshot name '<name>' deleted

-

-

INFO

BackupDeleted

Backup with the snapshot name '<name>' deleted

-

-

INFO

<Username>

BackupRestored

Backup with the snapshot name '<name>' restored

-

-

INFO

<Username>

BackupRestored

Backup with the snapshot name '<name>' restored to the index '<name>'

-

-

Modul- und Modulkomponenten-Konfigurationen

level

originator

action

description

old

new

INFO

<Username>

ConfigurationUploaded

Configuration uploaded and imported

-

-

INFO

<Username>

ModuleInstanceCreated

Module instance '<instance name>' (<instance id>) of module '<name>' (<id>) created

-

-

INFO

<Username>

ModuleUpdated

Settings of module '<name>' (<id>) updated: <setting names>

+

+

INFO

<Username>

ModuleInstanceUpdated

Settings of module instance '<instance name>' (<instance id>) of module '<name>' (<id>) updated: <setting names>

+

+

INFO

<Username>

ModuleInstanceDeleted

Module instance '<instance name>' (<instance id>) of module '<name>' (<id>) deleted

-

-

INFO

<Username>

ModuleSettingDeleted

Setting of module '<name>' (<id>) deleted: <setting name>

+

-

INFO

<Username>

ModuleInstanceSettingDeleted

Setting of module instance '<instance name>' (<instance id>) of module '<name>' (<id>) deleted: <setting name>

+

-

Replikation

level

originator

action

description

old

new

INFO

<Username>

ReplicationJobRestart

Restarted the replication job with the id: <id>

Wenn über den Endpunkt /replication/lastupdatetimestamp/{replicationJobId} aufgerufen.

-

-

Deployment

level

originator

action

description

old

new

INFO

<Username>

Deployment

Deployment to target '<deployment system name>' (<deployment system id>) started

-

-

INFO

<Username>

Deployment

Deployment to target '<deployment system name>' (<deployment system id>) done

-

-

ERROR

<Username>

Deployment

Deployment to target '<deployment system name>' (<deployment system id>) failed:<reason>

-

-

INFO

<Username>

BackupCreated

Backup with the snapshot name '<name>' created

-

-

INFO

<Username>

BackupRestored

Backup with the snapshot name '<name>' restored

-

-

INFO

<Username>

Deployment

Deployment import start

-

-

INFO

<Username>

Deployment

Deployment import done

-

-

ERROR

<Username>

Deployment

Deployment import failed: <reason>

-

-

INFO

<Username>

ModuleInstanceDeleted

Module instance '<module instance name>' (<module instance id>) of module '<module name>' (<module id>) deleted

-

-

INFO

<Username>

ModuleSettingDeleted

Setting of module '<module name>' (<module id>) deleted: <setting name>

+

-

INFO

<Username>

ModuleSettingDeleted

Setting of module '<module name>' (<module id>) to delete does not exist: <setting name>

-

-

INFO

<Username>

ModuleInstanceSettingDeleted

Setting of module instance '<module instance name>' (<module instance id>) and module '<module name>' (<module id>) deleted: <setting name>

+

-

INFO

<Username>

ModuleInstanceSettingDeleted

Setting of module instance '<module instance name>' (<module instance id>) and module '<module name>' (<module id>) to delete does not exist: <setting name>

-

-

INFO

<Username>

ModuleUpdated

Settings of module '<module name>' (<module id>) updated: <setting names>

+

+

INFO

<Username>

ModuleInstanceCreated

Module instance '<module instance name>' (<module instance id>) of module '<module name>' (<module id>) created

-

-

INFO

<Username>

ModuleInstanceUpdated

Settings of module instance '<module instance name>' (<module instance id>) of module '<module name>' (<module id>) updated: <setting names>

+

+

Maintenance Mode

level

originator

action

description

old

new

WARNING

MaintenanceModeEnabled

Requested while reaching the file system limit of <limit> MB

-

-

INFO

<Username>

MaintenanceModeEnabled

Requested while performing a deployment

-

-

INFO

MaintenanceModeEnabled

Requested from other BPC server (Active/Active)

-

-

INFO

MaintenanceModeDisabled

Requested from other BPC server (Active/Active)

-

-

INFO

<Username>

MaintenanceModeEnabled

Requested by using the configuration endpoint (e.g. BPC Frontend)

-

-

INFO

<Username>

MaintenanceModeDisabled

Requested by using the configuration endpoint (e.g. BPC Frontend)

-

-

INFO

MaintenanceMode

Maintenance mode configuration setting updated: [karaf]/etc/de.virtimo.bpc.core.cfg

+

+


Keywords: