cancel
Showing results for 
Search instead for 
Did you mean: 

Alfresco Log Files erweitern

florian_s
Champ in-the-making
Champ in-the-making
Hallo an alle,

ist es möglich die Standard log4j.properties Datei so zu ändern, um genau zu loggen wer welche datei zu welcher uhrzeit heruntergeladen hat.

Leider habe ich keine Erfahrung mit der Log4j API bzw. weiß ich auch nicht welche klassen man hierfür ansprechen muss.

Wäre super wenn jemand dazu etwas weiß.

Vielen Dank im Voraus

Gruß Flo
6 REPLIES 6

afaust
Legendary Innovator
Legendary Innovator
Hallo,

es wird wohl nicht möglich sein, über eine Einstellung in der log4j.properties ein Logging zu erreichen, bei dem sowohl die gewünschte Information enthalten ist sowie andererseits nicht übermäßig viele Einträge rausgeschrieben werden. Selbst über den Audit-Service wird es wahrscheinlich kaum eine Möglichkeit geben, da ein Download auf Service-Ebene nicht von einem in-place Lesen/Transformieren unterschieden werden kann. Anhand der Tomcat/Apache Access Logs kann man vielleicht was machen, was aber wiederum beschränkt auf HTTP Port 80 wäre und SharePoint, CIFS, NFS und FTP außen vor lässt.

Weitere Probleme, die sich stellen dürften:
- Wie sieht es mit Caching aus? Steht vor Alfresco ggf. ein Proxy Server, der Inhalte cached, sodass Alfresco von einem Download ggf. gar nichts mitbekommen kann?
- Wie sollen "abgebrochene"/"unterbrochene" Downloads gezählt/erkannt werden?
- Wie soll mit abschnittsweisen Downloads umgegangen werden? (z.B. lädt das Adobe 9 Plugin im IE nicht die komplette PDF auf einmal, sondern abschnittsweise mit mehreren Anfragen runter)

Ohne Implementierungseingriffe in Alfresco Bestandteile sehe ich hier wenig Chance, nur durch Konfiguration eine ansatzweise genaue Übersicht über Downloads zu erhalten.

Mit der Konfiguration der Audit Komponente zum Aufzeichnen der getReader()-Aufrufe im ContentService kann man zumindest im 1. Wurf alle lesenden Zugriffe erwischen, wobei dann nur ein Teil dieser Zugriffe echte Downloads wären - wie genau oder ungenau dieser Ansatz wäre, hängt stark vom Nutzerverhalten bzw. von interner Logik (z.B. Actions, Workflows und Policies) ab, welche derartige Aufrufe auslösen könnte ohne den Inhalt tatsächlich dem Nutzer aus zu liefern.

Gruß
Axel

jpfi_4454
Champ in-the-making
Champ in-the-making
Hallo,
mit ein bisschen "probieren & beobachten" müsste es mit dem Audit-Framework zumindest größtenteils funktionieren.
Die Read-Prozesse beim Indexieren (Lucene) und Transformieren von Content laufen in der Regel in einer speziellen ThreadGroup.
Eine logische Frage bleibt aber auch noch offen:
Was ist mit Lesezugriffen auf die Renditions (ehemals Thumnbnails) wie bspw. die Flash-Preview in Share?
VG, Jan

florian_s
Champ in-the-making
Champ in-the-making
Hallo Jan, Hallo Axel,

danke erstmal für eure schnellen Antworten. Mir geht es nur ums Loggen der Downloads. Die Preview-Ansicht spielt keine Rolle. Dabei ist es egal ob der Download abgeborchen wurde oder nicht. Leztendlich kommt es auch nicht darauf an wieviel unnötige Sachen auch noch geloggt werden, Hauptsache irgendwo im Logfile findet man einen Eintrag mit User, Uhrzeit und Datei.
Ich kann mir ehrlich gesagt nicht vorstellen, das dieses Problem noch nicht gelöst wurde.
Gerade bei sensiblen Daten will man doch wissen wer diese runtergeladen hat.

Schon alleine fürs Debugging sollte das doch möglich sein oder ?

Gruß Flo

thomash
Champ in-the-making
Champ in-the-making
Hallo,

Die für den Dateizugriff verantwortlichen Endpunkte z.B. ContentGet Webscript
sowie der verwendete Service ContentService protokollieren nicht per Log4J wer wann auf den Content zugreift.
Das hat mehrere Gründe:
- Log4j wird von uns nicht als abgespecktes Auditing Werkzeug verwendet sondern als Debugging und Monitoringwerkzeug.
- Protokollierung des Nutzerverhaltens ist rechtlich nicht ganz unkritisch (nicht nur in Deutschland). In der Regel scheitert diese Anforderung am Betriebsrat … die technische Umsetzungshürde ist hier nicht ganz unbewusst etwas höher gesetzt um hier nicht zuviel Angriffsfläche aus einer rechtlichen Perspektive zu bieten.

Dennoch ist es technisch möglich, zum einen über das AuditFramework oder einen AOP Advice der den Protokolleintrag schreibt z.B. auf dem ContentGet Webscript.

Viele Grüße
Thomas

florian_s
Champ in-the-making
Champ in-the-making
Hallo,

erstmal danke an Thomas für die weitere Info. Was würdet ihr sagen wie hoch der Aufwand für so eine Implementierung ins Audit System ist (in Manntagen gerechnet)? Falls jemand dazu noch nützliche Hinweise hat immer her damit.

Gruß Flo

thomash
Champ in-the-making
Champ in-the-making
Da tu ich mir schwer das pauschal zu schätzen, ohne genau definierte Anforderungen hinsichtlich Datenerhebung, Auswertung und anschliessender Visualisierung zu kennen. 
Hängt auch sehr stark davon ab wers implementiert und ob derjenige sowas schonmal gemacht hat.
Denke nach einer kleinen prototypenhaften Implementierung kann man da mehr sagen.