mailgraph icon indicating copy to clipboard operation
mailgraph copied to clipboard

Mail plotting script

  -----------------------------------------------------
  mailgraph - a RRDtool frontend for Postfix Statistics
  by David Schweikert <[email protected]>
  -----------------------------------------------------

mailgraph is a very simple mail statistics RRDtool frontend for Postfix that produces daily, weekly, monthly and yearly graphs of received/sent and bounced/rejected mail (SMTP traffic).

Get it from:

     http://mailgraph.schweikert.ch/
 ===============================

Required Modules

  • rrdtool and it's perl module (RRDs) -> http://oss.oetiker.ch/rrdtool/

  • File::Tail (which requires Time::HiRes) -> get it from CPAN

Note that several Linux distributions will already have these modules as RPMs.

Usage

mailgraph is made of two scripts:

  • mailgraph.pl

    This script does parse syslog and updates the RRD database (mailgraph.rrd) in the current directory.

    It is a deamon and will monitor your log-file for changes. DO NOT RUN IT WITH CRON!

    usage: mailgraph.pl [options]

    -h, --help display this help and exit -v, --verbose be verbose about what you do -V, --version output version information and exit -c, --cat causes the logfile to be only read and not monitored -l, --logfile f monitor logfile f instead of /var/log/syslog -y, --year starting year of the log file (default: current year) --host=HOST use only entries for HOST (regexp) in syslog -d, --daemon start in the background --daemon-pid=FILE write PID to FILE instead of /var/run/mailgraph.pid --daemon-rrd=DIR write RRDs to DIR instead of /var/log --daemon-log=FILE write verbose-log to FILE instead of /var/log/mailgraph.log --ignore-localhost ignore mail to/from localhost (used for virus scanner)\n";

    If -c is not specified, mailgraph will monitor logfile for Postfix log entries in logfile (/var/log/syslog unless -l is specified).

  • mailgraph.cgi

    This is a CGI script that does generate graphics from the RRD database.

    You have probably to change $rrd to point to where the RRD database is stored.

    Note that "Bounced", "Viruses", and "Spam" are stacked one on another in the graph, whereas "Rejected" is a line.

Installation

See the file mailgraph-init for an example init script that you can use to start mailgraph at system boot.

You need to put mailgraph.cgi on somewhere accessible though a web-server, it needs to be executeable and the web-server needs to execute it as a CGI.

License

mailgraph is released under the GPL license. See the file COPYING included in the distribution for details.