I'm trying to extend the net-SNMP agent my platform is CentOS 6.2 and here
the list of packages I have installed:
net-snmp.i686 1:5.5-37.el6_2.1
@updates
net-snmp-devel.i686 1:5.5-37.el6_2.1
@updates
net-snmp-libs.i686 1:5.5-37.el6_2.1
@updates
net-snmp-perl.i686 1:5.5-37.el6_2.1
@updates
net-snmp-python.i686 1:5.5-37.el6_2.1
@updates
net-snmp-utils.i686 1:5.5-37.el6_2.1
@updates
cluster-snmp.i686 0.16.2-14.el6
base
libvirt-snmp.i686 0.0.2-3.el6
base
php-snmp.i686 5.3.3-3.el6_2.6
updates
rsyslog-snmp.i686 4.6.2-12.el6
base
Here my /etc/snmp/snmpd.conf relevant portion:
###############################################################################
# Further Information
#
# See the snmpd.conf manual page, and the output of "snmpd -H".
###############################################################################
# call the perl script to emulate the UPS-MIB
perl do "/tmp/snmpd_extend.pl"
here my /usr/share/snmp/snmp_perl.pl file:
##
## SNMPD perl initialization file.
##
use NetSNMP::agent;
$agent = new NetSNMP::agent('dont_init_agent' => 1,
'dont_init_lib' => 1);
and here my /tmp/snmpd_extend.pl script:
#!/usr/bin/perl
use NetSNMP::OID (':all');
use NetSNMP::agent (':all');
use NetSNMP::ASN qw(ASN_OCTET_STR ASN_INTEGER);
sub snmp_extend_handler {
print debug "entering snmp_extend subroutine....\n";
my ($handler, $registration_info, $request_info, $requests) = @_;
my $request;
my $string_value = "hello world";
my $integer_value = "8675309";
for($request = $requests; $request; $request = $request->next()) {
my $oid = $request->getOID();
if ($request_info->getMode() == MODE_GET) {
if ($oid == new NetSNMP::OID(".1.3.6.1.4.1.33.1.0")) {
$request->setValue(ASN_OCTET_STR, $string_value);
}
elsif ($oid == new NetSNMP::OID(".1.3.6.1.4.1.33.1.1")) {
$request->setValue(ASN_INTEGER, $integer_value);
}
} elsif ($request_info->getMode() == MODE_GETNEXT) {
if ($oid == new NetSNMP::OID(".1.3.6.1.4.1.33.1.0")) {
$request->setOID(".1.3.6.1.4.1.33.1.1");
$request->setValue(ASN_INTEGER, $integer_value);
}
elsif ($oid < new NetSNMP::OID(".1.3.6.1.4.1.33.1.0")) {
$request->setOID(".1.3.6.1.4.1.33.1.0");
$request->setValue(ASN_OCTET_STR, $string_value);
}
}
}
print debug "leaving the snmp_extend subroutine....\n" ;
}
open (debug, ">>/tmp/perl_debug.log") or die "can't open the debug file";
print debug "snmpd_extend starting .....\n";
print debug " received $0 @ [$regat] [$debugging] [$verbose] \n";
if (!$agent) { print debug "NO AGENT DEFINED.... \n" ;}
my $rootOID =".1.3.6.1.4.1.33";
my $regoid = new NetSNMP::OID($rootOID);
my $program = $0;
# my $agent = new NetSNMP::agent();
# $agent->register($program, $regoid, \&snmp_extend_handler1111);
print debug "---->AGENT=[$agent]\n";
if ($agent->register($program, $regoid, \&snmp_extend_handler) == 0)
{
print debug "Agent registered successfully...\n" ;
}
else
{
print debug "AGENT REGISTRATION FAILED !!!!...\n" ;
}
$agent->agent_check_and_process(0);
close (debug);
[root@OS-ITNM tmp]#
My problem is that the agent->register is not returning 0 meaning it was
not able to register.
Regards,
German Silva
------------------------------------------------------------------------------
Better than sec? Nothing is better than sec when it comes to
monitoring Big Data applications. Try Boundary one-second
resolution app monitoring today. Free.
http://p.sf.net/sfu/Boundary-dev2dev
_______________________________________________
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