On Tuesday July 15 2008 11:42:04 am Kermito le kermit wrote: > hello all, Hi, > > i configure my cisco router > > router ospf 1 > network 10.1.3.0 0.255.255.255 area 1 > > > when i lunch ./check_ospf.pl 10.1.3.133 nothing work help me please > > > > my ospf.pl Is this the Script you are using? Uncomment the use warnings, maybe you will get some information what it could be that courses the error. You have uncommented boty $version variables, and behind the "v2c"; is a # missing, so you have barewords in your code, maybe the script stops there.
But you could be even mor verbose on what error message you get, just a "it does not work" is not really helpfull for people who want to help. > > #!/usr/bin/perl > > ######################################################################### > # SCRIPT TO CHECK OSPF neighbors status on a router. # > #-----------------------------------------------------------------------# > # Version 1.00 (16-09-2002) # > # - First release # > # # > # # > # # > # # > ######################################################################### > > use Net::SNMP(qw(oid_lex_sort)); > # use warnings; > use strict; > > ############################# > # Declaration of variables. # > ############################# > my $community = "public"; > my $port = 161; > my $version = "v2c"; Uncomment to use with Version 2 SNMP > my $version = "v1"; > my $timeout = 20; # seconds > my $retries = 2; # times > > my $ospfstate = ".1.3.6.1.2.1.14.10.1.6"; # ospfNbrState (Integer) > my $localaddr = ".1.3.6.1.2.1.14.10.1.1"; # ospfNbrIpAddr (IpAddress) > my $remoteaddr = ".1.3.6.1.2.1.14.10.1.3"; # ospfNbrRtrId (IpAddress) > my $ospfstatus = ".1.3.6.1.2.1.14.10.1.9"; # ospfNBMANbrStatus > (Integer) > > my $session; > my $error; > my %DataTable; > my $tmp; > > my $pctwarning = 98; # Minimum percent of Neighbors Established before > a warning is generated. my $pctalert = 75; # Minimum percent of > Neighbors Establisted before an alert is generated. > > # Get the ipaddress from the parameters. > # -------------------------------------- > my $arg_router = $ARGV[0]; > > # Get the data from the router. > # ----------------------------- > > # Open SNMP session on the router. > ($session, $error) = Net::SNMP->session( -hostname => $arg_router, > -community => $community, > -port => $port, > -version => $version, > -timeout => $timeout, > -retries => $retries ); > > # Exit if no session could be opened. > if (!defined ($session)) { > print "Error\n"; > exit 1; > } > > # Get the Neighbor Status. > # ------------------ > my %OSPFStatus = &snmptableget($ospfstatus); > my %LocalIp = &snmptableget($localaddr); > my %RemoteIp = &snmptableget($remoteaddr); > my %OSPFState = &snmptableget($ospfstate); > > # Calculate the Neighbor Data. > my $TotalNeighbor = scalar (keys %OSPFState); > if ($TotalNeighbor != 0) { > my $Down=0; > my $Attempt=0; > my $Init=0; > my $TwoWay=0; > my $ExchangeStart=0; > my $Exchange=0; > my $Loading=0; > my $Full=0; > foreach $tmp (sort keys %OSPFState) { > # Neighbors Down > if ($OSPFState{$tmp} == 1) { > $Down++; > } > # Neighbors Attempt > if ($OSPFState{$tmp} == 2) { > $Attempt++; > } > # Neighbors Init > if ($OSPFState{$tmp} == 3) { > $Init++; > } > # Neighbors TwoWay > if ($OSPFState{$tmp} == 4) { > $TwoWay++; > } > # Neighbors ExchangeStart > if ($OSPFState{$tmp} == 5) { > $ExchangeStart++; > } > # Neighbors Exchange > if ($OSPFState{$tmp} == 6) { > $Exchange++; > } > # Neighbors Loading > if ($OSPFState{$tmp} == 7) { > $Loading++; > } > # Neighbors Full > if ($OSPFState{$tmp} == 8) { > $Full++; > } > } > # Print the data. > # --------------- > my $msgcolor; > my $pctDown = int (($Down / $TotalNeighbor) * 100); > my $pctAttempt = int (($Attempt / $TotalNeighbor) * 100); > my $pctInit = int (($Init / $TotalNeighbor) * 100); > my $pctTwoWay = int (($TwoWay / $TotalNeighbor) * 100); > my $pctExchangeStart = int (($ExchangeStart / $TotalNeighbor) * 100); > my $pctExchange = int (($Exchange / $TotalNeighbor) * 100); > my $pctLoading = int (($Loading / $TotalNeighbor) * 100); > my $pctFull = int (($Full / $TotalNeighbor) * 100); > > my $pctTotal = int ($pctFull + $pctTwoWay); > > if ($pctTotal > $pctwarning) { > $msgcolor = "green"; > } > if ($pctTotal <= $pctalert) { > $msgcolor = "red"; > } > if ($pctTotal <= $pctwarning) { > $msgcolor = "yellow"; > } > if (!$msgcolor) { > $msgcolor = "purple"; > } > > print "$msgcolor\n"; > print "<br> <br>"; > print "<table border=\"1\">"; > print "<tr> <td> Number of Neighbors </td> <td> $TotalNeighbor > </td> </tr>"; print "<tr> <td> Neighbor Down </td> <td> $Down > ($pctDown\%) </td> </tr>"; print "<tr> <td> Neighbor Attempt </td> <td> > $Attempt ($pctAttempt\%) </td> </tr>"; print "<tr> <td> Neighbor Init > </td> <td> $Init ($pctInit\%) </td> </tr>"; print "<tr> <td> Neighbor > TwoWay </td> <td> $TwoWay ($pctTwoWay\%) </td> </tr>"; print "<tr> <td> > Neighbor ExchangeStart </td> <td> $ExchangeStart ($pctExchangeStart\%) > </td> </tr>"; print "<tr> <td> Neighbor Exchange </td> <td> $Exchange > ($pctExchange\%) </td> </tr>"; print "<tr> <td> Neighbor Loading </td> <td> > $Loading ($pctLoading\%) </td> </tr>"; print "<tr> <td> Neighbor Full </td> > <td> $Full ($pctFull\%) </td> </tr>"; print "</table>"; > print "<br> <small> Total may not equal 100% </small> <br>"; > print "<br> Table for neighbor NOT full <br>"; > print "<table border=\"1\">"; > print "<tr> <th> Source </th> <th> Dest </th> <th> Status </th> </tr>"; > foreach $tmp (sort keys %OSPFState) { > if ($OSPFState{$tmp} != "8") { > my $Status = &getstatus($OSPFState{$tmp}); > print "<tr> <td> $LocalIp{$tmp} </td> <td> $RemoteIp{$tmp} > </td> <td> $Status </td> </tr>"; } > } > print "</table>"; > } else { > print "purple\n"; > print "<br>Error while fetching data or no OSPF data found...\n"; > } > > ########################### > # SUBROUTINES START HERE. # > ########################### > > sub snmptableget ($) { > my $snmpvar = shift; > my $index; > my %snmpresult; > my $response = $session->get_table($snmpvar); > foreach (keys %snmpresult) { delete $snmpresult{$_}; } # old values > need to be deleted. if (defined ($response)) { > foreach (oid_lex_sort(keys(%{$response}))) { > $snmpresult{$_} = $response->{$_}; > } > } > foreach $index (sort keys %snmpresult) { > $index =~ /$snmpvar\./; > $DataTable{$'} = $snmpresult{$index}; > } > return (%DataTable); > } > > sub getstatus($) { > return { > '1' => 'Down' > ,'2' => 'Attempt' > ,'3' => 'Init' > ,'4' => 'TwoWay' > ,'5' => 'ExchangeStart' > ,'6' => 'Established' > ,'7' => 'Loading' > ,'8' => 'Full' > }->{(shift)}; > } > > > > > > > C'est pas parce que c'est difficile qu'on n'ose pas, > c'est parce qu'on ose pas que c'est difficile ! > > > > ----- Message d'origine ---- > De : Alex Dehaini <[EMAIL PROTECTED]> > À : Ange AMBEMOU <[EMAIL PROTECTED]>; Nagios Users Mailinglist > <nagios-users@lists.sourceforge.net> Envoyé le : Vendredi, 11 Juillet 2008, > 11h32mn 05s > Objet : Re: [Nagios-users] OSPF > > Yes it is. Check the nagiosexchange site for this plugin. > > Lex > > > On Fri, Jul 11, 2008 at 10:29 AM, Ange AMBEMOU <[EMAIL PROTECTED]> > wrote: > > helo all, > > i want to know if is possible to nagios to check the OSPF on router thanks > > > > > > ________________________________ > Envoyé avec Yahoo! Mail. > Une boite mail plus intelligente. > ------------------------------------------------------------------------- > Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! > Studies have shown that voting for your favorite open source project, > along with a healthy diet, reduces your potential for chronic lameness > and boredom. Vote Now at http://www.sourceforge.net/community/cca08 > _______________________________________________ > Nagios-users mailing list > Nagios-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/nagios-users > > ::: Please include Nagios version, plugin version (-v) and OS when > ::: reporting any issue. Messages without supporting info will risk being > ::: sent to /dev/null -- Christian Schneemann ------------------------------------- SUSE LINUX Products GmbH, Maxfeldstr. 5, D - 90409 Nürnberg Phone: +49 (0)911 - 740 53 0 e-mail:[EMAIL PROTECTED] ------------------------------------- SUSE LINUX Products GmbH, GF: Markus Rex HRB 16746 (AG Nürnberg) ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Nagios-users mailing list Nagios-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nagios-users ::: Please include Nagios version, plugin version (-v) and OS when reporting any issue. ::: Messages without supporting info will risk being sent to /dev/null