RT has its own internal accounting & tracking system for logging activity, but I was interested in even more granular stuff, like seeing who looked at which tickets. I figured it wouldn’t be that hard to log this in Apache. Well, I was kind of right, in that it wasn’t “hard,” but it took me a long time to find the right place to do it. I did finally get it though.
httpd.conf
In httpd.conf
I created a new LogFormat:
LogFormat "%h %l %{RTUSER}e %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined-rt
So instead of the HTTP-auth user, it puts the RT user in this field. Make sure to update your VirtualHost config to use the combined-rt LogFormat.
/usr/share/rt3/html/autohandler
In /usr/share/rt3/html/autohandler
, right under this section:
# If we've got credentials, let's serve the file up. if ( ( defined $session{'CurrentUser'} ) and ( $session{'CurrentUser'}->Id ) ) {
Add this:
$ENV{'RTUSER'} = $session{'CurrentUser'}->UserObj->EmailAddress;
This populates the RTUSER environment variable with the currently-logged-in user’s email address.
Restart httpd and the RT user’s email address should now appear in access_log
. Note that it will only appear for Perl pages (not gifs/jpgs or other static content, since Perl doesn’t process those):
10.0.0.10 - evan@example.com [08/Aug/2011:17:30:34 -0400] "GET /rt3/index.html HTTP/1.1" 200 46809 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:5.0.1) Gecko/20100101 Firefox/5.0.1" 10.0.0.10 - - [08/Aug/2011:17:30:34 -0400] "GET /rt3/NoAuth/images//css/rolldown-arrow.gif HTTP/1.1" 200 83 "https://help.example.com/rt3/NoAuth/css/3.5-default/main-squished.css" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:5.0.1) Gecko/20100101 Firefox/5.0.1"
One Reply to “Logging RT username in Apache access_log”
Comments are closed.