Finding a decent software to generate daily qmail statistics is a really tough job this days. Before time I always used eitherqmailalizer or isoqlog.
Presently qmailalizer is completely abondoned piece of software and I cannot force it to work on 64 bit architecture.Isoqlog is another story, itâ€™s supposed to work with qmailrocks, however my qmail installation is based on Billâ€™s Linux Qmail Toaster and for some strange reason itâ€™s generating empty statistics. It could be that isoqlog is not generating statistics because the log filesâ€™s feed to be processed is not enough. Anyways still I cannot figure out the reason why I cannot make work Isoqlog with the Qmail Toaster.
I needed a way to however at least have an overview statistics of what is happening inside qmail. Of course qmailmrtg which is explained how to be installed in my previous post is providing with some overall information, though the information acquired through it is too general.
Iâ€™ve spend some enormous time searching for something that could inform me on various qmail statistics based on the qmail logs, before I could find and tweak the qmail-stats.py report script to become usable with qmailanalog
In the meantime It was necessery for me to investigate into qmailanalog and install it on the Debian system.
Initially I instlaled the qmailanalog from source, latest current source release can be obtained via D.J. Bernsteinâ€™s qmaialanlog download page
You wonâ€™t be able to compile the qmailanalog piece of code in debian until substitute in the source file: error.h the line:
extern int errno;
After the above change your source should succesfully compile.
Right after I compile it I realized there is a debian source package installer called:
So on Debian to install qmailanalog all I had to do was:
debian-server:~# apt-get install qmailanalog-installer
Now as I already have qmailanalog properly installed on Debian I decided to test it with a script called qmail-logs.sh
You can download the qmail-logs.sh script from here
Here I quote what exactly is written in the qmail-logs.sh header in order to provide you with a general idea what the script does.
## Wrapper for qmailanalog scripts. Will analyze qmail multilog
## files for deferrals, failures, overall statistics, or convert
## them to sendmail-style logs.
After executing the script I realized the script is not working properly because of some errors issued by scripts included within the qmailanalog package.
The faced problems and their solution with the qmailanalog: zsenders, zsuccesses, zfailures, zrecipients, zfailures and zrhosts scripts Iâ€™ve reported as a Debian bugs The qmailanalog bug report Iâ€™ve submitted can be seen here
The whole problem with qmailanalog scripts on Debian is that the â€œgnu moreâ€ binary arguments passed during the script operations are not correct and needs to be fixed.
Similar issues and their solution is explained in Qmailrocks Forums threads
After fixing the issues with qmailanalog I tried once again the qmail-logs.sh script, this time some of the functions provided by the script prooved working however some of them werenâ€™t okay still.
Therefore I took some more time searching on the internet and Iâ€™ve found on a mailing list the qmail-stats.py script which worked like a charm with a minor modifications.
In order to have the qmail-stats.py working you need the tai64nfrac binary.You can download the latest current version of tai64nfrac on tai64nfracâ€™s website
Installation of tai64nfrac is pretty straight forward and comes to the following:
debian-server:~# wget http://archives.eyrie.org/software/system/tai64nfrac-1.4.tar.gz
debian-server:~# tar -zxvf tai64nfrac-1.4.tar.gz
debian-server:~# cd tai64nfrac-1.4
debian-esrver:~# make install
After the install you should have the tai64nfrac in /usr/local/bin/tai64nfrac
Now letâ€™s go back to the qmail-stats.py script. Iâ€™ve mirrored the qmail-stats.py script the qmail-stats.py script can be downloaded here
The script reports statistics on Qmail Logs following criterias:
Overall Email Server Statistics
Failure Statistics (Reasons for Failure)
Deferrals Statistics (Reasons for Deferrals)
Top Ten Senders Statistics
Top Ten Recipients Statistics
To make the script working all you have to edit in the script is the LOGFILE_PATH the rest is preconfigured by me already in the version of qmail-stats.py which is provided for download above.
If you choose to compile the qmailanalog from source you might also need to change the CMDS options, which includes the directory locations and commands from qmailanalog.
Now if you want to have the reports generated from qmail-stats.py, you have to setup the qmail-stats.py to be running via the cron daemon.
To do so open your root crontab and put in it:
# report daily qmail statistics05 01 * * * /usr/local/bin/qmail-stats.py | mail -s "Qmail Daily Statistics for $(date)" email@example.com
Now you should have the qmail-stats.py mailed to you every day at 01:05 early in the morning! 🙂