[BACK]Return to check_openbgpd CVS log [TXT][DIR] Up to [local] / nagios / check_openbgpd

Diff for /nagios/check_openbgpd/check_openbgpd between version 1.1 and 1.2

version 1.1, 2009/11/13 02:05:20 version 1.2, 2009/11/13 22:23:24
Line 1 
Line 1 
 #!/usr/bin/perl -T  #!/usr/bin/perl -T
 # $RedRiver$  # $RedRiver: check_openbgpd,v 1.1 2009/11/13 02:05:20 andrew Exp $
 ########################################################################  ########################################################################
 # check_openbgpd *** A nagios check for OpenBSD bgpd  # check_openbgpd *** A nagios check for OpenBSD bgpd
 #  #
Line 12 
Line 12 
   
 local %ENV = ();  local %ENV = ();
   
 my $NAGIOS_OUTPUT = 0;  my $NAGIOS_OUTPUT = 1;
   
 my $LICENSE = <<'EOL';  my $LICENSE = <<'EOL';
 Copyright (c) 2009 Andrew Fresh <andrew@afresh1.com>  Copyright (c) 2009 Andrew Fresh <andrew@afresh1.com>
Line 60 
Line 60 
 my %STATES = check_status( \@STATUS, \%CHECKS );  my %STATES = check_status( \@STATUS, \%CHECKS );
   
 my $have_results = 0;  my $have_results = 0;
 my $state = 'OK';  my $state        = 'OK';
 foreach  foreach
     my $error ( reverse sort { $ERRORS{$a} <=> $ERRORS{$b} } keys %ERRORS )      my $error ( reverse sort { $ERRORS{$a} <=> $ERRORS{$b} } keys %ERRORS )
 {  {
Line 93 
Line 93 
     my @S;      my @S;
   
     #open my $fh, '<', 'output'    # XXX      #open my $fh, '<', 'output'    # XXX
     open my $fh , '-|', $BGPCTL, 'show', 'summary'      open my $fh, '-|', $BGPCTL, 'show', 'summary'
         or die "Couldn't open bgpctl: $!\n";          or die "Couldn't open bgpctl: $!\n";
     while (<$fh>) {      while (<$fh>) {
         chomp;          chomp;
Line 240 
Line 240 
                 print_revision( $PROGNAME, '$Revision$ ' );                  print_revision( $PROGNAME, '$Revision$ ' );
                 exit $ERRORS{'OK'}                  exit $ERRORS{'OK'}
             }              }
             when ( /^-?-h(?:elp)?/xms ) { print_help(); exit $ERRORS{'OK'} }              when (/^-?-h(?:elp)?/xms) { print_help(); exit $ERRORS{'OK'} }
             when ( /^-?-w(?:arning)?/xms )  { $w = parse_check( shift @argv ) }              when (/^-?-w(?:arning)?/xms)  { $w = parse_check( shift @argv ) }
             when ( /^-?-c(?:ritical)?/xms ) { $c = parse_check( shift @argv ) }              when (/^-?-c(?:ritical)?/xms) { $c = parse_check( shift @argv ) }
             when ( /^-?-n(?:eighbor)?/xms ) {              when (/^-?-n(?:eighbor)?/xms) {
                 while ( @argv && $argv[0] !~ /^-/xms ) {                  while ( @argv && $argv[0] !~ /^-/xms ) {
                     $checks{ shift @argv } = {                      $checks{ shift @argv } = {
                         WARNING      => $w,                          WARNING      => $w,
Line 259 
Line 259 
   
 sub print_help {  sub print_help {
     print <<"EOL";      print <<"EOL";
 $PROGNAME - monitors sysctl hw.bgpstatus on OpenBSD  $PROGNAME - checks status of OpenBGPd peers
     $PROGNAME [ -w ENTRY ][ -c ENTRY ][ -n NEIGHBOR [ NEIGHBOR2 ] ]      $PROGNAME [ -w ENTRY ][ -c ENTRY ][ -n NEIGHBOR [ NEIGHBOR2 ] ]
   
 Usage:  Usage:
Line 280 
Line 280 
 NEIGHBOR is the name that shows when running "bgpctl show summary"  NEIGHBOR is the name that shows when running "bgpctl show summary"
   
 Examples:  Examples:
   (where many of the numbers would probably have to be multiplied by 1000)
   
 $PROGNAME -w 10000:300000 -c 1000:500000 -n eBGP1 eBGP2 -n eBGP3  Any time a NEIGHBOR is specified on the command line but does NOT show up in
   the output causes a CRITICAL result.
   
 Checks that peers eBGP1, eBGP2 and eBGP2 are within the ranges specified  Any time a NEIGHBOR that is NOT specified on the command line shows up in the
   output causes a CRITICAL result.
   
 $PROGNAME -c 1:1 -n eBGP1 -w 200000:300000 -c 100: -n iBGP1  
   
 Checks that 1 and only 1 prefix is received from from eBGP1, warns if less  $PROGNAME -w 10:300 -c 10:500 -n P1 P2 -n P3
 than 200000 or more than 300000 prefixes are recieved from peer iBGP1 and is  
 critical if less than 100 prefixes are recieved from peer iBGP1  
   
 $PROGNAME -c Idle -n iBGP1 -w  CRITICAL
       If any of P1, P2, P3 are below 10, above 500 or any non-numeric value.
   
   WARNING
       If any of P1, P2, P3 are above 300.
   
   
   $PROGNAME -c Idle -n P1 -c 1:1 -n P2 -w 200:300 -c Active,10: -n P3
   
   CRITICAL
       If P1 is any value but Idle.
       If P2 is any value but 1.
       If P3 is below 10 or any non-numeric value other than "Active".
   
   WARNING
       If P3 is above 10 and below 200 or above 300.
   
 EOL  EOL
   

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>