Hi all,
I'm writing a perl-script to monitor JBOSS-4.0.4.GA via snmp, by using Net::SNMP
5.20 perl module.
The problem is that if I set a community different from 'public',
snmp-queries done via NET::SNMP module on JBOSS snmp-agent don't work.
While snmp-queries done via 'snmpget' command (from command line) on JBOSS
snmp-agent work perfecty with any community.
I worte a little script to isolate the problem:


  | #!/usr/bin/perl
  | use strict;
  | use warnings;
  | use Net::SNMP;
  | my ($session,$error) = Net::SNMP->session(Hostname => $ARGV[0],
  |                                        Community => $ARGV[1]);
  | die "session error: $error" unless ($session);
  | printf("Hostname: %s  Community: %s  OID: %s\n", $ARGV[0], $ARGV[1], 
$ARGV[2]);
  | my $result = $session->get_request("$ARGV[2]");
  | die "request error: ".$session->error unless (defined $result);
  | $session->close;
  | print "OID requested: ".$result->{"$ARGV[2]"}."\n";
  | 
### myscript.pl end ###

I tested the problem in this scenario:
- host wi064111 running CentOS 4.3
-- JBOSS running snmp-adaptor.sar with community 'public' on port 11112
-- JBOSS running snmp-adaptor.sar with community 'q3lrcdjb' on port 11212
-- snmpd daemon running on port 161 (tested with both previous communities)

The result of my tests is:

1) 'snmpget' command works perfectly quering both snmpd daemon and JBOSS
snmp-agent, with any community:

[EMAIL PROTECTED] ~]# snmpget -c public -v 1 10.102.64.111:161 
.1.3.6.1.2.1.4.1.0
IP-MIB::ipForwarding.0 = INTEGER: notForwarding(2)

[EMAIL PROTECTED] ~]# snmpget -c q3lrcdjb -v 1 10.102.64.111:161
.1.3.6.1.2.1.4.1.0
IP-MIB::ipForwarding.0 = INTEGER: notForwarding(2)

[EMAIL PROTECTED] ~]# snmpget -c public -v 1 10.102.64.111:11112 1.2.3.4.1.2
iso.2.3.4.1.2 = Gauge32: 92686392

[EMAIL PROTECTED] ~]# snmpget -c q3lrcdjb -v 1 10.102.64.111:11212
1.2.3.4.1.2
iso.2.3.4.1.2 = Gauge32: 94004080

2) myscript.pl works perfectly quering snmpd daemon, with any community:

[EMAIL PROTECTED] ~]# ./myscript.pl wi064111:161 public 1.3.6.1.2.1.4.1.0
Hostname: wi064111:161  Community: public  OID: 1.3.6.1.2.1.4.1.0
OID requested: 2

[EMAIL PROTECTED] ~]# ./myscript.pl wi064111:161 q3lrcdjb 1.3.6.1.2.1.4.1.0
Hostname: wi064111:161  Community: q3lrcdjb  OID: 1.3.6.1.2.1.4.1.0
OID requested: 2

3) myscript.pl queries on JBOSS snmp-agent work only with community
'public':

[EMAIL PROTECTED] ~]# ./myscript.pl wi064111:11112 public 1.2.3.4.1.2
Hostname: wi064111:11112  Community: public  OID: 1.2.3.4.1.2
OID requested: 91884232

[EMAIL PROTECTED] ~]# ./myscript.pl wi064111:11212 q3lrcdjb 1.2.3.4.1.2
Hostname: wi064111:11212  Community: q3lrcdjb  OID: 1.2.3.4.1.2
request error: Bad incoming community [public] at ./myscript.pl line 10.
************************************************************************
THIS IS THE ERROR I GET.

Now, NET::SNMP module seems to be ok because works perfectly with snmpd
daemon. On the other side, JBOSS snmp-agent seems to be ok because answers
perfectly to snmpget queries.
But NET::SNMP module with JBOSS snmp-agent doesn'work correctly. Moreover
the error is caused by $session->get_request line, and not by
Net::SNMP->session line. It seems like JBOSS snmp-agent would expect a new
authentication every request.

Could the error be in NET::SNMP module implementation?

Thanks to everyone who just read the whole post,
pako


  | ######## Listing of 
/jboss/admjboss-4.0.4.GA/jboss-4.0.4.GA/server/part02node01/deploy/snmp-adaptor.sar/META-INF/jboss-service.xml
 ##########
  | 
  | <?xml version="1.0" encoding="UTF-8"?>
  | <service>
  |   <mbean code="org.jboss.jmx.adaptor.snmp.trapd.TrapdService"
  |          name="jboss.jmx:name=SnmpAgent,service=trapd,type=logger">
  |     <attribute name="Port">1162</attribute>
  |   </mbean>
  |   <!-- The SNMP adaptor MBean -->
  |   <mbean code="org.jboss.jmx.adaptor.snmp.agent.SnmpAgentService"
  |          name="jboss.jmx:name=SnmpAgent,service=snmp,type=adaptor">
  |     <attribute 
name="RequestHandlerClassName">org.jboss.jmx.adaptor.snmp.agent.RequestHandlerImpl</attribute>
  |     <attribute name="RequestHandlerResName">/attributes.xml</attribute>
  |     <attribute 
name="TrapFactoryClassName">org.jboss.jmx.adaptor.snmp.agent.TrapFactorySupport</attribute>
  |     <attribute name="NotificationMapResName">/notifications.xml</attribute>
  |     <attribute name="ManagersResName">/managers.xml</attribute>
  |     <attribute name="HeartBeatPeriod">0</attribute>
  |     <attribute name="Port">1161</attribute>
  |     <attribute name="DynamicSubscriptions">false</attribute>
  |     <attribute name="WriteCommunity">q3lwcdjb</attribute>
  |     <attribute name="ReadCommunity">q3lrcdjb</attribute>
  |     <attribute name="SubscriptionList">
  |       <subscription-list>
  |         <!-- Monitor events from SNMP adaptor itself -->
  |         <mbean name="jboss.jmx:name=SnmpAgent,service=snmp,type=adaptor">
  |           <notification type="jboss.snmp.agent.coldstart"/>
  |         </mbean>
  |         <!-- Monitor timer for heartbeat events -->
  |         <mbean name="jboss.jmx:name=SnmpAgent,service=timer,type=heartbeat">
  |           <notification type="jboss.snmp.agent.heartbeat"/>
  |         </mbean>
  |       </subscription-list>
  |     </attribute>
  |     <depends optional-attribute-name="TimerName">
  |       <mbean code="javax.management.timer.Timer"
  |              name="jboss.jmx:name=SnmpAgent,service=timer,type=heartbeat"/>
  |     </depends>
  |   </mbean>
  |   <!-- Defines the system information as specified in rfc-1213
  |        iso.org.dod.internet.mgmt.mib-2.system.* -->
  |   <mbean code="org.jboss.jmx.adaptor.snmp.system.MIB2SystemGroupService"
  |              name="jboss.jmx:name=SnmpAgent,service=MIB2SystemGroup">
  |     <attribute name="SysLocation">In The Matrix</attribute>
  |     <attribute name="SysDescr">Central Computer</attribute>
  |     <attribute name="SysContact">Agent Smith</attribute>
  |     <depends optional-attribute-name="SnmpAgent">
  |            jboss.jmx:name=SnmpAgent,service=snmp,type=adaptor
  |     </depends>
  |   </mbean>
  | </service>
  | 

########### listing of 
/jboss/admjboss-4.0.4.GA/jboss-4.0.4.GA/server/part02node01/deploy/snmp-adaptor.sar/attributes.xml
 ###########


  | <?xml version="1.0"?>
  | <attribute-mappings>
  |    <mbean name="jboss.system:type=ServerInfo" oid-prefix=".1.2.3.4.1">
  |       <attribute name="ActiveThreadCount" oid=".1"/>
  |       <attribute name="FreeMemory" oid=".2"/>
  |       <attribute name="MaxMemory" oid=".3"/>
  |       <attribute name="TotalMemory" oid=".10"/>
  |    </mbean>
  |    <mbean name="jboss.system:service=ThreadPool">
  |       <attribute name="QueueSize" oid=".1.2.3.4.1.4"/>
  |       <attribute name="MaximumQueueSize" oid=".1.2.3.4.1.11"/>
  |    </mbean>
  |    <mbean 
name="jboss.web:name=http-0.0.0.0-8080,type=GlobalRequestProcessor">
  |       <attribute name="requestCount" oid=".1.2.3.4.1.5"/>
  |    </mbean>
  |    <mbean name="jboss:service=TransactionManager">
  |       <attribute name="CommitCount" oid=".1.2.3.4.1.6"/>
  |       <attribute name="RollbackCount" oid=".1.2.3.4.1.7"/>
  |       <attribute name="TransactionCount" oid=".1.2.3.4.1.8"/>
  |    </mbean>
  |    <mbean name="jboss.jca:name=DefaultDS,service=ManagedConnectionPool" 
oid-prefix=".1.2.3.4.1">
  |       <attribute name="InUseConnectionCount" oid=".9"/>
  |    </mbean>
  |    <mbean name="jboss.jmx:name=SnmpAgent,service=MIB2SystemGroup" 
oid-prefix=".1.3.6.1.2.1.1">
  |       <attribute name="SysDescr" oid=".1" mode="rw"/> <!-- can be modified 
over snmp -->
  |       <attribute name="SysObjectId" oid=".2"/>
  |       <attribute name="SysUpTime" oid=".3"/>
  |       <attribute name="SysContact" oid=".4"/>
  |       <attribute name="SysName" oid=".5"/>
  |       <attribute name="SysLocation" oid=".6"/>
  |       <attribute name="SysServices" oid=".7"/>
  |    </mbean>
  | </attribute-mappings>
  | 

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3968410#3968410

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3968410
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to