Latest Version: 0.3rc3 2006-05-05
Xmail Log Archiver is exactly what it sounds like - a log archival system for XMail mail servers. XMail is a popular multi-platform mail server.
The tool not only places the expired logs into an
archival directory with the ability to zip them, it can analyze the various types of logs generated via a modular reporting system.
Thus, the postmaster can view statistics such as top HELO domains, top senders and so forth.
Written in PHP, the archival tool can be run on the many platforms that the XMail server has been ported to and can even run from an external machine.
Written in PHP, the archival tool can be run on the many platforms that the XMail server has been ported to and can even run from an external machine.
This project is actve, yet still in it's infancy. More documentation including HowTos and report module construction is forthcoming.
If you would like to help by contributing documentation, proofreading or code, contact Bryn.
Thanks to Rob for his contributions and to the creator of the original picture of the petrified log that became the logo.
For now, here is the output of 'xmlogarch --help':
For now, here is the output of 'xmlogarch --help':
Bash Wrapper Usage: xmlogarch [-a|--allreports] [(-c|--conf) file] [-d|--dots]
[-da|--dotall] [(-dp|--dotsper) count] [(-dpe|--dotsperentry) multiplier]
[(-gp|--genpass) password] (-h|--help) [(-l|--login) login-name]
[-m|--movelogs] [(-mm|--maxmem) memorylimit] [-n|--noreports] [-nl|--nolog]
[(-p|--pass) xmailpassword] [-q|--quiet] [-qs|--quietskip]
[--{reportdirective}] [(-s|--stale) hours] [(-t|--top) number] [-u|--memuse]
[-v|--verbose] [(-xp|--xmailport) number]
Archive, report and/or zip XMail log files. All command line parameters and
more oprions are available inside a config file. This is meant to be run by a
scheduled cron job but may be run manually for testing and debugging. Please
be aware that if you have anything that modifies, moves or removes log files
specified in a configuration file, you must override the settings with command
line options to avoid affecting your log files.
Options:
-a, --allreports Report Directive. Run all available reports.
Individual reoprts may be enabled or disabled by
passing further report directives after passing
this option to customize reporting on the
command line.
-c, --conf Specify a location to load the initial
configuration file from. These settings may be
overridden by options passed at runtime. The
original configuration file is used as default
settings. REQUIRED: file
-d, --dots Prints a character for every few operations. See
-da, -dp and -dpe for more information.
-da, --dotall Prints a character for every option in verbose
mode. See -v, -dp and -dpe for more information.
-dp, --dotsper Specifies the number of operations to count per
character displayed in verbose operations. A
setting of zero (0) will disable dots. See -v,
-da and -dpe for more information. REQUIRED:
count
-dpe, --dotsperentry Specifies a multiplier to -dp for very large
operations such as reading individual log lines.
See -v, -da and -dp for more information.
REQUIRED: multiplier
-gp, --genpass Generate encrypted XMail Server password to store
in a config file for performing Server Status
Reporting. Network characteristics of the
machine the script is currently runing on and
the XMail server settings are used to seed the
encryption, so when either of these change the
encrypted password in config files needs to be
updated. When specifying an XMail server at
runtime, please also provide a password with the
-p option. The script will exit after the
encrypted password is output. For more
information see -p. REQUIRED: password
-h, --help Display help text and exit.
-l, --login Uses provided XMail Server user name for
performing Server Status Reporting. REQUIRED:
login-name
-m, --movelogs Enable movement of stale logs if disabled in
config file.
-mm, --maxmem Specify memory limit for PHP. The default is 32
Megabytes, but large and/or plentiful logs will
require more or PHP exits with an error.
REQUIRED: memorylimit
-n, --noreports Do not process any report modules. This may
prevent archival depending on other passed or
config file options.
-nl, --nolog Do not write information to current
xmlogarch-YYYYMMDDHHHH log file.
-p, --pass Uses provided XMail Server password for performing
Server Status Reporting. REQUIRED: xmailpassword
-q, --quiet Do not print any output to the console. This will
also disable -v. If other options are enabled,
information may still be mailed or written to
xmlogarch-YYYYMMDDHHHH log file.
-qs, --quietskip Do not announce skipped report modules. This
option does not change which reports will be
run. Using a named report directive will also
trigger this option. For more information,
please see the report directives section.
--{reportdirective} See the section about report directives below..
-s, --stale Number of hours old a log must be before it is
archived or reported on. REQUIRED: hours
-t, --top Number to High Score items to display in reports.
A setting of zero (0) will disable High Scores.
Not all reports calculate High Scores. Items
listed in High Scores depend on the Report
Module. See the individual Report Module for
specific details of what will be shown.
REQUIRED: number
-u, --memuse Display memory usage during processing. Memory
usage information is NOT written to the
xmlogarch-YYYYMMDDHHHH log file. This option is
for performance tuning and debugging.
-v, --verbose Verbose output enhances regular output by printing
progress of file operations to the console as a
series of characters. the number of characters
per operation depend on other settings. This
option also enables the -u option and like that
option produces no logged output. Please see -u,
-d -dp and -dpe for more information.
-xp, --xmailport Specifies the administrative port number for the
XMail server. This is used for Server Status
reporting. REQUIRED: number
Report Directives: There are three types of report directives - 'named' ,
'only' and 'no'. 'Only' and 'no' are exactly what they seem. Using a 'no'
report directive will skip the given report and using an 'only' directive will
run only that report. The 'named' report is identical to running an 'only'
report except that skipped reports are not announced (the -qs option). The
format to specify a report directive is to start with the directive, add the
report name and lastly add the word report. For example, the 'Zipped Log
Files' (named 'zip') report can be skipped with the directive '--nozipreport'.
The 'named' directive has no prefix, hence the term 'named'. So, running the
'Zipped Logged Files' report in 'named' mode would simply be '--zipreport'.
The effects of the report directives are stackable as well. For example, you
may specify report directives such as '--smtpreport --zipreport' to only run
the 'SMTP Requests' and 'Zipped Log Files' reports without skipped reports.
Alternate Usage: This script can also be run directly from a shell with the
CLI version of PHP.
PHP CLI Usage: php -f xmlogarch.php -- [-a|--allreports] [(-c|--conf) file]
[-d|--dots] [-da|--dotall] [(-dp|--dotsper) count] [(-dpe|--dotsperentry)
multiplier] [(-gp|--genpass) password] (-h|--help) [(-l|--login) login-name]
[-m|--movelogs] [(-mm|--maxmem) memorylimit] [-n|--noreports] [-nl|--nolog]
[(-p|--pass) xmailpassword] [-q|--quiet] [-qs|--quietskip]
[--{reportdirective}] [(-s|--stale) hours] [(-t|--top) number] [-u|--memuse]
[-v|--verbose] [(-xp|--xmailport) number]