System Utilities / RadiusReport
RadiusReport - Radius Log Analysis Tool (Paul Gregg/Projects)
Last updated: 10 July 1998
What is RadiusReport?
RadiusReport is a radius log analysis program written in perl. It will
allow you to produce many, varied, types of reports from one or several
radius log files. See examples here.
Also checkout the Readme from the latest beta.
What type of radius logs will RadiusReport work on?
RadiusReport works on various accounting logs produced by different
Radius accounting servers. Supported ones include:
- Livingson Radius V2.0, V2.01 & V1.16
- Dale Reed's RadiusNT
- Merit Radius
- Ascend Radius
- Novell's BorderManager Authentication Services after its logs have been pre-processed with my BMAS-preparser.pl perl script.
- If you don't see yours listed here then try it anyway, it should work.
- RadiusReport does not work with Microsoft Radius logfiles. Ask Microsoft to fix it.
What is the latest version?
RadiusReport is relatively new and I consider it pre-release, but it appears
to be very stable.
What else do I need on my system to run RadiusReport?
- RadiusReport is written in Perl so
you must have Perl (Version 5) installed on your system.
You can get Perl from: http://www.perl.com/CPAN-local/src/
- *Important*If your Radius accounting server does not log a 'Timestamp =' field then
RadiusReport needs to decode the record date information (the first
line of the record e.g. Tue Jul 3 12:00:30 1997). To do this
RadiusReport needs access to the
POSIX perl module which is available from any
(the POSIX module comes bundled with perl).
I have written a perl script to check POSIX mktime() complience in
your particular perl installation. If you have problems with
RadiusReport figuring out the dates in your logs then run this program
and send me the output along with and example section of your detail
logfile. Script: posixchk.pl
I'm using Windows NT, will it work for me?
Yes, RadiusReport does work on NT given the following:
- A properly installed Perl version 5.
- Your logs contain a field "Timestamp = ??????????" style line.
- NT-Perl doesn't have POSIX so, comment out 2 lines in the code:
Comments are denoted in perl by placing a '#' symbol at the start of
- Line 64: use POSIX;
- Line 880: my $cal = mktime....
Whats different in the versions?
See the Changelog for the changes since the
last published source.
Whats coming later?
- I'm working on a full release 1.0 which aleady has the following
- Active logfile parsing.
- Intelligent parsing of files - no longer needs the POSIX module which
was the bain of all NT users (and some badly installed unix perls).
I wrote the POSIX function I needed in perl and embedded it in the code.
- Using the active logs reports are generated in seconds (rather than
- CGI program to generate reports via the web.
- Currently 30% faster than any previous version of RadiusReport.
- Fully Y2K complient (will work up to 2038).
- Features still to be added:
- Increase RadiusReports Intelligence with logfiles. I plan on making
it such that RadiusReport doesn't actually need to know the names of
Radius Attributes in the detail file (see Templates below)
- Output Templates fully customisable by the end user. Using templates
all radius versions will be supported by default - just modify the
keys in your template and heh presto, working reports.
- Log management controls. scripts to manage, rotate and compress your
detail logfiles (unix only)
- Tidy up code and a few speed enhancements.
- Expect a release date of around mid-August 1998
- Alpha code has been added to 0.3b4 which calculates
the approximate phone bill (telco) charges the user will have.
I have not extensively tested the code, but so far testing has
Approximate, because Radius cannot know how long the modem
establishment phase took and so cannot include that time in
calculating the charges
- Report on specific months - Using a runtime flag you can specify
which month (or months) you want to report on. This is useful when
you have many users who's login would 'roll over' from one month
to the next and if you simply split your radius logs by month then
you will be left with many start records without stop records. Using
the select month(s) allows complete monthly logs per user.
- Interim Log Parsing. Radius Logs for a months worth of logins can
be very large. RadiusReport currently builds hash tables of the
log file(s) in memory - which means RadiusReport can get *extremely*
large. RadiusReport will take approximately 5 times as much memory
as the radius logs it is parsing. The goal of interim log parsing
is to produce disk based indexes, thereby speeding up the reporting
process by causing less swap and CPU overhead in building such large
indexes in memory.