ich würde gerne die Loginzeiten der Benutzer erfassen. ( Benutzer x hat sich am um angemeldet und um yy Uhr abgemeldet.)
Gibt es hierzu für OTRS schon fertige Lösungen?
Bei meinem selbst programmierten Versuch erfahre ich zwar wann die Benutzer sich angemeldet haben, da die Sessions aber in der Datenbank anscheinend Verschlüsselt sind (md5?)
Kann ich nicht herausfinden welche beendete Session zu welchem Benutzer gehört.
Hierzu gehe ich an das OTRS Logfile unter var/log.
Anmeldung laut Logfile
[Wed Sep 21 16:20:23 2011][Notice][Kernel::System::Auth::LDAP::Auth] User:userx authentication ok .
Abmeldung laut Logfile
[Wed Sep 21 16:20:26 2011][Notice][Kernel::System::AuthSession::DB::RemoveSessionID] Removed SessionID 10f506cc7a2fa3f0e86bf59a7e481cf658.
Und hier das Perl Skript, welches zumindest schon mal die (jeweils "heutigen") Anmeldungen erfasst.
Die Systeminformationen in der Signatur sind noch aktuell.
Code: Select all
use strict;
my $username;
my $time;
my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat,$Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
my @Monatsname = ("undef","Jan","Feb","Mar","Ap","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
open (in,"<Pfad zur Logdatei") || die $!;
while (<in>)
{
if ($_=~ /\[\w+ $Monatsname[($Monat+1)] ($Monatstag \d+:\d+:\d+ \d+)\]/)
{
if ($_=~ /(\w+\S?\w+?) \(.*\) authentication ok/)
{
$_ =~ /\[\w+ [a-zA-Z]+ (\d+ \d+:\d+:\d+ \d+)\]/;
$time = $1;
$_ =~ /(\w+\S?\w+?) \(.*\) authentication ok/;
$username = $1;
print $username." ".$time."\n";
}
}
}
close in;
Grüße