Differences

This shows you the differences between two versions of the page.

Link to this comparison view

icinga-nagios:nullmailer-mailq-check [2012/02/17 10:55] (current)
wadmin created
Line 1: Line 1:
 +====== Check the mailq of nullmailer in Icinga/​Nagios ======
 +
 +I found the original (non-functional) version of this patch on sourceforge.net. After messing about with it for a bit it works fine now and if you need it here it is.
 +
 +check_mailq.diff
 +<​file>​
 +--- check_mailq 2005-05-08 17:​15:​26.000000000 +0200
 ++++ check_mailq 2006-06-22 16:​29:​57.000000000 +0200
 +@@ -378,7 +378,7 @@
 +                 # ​       }
 +                 #}
 +         }
 +-} # end of ($mailq eq "​postfixl"​)
 ++} # end of ($mailq eq "​postfix"​)
 + elsif ( $mailq eq "​qmail"​ ) {
 + 
 +  # open qmail-qstat ​
 +@@ -502,6 +502,43 @@
 +  }
 + } # end of ($mailq eq "​exim"​)
 + 
 ++elsif ( $mailq eq "​nullmailer"​ ) {
 ++ ## open mailq 
 ++ if ( defined $utils::​PATH_TO_MAILQ && -x $utils::​PATH_TO_MAILQ ) {
 ++ if (! open (MAILQ, "​$utils::​PATH_TO_MAILQ | " ) ) {
 ++ print "​ERROR:​ could not open $utils::​PATH_TO_MAILQ \n";
 ++ exit $ERRORS{'​UNKNOWN'​};​
 ++ }
 ++ }elsif( defined $utils::​PATH_TO_MAILQ){
 ++ unless (-x $utils::​PATH_TO_MAILQ) {
 ++ print "​ERROR:​ $utils::​PATH_TO_MAILQ is not executable by (uid $>:​gid($)))\n";​
 ++ exit $ERRORS{'​UNKNOWN'​};​
 ++ }
 ++ } else {
 ++ print "​ERROR:​ \$utils::​PATH_TO_MAILQ is not defined\n";​
 ++ exit $ERRORS{'​UNKNOWN'​};​
 ++ }
 ++
 ++ while (<​MAILQ>​) {
 ++     #2006-06-22 16:​00:​00 ​ 282 bytes
 ++
 ++     if (/​^[1-9][0-9]{3}-[01][0-9]-[0-3][0-9]\s[0-2][0-9]:​[0-5][0-9]:​[0-5][0-9]\s+[0-9]+\sbytes/​) { 
 ++ $msg_q++ ;
 ++     }
 ++ }
 ++ close(MAILQ) ;
 ++ if ($msg_q < $opt_w) {
 ++ $msg = "OK: mailq ($msg_q) is below threshold ($opt_w/​$opt_c)";​
 ++ $state = $ERRORS{'​OK'​};​
 ++ }elsif ($msg_q >= $opt_w ​ && $msg_q < $opt_c) {
 ++ $msg = "​WARNING:​ mailq is $msg_q (threshold w = $opt_w)";​
 ++ $state = $ERRORS{'​WARNING'​};​
 ++ }else {
 ++ $msg = "​CRITICAL:​ mailq is $msg_q (threshold c = $opt_c)";​
 ++ $state = $ERRORS{'​CRITICAL'​};​
 ++ }
 ++} # end of ($mailq eq "​nullmailer"​)
 ++
 + # Perfdata support
 + print "​$msg|unsent=$msg_q;​$opt_w;​$opt_c;​0\n";​
 + exit $state;
 +@@ -561,7 +598,7 @@
 +  }
 + 
 +  if (defined $opt_M) {
 +- if ($opt_M =~ /​^(sendmail|qmail|postfix|exim)$/​) {
 ++ if ($opt_M =~ /​^(sendmail|qmail|postfix|exim|nullmailer)$/​) {
 + ​ $mailq = $opt_M ;
 + ​ }elsif( $opt_M eq ''​){
 + ​ $mailq = '​sendmail';​
 +@@ -593,7 +630,7 @@
 + ​ print "-W (--Warning) ​  = Min. number of messages for same domain in queue to generate warning\n";​
 + ​ print "-C (--Critical) ​ = Min. number of messages for same domain in queue to generate critical alert ( W < C )\n";
 + ​ print "-t (--timeout) ​  = Plugin timeout in seconds (default = $utils::​TIMEOUT)\n";​
 +- print "-M (--mailserver) = [ sendmail | qmail | postfix | exim ] (default = sendmail)\n";​
 ++ print "-M (--mailserver) = [ sendmail | qmail | postfix | exim | nullmailer ] (default = sendmail)\n";​
 + ​ print "-h (--help)\n";​
 + ​ print "-V (--version)\n";​
 + ​ print "-v (--verbose) ​  = debugging output\n";​
 +</​file>​
 +
 +Afterwards an entry in your nrpe_local.cfg as such:
 +
 +<​file>​
 +command[check_mailq]=/​path/​to/​nagios/​plugins/​check_mailq $ARG1$ -M nullmailer
 +</​file>​
 +
 +Restart NRPE and configure your check on the Icinga/​Nagios server.
 +
 +Enjoy
  
/var/customers/webs/cw01/wiki/data/pages/icinga-nagios/nullmailer-mailq-check.txt ยท Last modified: 2012/02/17 10:55 by wadmin
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki