I have several monitoring scripts that pull SNMP stats off of switches and 
routers that I have used for the past 10 years using perl by running snmpget 
and parsing the program output into variables:

Ex:
===
open(GETIN, "/usr/bin/snmpget -Oqf -v2c -c public 192.168.1.20 
interfaces.ifTable.ifEntry.ifInOctets.1 |");
(@temp) = split(/\s+/, <GETIN>);
$inBytes = $temp[$#temp];
===

Pretty rough, but it's worked for us for over 10 years.

I have decided to torture myself by learning to use Net::SNMP instead of 
modifying our older scripts for pulling stats off of some of our newer 
equipment.

The purpose is to create a comma delimited file of statistics from these 
devices (satellite modems). I have created the array of OID values to retrieve, 
and have pulling the info from the device, but have hit a bit of a roadblock in 
my understanding on parsing the output to get the returned values.

Here is what I have sofar:
-------------------------------------------------
#!/usr/bin/perl

use Net::SNMP;

$SNMP_COMMUNITY = "public";
$SNMP_VERSION = "2";

$VSAT_ANCH_IP = "172.16.0.40";

@VSAT_ANCH_OID = ('1.3.6.1.4.1.2591.26.1.8.1.1.8.1.1', #CA Rx
                  '1.3.6.1.4.1.2591.26.1.8.1.1.8.3.1', #UN Rx
                  '1.3.6.1.4.1.2591.26.1.8.1.1.8.3.2', #GA Rx
                  '1.3.6.1.4.1.2591.26.1.8.1.1.8.3.4', #CB Rx
                  '1.3.6.1.4.1.2591.26.1.8.1.1.8.3.5', #SG Rx
                  '1.3.6.1.4.1.2591.26.1.8.1.1.8.4.1', #SP Rx
                  '1.3.6.1.4.1.2591.26.1.8.1.1.8.4.2', #KC Rx
                  '1.3.6.1.4.1.2591.26.1.8.1.1.8.4.3', #NO Rx
                  '1.3.6.1.4.1.2591.26.1.8.1.1.8.4.4', #FY Rx
                  '1.3.6.1.4.1.2591.26.1.8.1.1.8.4.5', #SA Rx
                  '1.3.6.1.4.1.2591.26.1.8.1.1.8.4.6', #AN Rx
                  '1.3.6.1.4.1.2591.26.1.8.1.1.8.4.7', #IL Rx
                  '1.3.6.1.4.1.2591.26.1.1.3.0'); #Tx Power Level

($session, $error) = Net::SNMP->session(
                                -hostname       => $VSAT_ANCH_IP,
                                -version        => $SNMP_VERSION,
                                -community      => $SNMP_COMMUNITY,
                                );


$VSAT_ANCH = $session->get_request(-varbindlist => \...@vsat_anch_oid,
                                  );

snmp_dispatcher();

$session->close();
-------------------------------------------------
Each of those OID values should return an integer value from 10000 to -2500.

I do not quite understand how to access the returned results in $VSAT_ANCH as 
what I see in the variable is "HASH(0x9c75270)" when referenced.

Thanks for any help in pointing me in the right direction.

-John Fulton


------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Net-snmp-users mailing list
Net-snmp-users@lists.sourceforge.net
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users

Reply via email to