Walkthrough on Postifx monitoring with Cacti
Moderators: Developers, Moderators
hello, it's again me...sorry to bother you again
Well, i attentively read the perl script and i saw that the maillog file is cleanly scan with the perl fonctions tell() and seek() : $MINRES=50s means that the values collected are in the format : "msgs / 50s" instead of "msgs / 60s"?no?
With my cacti's config (polling all 5 minutes) :
-> I think the value of $MINRES must be exactly 5*60 = 300 secondes
-> And to have a format in "mgs/minutes" in the graphs i have to divise all the values by 6?no?
grrr! I can't make head or tail of it
EDIT: i think it's OK
To get a good estimation of "msgs/60s" i wrote :
$MINRES=60 (and the cacti's polling is always 5 minutes)
Thanks
Well, i attentively read the perl script and i saw that the maillog file is cleanly scan with the perl fonctions tell() and seek() : $MINRES=50s means that the values collected are in the format : "msgs / 50s" instead of "msgs / 60s"?no?
With my cacti's config (polling all 5 minutes) :
-> I think the value of $MINRES must be exactly 5*60 = 300 secondes
-> And to have a format in "mgs/minutes" in the graphs i have to divise all the values by 6?no?
grrr! I can't make head or tail of it
EDIT: i think it's OK
To get a good estimation of "msgs/60s" i wrote :
$MINRES=60 (and the cacti's polling is always 5 minutes)
Thanks
Last edited by @ryaz on Sat Jul 15, 2006 5:35 am, edited 2 times in total.
Mathieu, I have made no modification to the original script posted on this thread. For some reason, when I run the script manually, I can then do an snmpwalk to view the statistics. After the MINRESET expires, those statistics are no longer accessible via snmpwalk.Mathieu wrote:You migth have done some modification on the fetch perl script. Could you attach your version of the script to a forum post ?
Mathieu
The problem I can't seem to solve is getting it to work in the snmpd.conf. I use the "pass" directive the way the instructions show, but for some reason everytime I do the snmpwalk to the OID, it doesn't give me any results.
Any ideas?
Hi @riaz,@ryaz wrote:hello, it's again me...sorry to bother you again
Well, i attentively read the perl script and i saw that the maillog file is cleanly scan with the perl fonctions tell() and seek() : $MINRES=50s means that the values collected are in the format : "msgs / 50s" instead of "msgs / 60s"?no?
With my cacti's config (polling all 5 minutes) :
-> I think the value of $MINRES must be exactly 5*60 = 300 secondes
-> And to have a format in "mgs/minutes" in the graphs i have to divise all the values by 6?no?
grrr! I can't make head or tail of it
EDIT: i think it's OK
To get a good estimation of "msgs/60s" i wrote :
$MINRES=60 (and the cacti's polling is always 5 minutes)
Thanks
First sorry for my english, i try to improve it
I do a test. I install a simple postfix on a test environment. I put logs manually in postfix logs.
If you have 1 message sent in the first minute and 1 message sent in the last minute before cacti run the poll you will collecte 2 messages sent. So $MINRES don't occur.
But if you have 1 message sent in the first minute and you call the script (manually for example) you will collect 1 message sent during 50s (if you call the script few times in 50s).
So at the 2nd minutes you will have 0 message sent.
I don't know if you understand. I think it's the explication you can test it and send me an email to confirm this.
regards!
hello thanks for the reply giorgio!Giorgio wrote: Hi @riaz,
First sorry for my english, i try to improve it
I do a test. I install a simple postfix on a test environment. I put logs manually in postfix logs.
If you have 1 message sent in the first minute and 1 message sent in the last minute before cacti run the poll you will collecte 2 messages sent. So $MINRES don't occur.
But if you have 1 message sent in the first minute and you call the script (manually for example) you will collect 1 message sent during 50s (if you call the script few times in 50s).
So at the 2nd minutes you will have 0 message sent.
I don't know if you understand. I think it's the explication you can test it and send me an email to confirm this.
regards!
i don't understand all you say... sorry.
my configuration is ok (for good) :
$MINRES= 298 (nearly 5 minutes like my cacti's polling)
in my graph the scale is simply : msgs / 5 minutes !
now i try to get, in the legend of the cacti's graph, the total of the messages (sent, receive, spam...) near current, average and maximum...i don't really see how to do...
bye
Hello!
In fact, i think i don't really understand the end of the fetch_mail_statistics.pl script. Anyone could help me please?
thanks.
In fact, i think i don't really understand the end of the fetch_mail_statistics.pl script. Anyone could help me please?
thanks.
Code: Select all
# Return archived data.
open( DBFILE, $dbFile ) || die( "Cannot open db file `".$dbFile."'!" );
@data = ();
while( <DBFILE> ) { chomp; push @data, $_; }
$reqMethod = $ARGV[3];
$reqOid = $ARGV[4];
if ( $reqMethod eq "-n" ) {
# SNMP getNext request.
if ( $reqOid eq $baseOid ) {
print $baseOid.".0\ninteger\n".$data[1]."\n";
} elsif ( $reqOid eq $baseOid.".0" ) {
print $baseOid.".1\ninteger\n".$data[2]."\n";
} elsif ( $reqOid eq $baseOid.".1" ) {
print $baseOid.".2\ninteger\n".$data[3]."\n";
} elsif ( $reqOid eq $baseOid.".2" ) {
print $baseOid.".3\ninteger\n".$data[4]."\n";
} elsif ( $reqOid eq $baseOid.".3" ) {
print $baseOid.".4\ninteger\n".$data[5]."\n";
} elsif ( $reqOid eq $baseOid.".4" ) {
print $baseOid.".5\ninteger\n".$data[6]."\n";
} elsif ( $reqOid eq $baseOid.".5" ) {
print $baseOid.".6\ninteger\n".$data[7]."\n";
} elsif ( $reqOid eq $baseOid.".6" ) {
print $baseOid.".7\ninteger\n".$data[8]."\n";
} elsif ( $reqOid eq $baseOid.".7" ) {
print $baseOid.".8\ninteger\n".$data[9]."\n";
} elsif ( $reqOid eq $baseOid.".8" ) {
print $baseOid.".9\ninteger\n".$data[10]."\n";
} elsif ( $reqOid eq $baseOid.".9" ) {
print $baseOid.".10\ninteger\n".$data[11]."\n";
}
} elsif ( $reqMethod eq "-g" ) {
# SNMP get request.
if ( $reqOid eq $baseOid || $reqOid eq $baseOid.".0" ) {
print $baseOid.".0\ninteger\n".$data[1]."\n";
} elsif( $reqOid eq $baseOid.".1" ) {
print $baseOid.".1\ninteger\n".$data[2]."\n";
} elsif( $reqOid eq $baseOid.".2" ) {
print $baseOid.".2\ninteger\n".$data[3]."\n";
} elsif( $reqOid eq $baseOid.".3" ) {
print $baseOid.".3\ninteger\n".$data[4]."\n";
} elsif( $reqOid eq $baseOid.".4" ) {
print $baseOid.".4\ninteger\n".$data[5]."\n";
} elsif( $reqOid eq $baseOid.".5" ) {
print $baseOid.".5\ninteger\n".$data[6]."\n";
} elsif( $reqOid eq $baseOid.".6" ) {
print $baseOid.".6\ninteger\n".$data[7]."\n";
} elsif( $reqOid eq $baseOid.".7" ) {
print $baseOid.".7\ninteger\n".$data[8]."\n";
} elsif( $reqOid eq $baseOid.".8" ) {
print $baseOid.".8\ninteger\n".$data[9]."\n";
} elsif( $reqOid eq $baseOid.".9" ) {
print $baseOid.".9\ninteger\n".$data[10]."\n";
} elsif( $reqOid eq $baseOid.".10" ) {
print $baseOid.".10\ninteger\n".$data[11]."\n";
}
}
has anybody made a SUM function to show the toal received / sent emails in the graph timeperiod? i tried starting from the |sum:auto:current:2:auto| which is used for bandwidth but it doesn't seem to work... i get very high numbers...
Thank you, Luca
EDIT: problem is it takes te value for each second so the total needs to be divided by 300.
Thank you, Luca
EDIT: problem is it takes te value for each second so the total needs to be divided by 300.
Problem getting it to work
Hi, I have been playing around, trying to get the script to work.
snmpwalk -v 2c -c casalogic localhost .1.3.6.1.4.1.2021.255
UCD-SNMP-MIB::ucdavis.255 = No Such Instance currently exists at this OID
I get:
In my snmpd.conf I have:
also, every time I do an snmpwalk, and do a I get one extra running process in form of:
Anybody have any sort of idear, of how to get any further?
The funny thing is that is I do a snmpwalk I get en error:snmpwalk -v 1 -c public <host> .1.3.6.1.4.1.2021.255
snmpwalk -v 2c -c casalogic localhost .1.3.6.1.4.1.2021.255
UCD-SNMP-MIB::ucdavis.255 = No Such Instance currently exists at this OID
Now the funny thing comes to life. If I type:computer01:/usr/local/bin# ./fetch_mail_statistics.pl /var/log/mail.log /var/log/mailstats.db .1.3.6.1.4.1.2021.255 -n .1.3.6.1.4.1.2021.255.1
.1.3.6.1.4.1.2021.255.2
integer
0
Code: Select all
fetch_mail_stat.pl mail.log mailstats.db .1.3.6.1.4.1.2021.255 -n .1.3.6.1.4.1.2021.255.1
Code: Select all
.1.3.6.1.4.1.2021.255.2
integer
0
Code: Select all
pass .1.3.6.1.4.1.2021.255 /var/cacti-mailgraph/fetch_mail_stat.pl /var/cacti-mailgraph/mail.log /var/cacti-mailgraph/mailstats.db .1.3.6.1.4.1.2021.255
Code: Select all
ps aux | grep snmp
Code: Select all
snmp 9197 0.0 0.0 0 0 ? Z 09:36 0:00 [fetch_mail_stat] <defunct>
-bump-
Hello - I have followed this thread, and have not been able to get the darn thing to work properly!
I am mostly new to linux, and am "less than new" to perl, so I am basically banging my head over here!
Can someone help me out?
Here is the issue; my postfix/amavisd-new/spamassassin/clamav is configured and works properly (has been for months). I want to do logging on the box, but my mailstats section is blank on Cacti (other graphs come in just fine - CPU/memory/load/etc).
I think that is has something to do with how amavisd writes the logs, but need some more experienced minds to help me out.
Here is the section of amavisd.conf that handles logging:
Here is my snmpd.conf
(attached is the pl script I use)
please help!!!
if you need anything else posted, please let me know.
thanks!
-edit- someone mentioned earlier in the thread that the perl script ignores "local" messages - how do i know if my amavis is doing things "locally"...?
Hello - I have followed this thread, and have not been able to get the darn thing to work properly!
I am mostly new to linux, and am "less than new" to perl, so I am basically banging my head over here!
Can someone help me out?
Here is the issue; my postfix/amavisd-new/spamassassin/clamav is configured and works properly (has been for months). I want to do logging on the box, but my mailstats section is blank on Cacti (other graphs come in just fine - CPU/memory/load/etc).
I think that is has something to do with how amavisd writes the logs, but need some more experienced minds to help me out.
Here is the section of amavisd.conf that handles logging:
Code: Select all
#
# Section III - Logging
#
# true (e.g. 1) => syslog; false (e.g. 0) => logging to file
$DO_SYSLOG = 1; # (defaults to 0)
$SYSLOG_LEVEL = 'mail.debug'; # (facility.priority, default 'mail.info')
# Log file (if not using syslog)
$LOGFILE = "$MYHOME/amavis.log"; # (defaults to empty, no log)
#NOTE: levels are not strictly observed and are somewhat arbitrary
# 0: startup/exit/failure messages, viruses detected
# 1: args passed from client, some more interesting messages
# 2: virus scanner output, timing
# 3: server, client
# 4: decompose parts
# 5: more debug details
$log_level = 5; # (defaults to 0)
# Customizable template for the most interesting log file entry (e.g. with
# $log_level=0) (take care to properly quote Perl special characters like '\')
# For a list of available macros see README.customize .
# $log_templ = undef; # undef disables by-message level-0 log entries
# $log_recip_templ = undef; # undef disables by-recipient level-0 log entries
# log both infected and noninfected messages (new default):
# (remove the leading '#' and a space in the following lines to activate)
# $log_templ = '
# [? [?%#D|#|Passed #
# [? [?%#V|1] |INFECTED (%V)|#
# [? [?%#F|1] |BANNED (%F)|#
# [? [? %2|1] |SPAM|#
# [? [?%#X|1] |BAD-HEADER|CLEAN]]]]#
# , [? %p ||%p ][?%a||[?%l||LOCAL ]\[%a\] ][?%e||\[%e\] ]<%o> -> [%D|,]#
# [? %q ||, quarantine: %q]#
# [? %Q ||, Queue-ID: %Q]#
# [? %m ||, Message-ID: %m]#
# [? %r ||, Resent-Message-ID: %r]#
# , mail_id: %i#
# , Hits: %c#
# #, size: %z#
# #[? %j ||, Subject: "%j"]#
# #[? %#T ||, Tests: \[[%T|,]]\]#
# , %y ms#
# ]
# [?%#O|#|Blocked #
# [? [?%#V|1] |INFECTED (%V)|#
# [? [?%#F|1] |BANNED (%F)|#
# [? [? %2|1] |SPAM|#
# [? [?%#X|1] |BAD-HEADER|CLEAN]]]]#
# , [? %p ||%p ][?%a||[?%l||LOCAL ]\[%a\] ][?%e||\[%e\] ]<%o> -> [%O|,]#
# [? %q ||, quarantine: %q]#
# [? %Q ||, Queue-ID: %Q]#
# [? %m ||, Message-ID: %m]#
# [? %r ||, Resent-Message-ID: %r]#
# , mail_id: %i#
# , Hits: %c#
# #, size: %z#
# #[? %j ||, Subject: "%j"]#
# #[? %#T ||, Tests: \[[%T|,]]\]#
# , %y ms#
# ]';
# log template compatible with amavisd-new-20030616-p10:
# $log_recip_templ = undef;
# $log_templ = '[? %#V |[? %#F |[?%#D|Not-Delivered|Passed]|BANNED name/type (%F)]|INFECTED (%V)], #
# <%o> -> [<%R>|,][? %q ||, quarantine %q], Message-ID: %m, Hits: %c';
$log_templ = '[?%#D|Not-Delivered|Passed] [? %#V |[? %#F |[? %#X |CLEAN|BAD-HEADER]|BANNED name/type (%F)]|INFECTED (%V)], #
[?%o|(?)|<%o>] -> [<%R>|,][? %i ||, quarantine %i], Message-ID: %m, Hits: %c';
Code: Select all
### Setup security names
com2sec local localhost password
com2sec internalNet 1.1.1.1/128 password
### Map groups to security names
group ROGroup any local
group ROGroup any internalNet
view viewEverything included .1 80
### grant groups access to the view
access ROGroup "" any noauth exact viewEverything none none
pass .1.3.6.1.4.1.2021.255 /usr/local/sbin/fetch_mail_statistics.pl /var/log/mail.log /var/log/mailstats.db .1.3.6.1.4.1.2021.255
please help!!!
if you need anything else posted, please let me know.
thanks!
-edit- someone mentioned earlier in the thread that the perl script ignores "local" messages - how do i know if my amavis is doing things "locally"...?
- Attachments
-
- fetch_mail_statistics.pl
- my current perl script
- (5.8 KiB) Downloaded 1065 times
Re: Problem getting it to work
Hello,idledk wrote:Hi, I have been playing around, trying to get the script to work.
The funny thing is that is I do a snmpwalk I get en error:snmpwalk -v 1 -c public <host> .1.3.6.1.4.1.2021.255
snmpwalk -v 2c -c casalogic localhost .1.3.6.1.4.1.2021.255
UCD-SNMP-MIB::ucdavis.255 = No Such Instance currently exists at this OID
Now the funny thing comes to life. If I type:computer01:/usr/local/bin# ./fetch_mail_statistics.pl /var/log/mail.log /var/log/mailstats.db .1.3.6.1.4.1.2021.255 -n .1.3.6.1.4.1.2021.255.1
.1.3.6.1.4.1.2021.255.2
integer
0I get:Code: Select all
fetch_mail_stat.pl mail.log mailstats.db .1.3.6.1.4.1.2021.255 -n .1.3.6.1.4.1.2021.255.1
In my snmpd.conf I have:Code: Select all
.1.3.6.1.4.1.2021.255.2 integer 0
also, every time I do an snmpwalk, and do aCode: Select all
pass .1.3.6.1.4.1.2021.255 /var/cacti-mailgraph/fetch_mail_stat.pl /var/cacti-mailgraph/mail.log /var/cacti-mailgraph/mailstats.db .1.3.6.1.4.1.2021.255
I get one extra running process in form of:Code: Select all
ps aux | grep snmp
Anybody have any sort of idear, of how to get any further?Code: Select all
snmp 9197 0.0 0.0 0 0 ? Z 09:36 0:00 [fetch_mail_stat] <defunct>
I have the same problem and I've found the solution.
You need to change the rights on the file Fetch_Mail_Statistics.pl
I've used the following command
chmod 777 fetch_mail_statistics.pl
Now it's OK
server:/usr/local/bin # snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.255
UCD-SNMP-MIB::ucdavis.255.0 = INTEGER: 58
UCD-SNMP-MIB::ucdavis.255.1 = INTEGER: 20
UCD-SNMP-MIB::ucdavis.255.2 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.3 = INTEGER: 16
UCD-SNMP-MIB::ucdavis.255.4 = INTEGER: 229
UCD-SNMP-MIB::ucdavis.255.5 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.6 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.7 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.8 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.9 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.10 = INTEGER: 0
Bye
Hi,
i followed the thread an set it all up.
# snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.255
UCD-SNMP-MIB::ucdavis.255.0 = INTEGER: 83
UCD-SNMP-MIB::ucdavis.255.1 = INTEGER: 5
UCD-SNMP-MIB::ucdavis.255.2 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.3 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.4 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.5 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.6 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.7 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.8 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.9 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.10 = INTEGER: 0
put if the poller runs i got
CMDPHP: Host[1] DS[10] WARNING: Result from SNMP not valid. Partial Result
if i use directly fetch_mail_statistics.pl:
# /usr/local/bin/fetch_mail_statistics.pl /var/log/amavis.log /var/log/mailstats.db .1.3.6.1.4.1.2021.255 -n .1.3.6.1.4.1.2021.255.1
.1.3.6.1.4.1.2021.255.2
integer
0
anyone an idea whats wrong ?
TIA
Rufinus
i followed the thread an set it all up.
# snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.255
UCD-SNMP-MIB::ucdavis.255.0 = INTEGER: 83
UCD-SNMP-MIB::ucdavis.255.1 = INTEGER: 5
UCD-SNMP-MIB::ucdavis.255.2 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.3 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.4 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.5 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.6 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.7 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.8 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.9 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.10 = INTEGER: 0
put if the poller runs i got
CMDPHP: Host[1] DS[10] WARNING: Result from SNMP not valid. Partial Result
if i use directly fetch_mail_statistics.pl:
# /usr/local/bin/fetch_mail_statistics.pl /var/log/amavis.log /var/log/mailstats.db .1.3.6.1.4.1.2021.255 -n .1.3.6.1.4.1.2021.255.1
.1.3.6.1.4.1.2021.255.2
integer
0
anyone an idea whats wrong ?
TIA
Rufinus
-
- Posts: 1
- Joined: Sun May 13, 2007 11:26 am
hi all,
sorry to bump, but i have the same problem, does someone resolve it ?
Thanks for your help.
regards
Cyb
sorry to bump, but i have the same problem, does someone resolve it ?
Thanks for your help.
regards
Cyb
rufinus wrote:Hi,
i followed the thread an set it all up.
# snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.255
UCD-SNMP-MIB::ucdavis.255.0 = INTEGER: 83
UCD-SNMP-MIB::ucdavis.255.1 = INTEGER: 5
UCD-SNMP-MIB::ucdavis.255.2 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.3 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.4 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.5 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.6 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.7 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.8 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.9 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.255.10 = INTEGER: 0
put if the poller runs i got
CMDPHP: Host[1] DS[10] WARNING: Result from SNMP not valid. Partial Result
if i use directly fetch_mail_statistics.pl:
# /usr/local/bin/fetch_mail_statistics.pl /var/log/amavis.log /var/log/mailstats.db .1.3.6.1.4.1.2021.255 -n .1.3.6.1.4.1.2021.255.1
.1.3.6.1.4.1.2021.255.2
integer
0
anyone an idea whats wrong ?
TIA
Rufinus
mailstat.db
Hi
check the rigths on the mailstat.db file.
I changed it to 766 and I got the rigth numbers.
bg.
check the rigths on the mailstat.db file.
I changed it to 766 and I got the rigth numbers.
bg.
Who is online
Users browsing this forum: No registered users and 1 guest