J'essaie de créer un agent SNMP4j et j'ai du mal à comprendre le processus correctement. J'ai réussi à créer un agent qui peut être interrogé à partir de la ligne de commande en utilisant snmpwalk. Ce qui me pose problème, c'est de comprendre comment je suis censé mettre à jour les valeurs stockées dans ma MIB implémentée.Comment mettre à jour correctement les valeurs MIB de l'agent SNMP4j
Ce qui suit montre le code approprié, je l'utilise pour créer le MIB (Host-je mettre en place des ressources-MIB)
agent = new Agent("0.0.0.0/" + port);
agent.start();
agent.unregisterManagedObject(agent.getSnmpv2MIB());
modules = new Modules(DefaultMOFactory.getInstance());
HrSWRunEntryRow thisRow = modules.getHostResourcesMib().getHrSWRunEntry()
.createRow(oidHrSWRunEntry);
final OID ashEnterpriseMIB = new OID(".1.3.6.1.4.1.49266.0");
thisRow.setHrSWRunIndex(new Integer32(1));
thisRow.setHrSWRunName(new OctetString("RunnableAgent"));
thisRow.setHrSWRunID(ashEnterpriseMIB);
thisRow.setHrSWRunPath(new OctetString("All is good in the world")); // Max 128 characters
thisRow.setHrSWRunParameters(new OctetString("Everything is working")); // Max 128 characters
thisRow.setHrSWRunType(new Integer32(HrSWRunTypeEnum.application));
thisRow.setHrSWRunStatus(new Integer32(HrSWRunStatusEnum.running));
modules.getHostResourcesMib().getHrSWRunEntry().addRow(thisRow);
agent.registerManagedObject(modules.getHostResourcesMib());
Cela semble être suffisant pour créer un agent runnable. Ce que je ne comprends pas, c'est comment je suis censé changer les valeurs stockées dans le MIB (comment, par exemple, changer la valeur de HrSWRunStatus). Il semble y avoir quelques manières kludge mais elles ne semblent pas correspondre à la façon dont la bibliothèque est écrite.
Je suis venu à travers de nombreuses références à l'utilisation/remplaçant les méthodes
- préparer
- commettras
- undo
- nettoyage
Mais ne peut pas trouver des exemples où cela est fait . Toute aide serait reçue avec gratitude.