Author image David Peters
and 1 contributors

NAME

Xymon::SNMP - Xymon Interface to SNMP

SYNOPSIS

  use Xymon::SNMP;
  
  my $snmp = Xymon::Monitor::SNMP->new({
                hostname=>"$host",
                version=>"2c",
                community=>"public",
                oidconfig=>"liebert.conf"
                }
  );

  $snmp->run();
  $snmp->close();

DESCRIPTION

Provides an interface for monitoring snmp based devices using a configuration file to determin which oids to retrieve, their thresholds and what tests they are mapped to.

USAGE

An example configuration file:

        #
        # Output Current
        #
        <current>
                OIDS = 1.3.6.1.2.1.33.1.4.4.1.3.1
                OIDS = 1.3.6.1.2.1.33.1.4.4.1.3.2
                OIDS = 1.3.6.1.2.1.33.1.4.4.1.3.3
                
                THRESH = 350
                THRESHDIR = >
        </current>
        
        #
        # Percentage of maximum output current
        #
        <percentload>
                OIDS = 1.3.6.1.2.1.33.1.4.4.1.5.1
                OIDS = 1.3.6.1.2.1.33.1.4.4.1.5.2
                OIDS = 1.3.6.1.2.1.33.1.4.4.1.5.3
                
                THRESH = 90
                THRESHDIR = >
        </percentload>

The config file is loaded when the snmp object is created:

my $snmp = Xymon::Monitor::SNMP->new({ hostname=>"router1", version=>"2c", community=>"public", oidconfig=>"router.conf" } );

This configuration file is used to map the OIDS listed and retrieve the data as below where the first field is the host name, the second is the testname, the third is the field within the test, the fourth is the return value from snmp, the fifth is the comparison operator and the sixth field is the threshold:

        router1:percentload:percentload1:44:>:90
        router1:percentload:percentload2:41:>:90
        router1:percentload:percentload3:31:>:90
        router1:batterystatus:batterystatus:2:<>:2
        router1:battcharge:battcharge:100:<:100
        router1:batteryminutes:batteryminutes:29:<:15,
        router1:current:current1:152:>:350
        router1:current:current2:153:>:350
        router1:current:current3:113:>:350

These are used to generate the message to send to Xymon. The first for eaxmple would be equivalent to:

        bb 127.0.0.1 "status router1.percentload green 
        
        percentload1:44
        percentload2:41
        percentload3:31"

The above is an explanation of what happens behind the scenes, however the actual generation and sending of the message to Xymon is all taken care of when you perform the run method.

AUTHOR

    David Peters
    CPAN ID: DAVIDP
    davidp@electronf.com
    http://www.electronf.com

COPYRIGHT

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.

SEE ALSO

perl(1).