[SNMP4J] Help for setting up OIDs that change values

Frank Fock fock at agentpp.com
Wed Sep 9 16:01:01 CEST 2015


Hi Andrew,
The first thing to fix is using .0 as suffix for scalar managed objects (you name those "OIDs" which is not fully appropriate). The lookup mechanism of SNMP4J-Agent relies on this SNMP standard requirement. 
The most easiest way to instrument a scalar managed object is to overwrite its setValue method. 
I probably can add more pointers if you have tried the above.

Best regards,
Frank

> Am 09.09.2015 um 15:04 schrieb Andrew Samuels <drewsamuels13 at gmail.com>:
> 
> All,
> 
> I have been looking at using SNMP4J for a while and finally started to get
> to grips with it, however setting up OIDs that can return changing values
> is proving more challenging than I anticipated and I am looking for
> pointers. I have read the instrumentation guide and pulled various pieces
> of code together from searching.
> 
> So far I have the basics working, various examples show these
> 
> // Set up a new agent
> this.myAgent = new SNMPAgent("udp:10.0.0.5/161");
> 
> // Start the agent
> this.myAgent.start();
> // Remove all the default MIBs so I can see any additions/changes I am
> making more easily.
> myAgent.unregisterManagedObject(myAgent.getSnmpv2MIB());
> myAgent.unregisterManagedObject(myAgent.getSnmp4jLogMIB());
> myAgent.unregisterManagedObject(myAgent.getSnmpCommunityMIB());
> myAgent.unregisterManagedObject(myAgent.getSnmp4jConfigMIB());
> myAgent.unregisterManagedObject(myAgent.getSnmpFrameworkMIB());
> myAgent.unregisterManagedObject(myAgent.getSnmpNotificationMIB());
> myAgent.unregisterManagedObject(myAgent.getUsmMIB());
> myAgent.unregisterManagedObject(myAgent.getVacmMIB());
> myAgent.unregisterManagedObject(myAgent.getSnmpProxyMIB());
> myAgent.unregisterManagedObject(myAgent.getSnmpTargetMIB());
> 
> //Add a simple OID with string
> 
> OID mo1= new OID("1.3.6.1.2.1.1.1");
> myAgent.registerManagedObject(MOCreator.createReadOnly(mo1,"this is my
> test"));
> 
> If I start the agent and then do a walk
> 
> snmpwalk -v 2c -c public 10.0.0.5 .1
> iso.3.6.1.2.1.1.1 = STRING: "this is my test"
> iso.3.6.1.2.1.1.1 = No more variables left in this MIB View (It is past the
> end of the MIB tree)
> 
> I get back what I expected and everything is good, so I know the agent
> starts, community is working etc.
> 
> The next step I unfortunately do not seem to be able to get working at all.
> 
> Lets say I have a class call Kitchen and an instance of the class called
> ThisKitchen. It has the following return methods
> 
> getStaffOnDuty() - returns string
> getSpoonCount() - returns int
> getKnifeCount() - returns int
> getForkCount() - returns int
> 
> These values can be updated in the ThisKitchen instance with comparable set
> calls ,so setStaffOnDuty, setSpoonCount etc
> 
> I have tried using a MOServerLookupListener and MOTable and also the
> class UpdatableManagedObject,
> however the MOTable I obviously do not yet understand fully and the
> UpdateableManagedObject always returns null for the oid I set up.
> 
> A simple oid structure (fake prefix) I am looking for would be
> 
> 1.8.8.8.1 = staffonduty - string
> 1.8.8.8.2 = spooncount - int
> 1.8.8.8.3 = knifecount - int
> 1.8.8.8.4 = forkcount - int
> 
> Can any one provide some pointers, not looking for complete code (although
> very welcome), but some basic framework pointers that aligns with what I am
> trying to do ? as I believe my current approach is missing some
> fundamentals for OIDs that change values and how the structures work.
> 
> 
> Andrew.
> _______________________________________________
> SNMP4J mailing list
> SNMP4J at agentpp.org
> https://oosnmp.net/mailman/listinfo/snmp4j



More information about the SNMP4J mailing list