Date: Sun, 19 Mar 2006 14:19:12 GMT From: Patrick PRONIEWSKI <patpro@patpro.net> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/94692: [patch] couriergraph won't record imap login + update to version "1.10stack" Message-ID: <200603191419.k2JEJCEs087794@www.freebsd.org> Resent-Message-ID: <200603191420.k2JEKDM6090065@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 94692 >Category: ports >Synopsis: [patch] couriergraph won't record imap login + update to version "1.10stack" >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Mar 19 14:20:13 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Patrick PRONIEWSKI >Release: 5.4-RELEASE-p10 >Organization: Université Louis Lumière Lyon 2 >Environment: FreeBSD my-host 5.4-RELEASE-p10 FreeBSD 5.4-RELEASE-p10 #0: Fri Jan 27 10:21:28 CET 2006 patpro@my-host:/usr/obj/usr/src/sys/PATPRO-20050829 i386 >Description: couriergraph is a port based on Mailgraph that draw graphs for login stats of POP, POP-SSL, IMAP, IMAP-SSL services. couriergraph as it's provided in FreeBSD Ports can't record imap login due to a typo in the file patch-couriergraph.pl : line 37 reads " + elsif ($prog eq 'imap') {" where it should reads " + elsif ($prog eq 'imapd') {" Other modifications leading to version "1.10stack" are made available through the diffs output below >How-To-Repeat: >Fix: too diffs : --- couriergraph.cgi Mon Oct 24 11:21:38 2005 +++ couriergraph.cgi.new Sun Mar 19 14:54:18 2006 @@ -1,16 +1,16 @@ #!/usr/bin/perl -w # couriergraph -- a postfix statistics rrdtool frontend -# copyright (c) 2002-2004 Ralf Hildebrandt <ralf.hildebrandt@charite.de> +# copyright (c) 2002-2006 Ralf Hildebrandt <ralf.hildebrandt@charite.de> # based upon mailgraph, which is # mailgraph -- a postfix statistics rrdtool frontend -# copyright (c) 2000-2004 David Schweikert <dws@ee.ethz.ch> +# copyright (c) 2000-2006 David Schweikert <dws@ee.ethz.ch> # released under the GNU General Public License use RRDs; use POSIX qw(uname); -my $VERSION = "1.10"; +my $VERSION = "1.10stack"; my $host = (POSIX::uname())[1]; my $scriptname = 'couriergraph.cgi'; @@ -18,9 +18,9 @@ my $points_per_sample = 3; my $ypoints = 160; my $ypoints_err = 96; -my $rrd = '/etc/postfix/couriergraph.rrd'; # path to where the RRD database is -my $rrd_virus = '/etc/postfix/mailgraph_virus.rrd'; # path to where the Virus RRD database is +my $rrd = '/var/db/couriergraph/couriergraph.rrd'; # path to where the RRD database is my $tmp_dir = '/tmp/couriergraph'; # temporary directory where to store the images +my $rrdtool_1_0 = ($RRDs::VERSION < 1.199908); my @graphs = ( { title => 'Day Graphs', seconds => 3600*24, }, @@ -29,15 +29,6 @@ { title => 'Year Graphs', seconds => 3600*24*365, }, ); -my %color = ( - sent => '000099', # rrggbb in hex - received => '009900', - rejected => 'AA0000', - bounced => '000000', - virus => 'DDBB00', - spam => '999999', -); - sub graph($$$) { my $range = shift; @@ -59,80 +50,57 @@ '--color', 'SHADEA#ffffff', '--color', 'SHADEB#ffffff', '--color', 'BACK#ffffff', - - $rrdtool_1_0 ? () : ( - '--slope-mode' + + $RRDs::VERSION < 1.2002 ? () : ( + '--slope-mode' ), "DEF:pop3d_login=$rrd:pop3d_login:AVERAGE", "DEF:mpop3d_login=$rrd:pop3d_login:MAX", - "DEF:imapd_login=$rrd:imapd_login:AVERAGE", - "DEF:mimapd_login=$rrd:imapd_login:MAX", + "DEF:pop3d_ssl_login=$rrd:pop3d_ssl_login:AVERAGE", + "DEF:mpop3d_ssl_login=$rrd:pop3d_ssl_login:MAX", + "CDEF:rpop3d_login=pop3d_login,60,*", "CDEF:vpop3d_login=pop3d_login,UN,0,pop3d_login,IF,$range,*", "CDEF:rmpop3d_login=mpop3d_login,60,*", - "CDEF:rimapd_login=imapd_login,60,*", - "CDEF:vimapd_login=imapd_login,UN,0,imapd_login,IF,$range,*", - "CDEF:rmimapd_login=mimapd_login,60,*", - 'LINE2:rpop3d_login#BB0000:pop3', - 'GPRINT:vpop3d_login:AVERAGE:total\: %.0lf logins', - 'GPRINT:rmpop3d_login:MAX:max\: %.0lf logins/min\l', - 'LINE2:rimapd_login#009900:imap', - 'GPRINT:vimapd_login:AVERAGE:total\: %.0lf logins', - 'GPRINT:rmimapd_login:MAX:max\: %.0lf logins/min\l', - 'HRULE:0#000000', - 'COMMENT:\s', - 'COMMENT:['.$date.']\r', - ); - my $ERR=RRDs::error; - die "ERROR: $ERR\n" if $ERR; -} -sub graph_ssl($$$) -{ - my $range = shift; - my $file = shift; - my $title = shift; - my $step = $range*$points_per_sample/$xpoints; - my $date = localtime(time); - $date =~ s|:|\\:|g unless $rrdtool_1_0; - - my ($graphret,$xs,$ys) = RRDs::graph($file, - '--imgformat', 'PNG', - '--width', $xpoints, - '--height', $ypoints_err, - '--start', "-$range", - '--vertical-label', 'logins/hour', - '--lower-limit', 0, - '--units-exponent', 0, # don't show milli-messages/s - '--lazy', - '--color', 'SHADEA#ffffff', - '--color', 'SHADEB#ffffff', - '--color', 'BACK#ffffff', - - $rrdtool_1_0 ? () : ( - '--slope-mode' - ), + "CDEF:rpop3d_ssl_login=pop3d_ssl_login,60,*", + "CDEF:vpop3d_ssl_login=pop3d_ssl_login,UN,0,pop3d_ssl_login,IF,$range,*", + "CDEF:rmpop3d_ssl_login=mpop3d_ssl_login,60,*", - "DEF:pop3d_ssl_login=$rrd:pop3d_ssl_login:AVERAGE", - "DEF:mpop3d_ssl_login=$rrd:pop3d_ssl_login:MAX", + "DEF:imapd_login=$rrd:imapd_login:AVERAGE", + "DEF:mimapd_login=$rrd:imapd_login:MAX", "DEF:imapd_ssl_login=$rrd:imapd_ssl_login:AVERAGE", "DEF:mimapd_ssl_login=$rrd:imapd_ssl_login:MAX", - "CDEF:rpop3d_ssl_login=pop3d_ssl_login,3600,*", - "CDEF:vpop3d_ssl_login=pop3d_ssl_login,UN,0,pop3d_ssl_login,IF,$range,*", - "CDEF:rmpop3d_ssl_login=mpop3d_ssl_login,3600,*", - "CDEF:rimapd_ssl_login=imapd_ssl_login,3600,*", - "CDEF:rmimapd_ssl_login=mimapd_ssl_login,3600,*", - -"CDEF:vimapd_ssl_login=imapd_ssl_login,UN,0,imapd_ssl_login,IF,$range,*", - 'LINE2:rpop3d_ssl_login#000000:pop3', - 'GPRINT:vpop3d_ssl_login:AVERAGE:total\: %.0lf logins', - 'GPRINT:rmpop3d_ssl_login:MAX:max\: %.0lf logins/hour\l', - 'LINE2:rimapd_ssl_login#000099:imap', - 'GPRINT:vimapd_ssl_login:AVERAGE:total\: %.0lf logins', - 'GPRINT:rmimapd_ssl_login:MAX:max\: %.0lf logins/hour\l', + + "CDEF:rimapd_login=imapd_login,60,*", + "CDEF:vimapd_login=imapd_login,UN,0,imapd_login,IF,$range,*", + "CDEF:rmimapd_login=mimapd_login,60,*", + + "CDEF:rimapd_ssl_login=imapd_ssl_login,60,*", + "CDEF:rmimapd_ssl_login=mimapd_ssl_login,60,*", + "CDEF:vimapd_ssl_login=imapd_ssl_login,UN,0,imapd_ssl_login,IF,$range,*", + + 'LINE:rpop3d_login#DD0000:pop3 ', + 'GPRINT:vpop3d_login:AVERAGE:total\: %8.0lf logins', + 'GPRINT:rmpop3d_login:MAX:max\: %4.0lf logins/min\l', + 'HRULE:0#000000', + + 'LINE:rpop3d_ssl_login#770000:pop3/ssl:STACK', + 'GPRINT:vpop3d_ssl_login:AVERAGE:total\: %8.0lf logins', + 'GPRINT:rmpop3d_ssl_login:MAX:max\: %4.0lf logins/min\l', 'HRULE:0#000000', + 'LINE:rimapd_login#00DD00:imap ', + 'GPRINT:vimapd_login:AVERAGE:total\: %8.0lf logins', + 'GPRINT:rmimapd_login:MAX:max\: %4.0lf logins/min\l', + 'HRULE:0#000000', + + 'LINE:rimapd_ssl_login#007700:imap/ssl:STACK', + 'GPRINT:vimapd_ssl_login:AVERAGE:total\: %8.0lf logins', + 'GPRINT:rmimapd_ssl_login:MAX:max\: %4.0lf logins/min\l', + + 'COMMENT:\s', 'COMMENT:['.$date.']\r', ); my $ERR=RRDs::error; @@ -160,7 +128,6 @@ print "<H2>$graphs[$n]{title}</H2>\n"; print "</div>\n"; print "<P><IMG BORDER=\"0\" SRC=\"$scriptname?${n}-n\" ALT=\"couriergraph\">\n"; - print "<P><IMG BORDER=\"0\" SRC=\"$scriptname?${n}-e\" ALT=\"couriergraph\">\n"; } print <<FOOTER; @@ -209,11 +176,6 @@ graph($graphs[$1]{seconds}, $file, $graphs[$1]{title}); send_image($file); } - elsif($img =~ /^(\d+)-e$/) { - my $file = "$tmp_dir/$uri/couriergraph_$1_err.png"; - graph_ssl($graphs[$1]{seconds}, $file, $graphs[$1]{title}); - send_image($file); - } else { die "ERROR: invalid argument\n"; } @@ -224,3 +186,4 @@ } main; + --------------------- --- couriergraph.pl Tue Dec 7 11:33:12 2004 +++ couriergraph.pl.new Sun Mar 19 14:54:48 2006 @@ -314,11 +314,11 @@ my $daemon_logfile = '/var/log/couriergraph.log'; my $daemon_pidfile = '/var/run/couriergraph.pid'; -my $daemon_rrd_dir = '/var/log'; +my $daemon_rrd_dir = '/var/db/couriergraph'; # global variables my $logfile; -my $rrd = "/etc/postfix/couriergraph.rrd"; +my $rrd = "couriergraph.rrd"; my $year; my $this_minute; my %sum = ( imapd_ssl_login => 0, imapd_login => 0, pop3d_ssl_login => 0, pop3d_login => 0 ); @@ -350,7 +350,7 @@ print " --host=HOST use only entries for HOST (regexp) in syslog\n"; print " -d, --daemon start in the background\n"; print " --daemon-pid=FILE write PID to FILE instead of /var/run/mailgraph.pid\n"; - print " --daemon-rrd=DIR write RRDs to DIR instead of /var/log\n"; + print " --daemon-rrd=DIR write RRDs to DIR instead of /var/db/couriergraph\n"; print " --daemon-log=FILE write verbose-log to FILE instead of /var/log/mailgraph.log\n"; print " --rrd-name=NAME use NAME.rrd for the rrd files\n"; @@ -473,12 +473,12 @@ my $prog = $sl->[2]; my $text = $sl->[4]; - if ($prog eq 'courierpop3login') { + if ($prog eq 'pop3d') { if($text =~ /LOGIN,/) { event($time, 'pop3d_login'); } } - elsif ($prog eq 'imaplogin') { + elsif ($prog eq 'imapd') { if($text =~ /LOGIN,/) { event($time, 'imapd_login'); } >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200603191419.k2JEJCEs087794>