Rechercher : dans
Par :

Mib de snmp4j

Dernière réponse le 2 fév 2009 à 07:31:17 lououle, le 15 mai 2008 à 14:10:00 
 Signaler ce message aux modérateurs

Bonjour,

je suis en stage de fin d'étude et je dois developper une application en java qui utilise le protocole snmp pour ça j'ai telecharger l'API snmp4j et j'ai le importe dans un projet java et je importer l'agent snmp4j dans le meme projet, ma question est : est ce que c'est bien ce que je fais ? et comment utiliser l'API pour recuperer quelque informations comme CPU, MEMOIRE, TEMPIRATURE..... , et pour la mib est ce que je dois aussi importer la mib fournit avec l'agent snmp4j ou je utilise une autre mib pour la recuperation de ce gere d'informations ?

aider moi je suis vraiment bloquee et je connais pas trop java je sui debutante c'est fait un moi que je commancer mon stage et j'ai meme pas encore debuter le travaille a faire !!!!!!!!

merci d'avance

Configuration: Linux
Firefox 2.0.0.6

1

talgair, le 15 mai 2008 à 14:54:17
  • +2

Salut

j ai moi aussi a faire a peu prés la même chose que toi en java. J ai commencer ce matin et pour faire des test j ai installer l agent snmp de windows et j ai ete la http://www.snmp4j.org/doc/ pour avoir un petit exemple d utilisation de snmp4j (j ai deja reussi a avoir un peu tout ce que je voulais rien q avec cet example en ayant prealablement ete cherche les oid grave mib browser).
sinon j ai pas importer de mib ds le manager que je suis en train de faire vu que c est ton manager qui communique avec l agent et l agent qui se sert de la mib pour t envoyer des infos. dsl j ai pas plus d info :D Les noix de coco tuent plus d'hommes par an (150) que les requins (10).

Répondre à talgair

2

lououle, le 15 mai 2008 à 16:23:09

Bonjour

la chanse moi je n'arrive meme pas a executer snmp4j aider moi stp envoie moi ce que tu a fais pour que je comprent merci bp

Répondre à lououle

3

talgair, le 16 mai 2008 à 10:59:14

C est a dire tu arrive pas a exécuter snmp4j ? ta bien chargé le snmp4j.jar ? c est quoi ton environnement de développement ? (eclipse , netBean)
sinon pour ce que j ai fai j ai ete dans la doc de snmp4j tu regarde la classe snmp et dedans il y a un bout de code comme exemple pour récupérer la valeur d un oid ta juste a rajouter les import et çà marche normalement. Les noix de coco tuent plus d'hommes par an (150) que les requins (10).

Répondre à talgair

4

lououle, le 16 mai 2008 à 11:48:36

Bonjour

pour moi je travaille sur eclipse et l'environement c'st linux ubontu et je vais te explique ce que je faisais :

1. je telecharger snmp4j sur le bureau puis je le decomposer
2. je créer un nouveau projrt java puis j'ai coupier les racines de snmp4j dans ce projet (je coupier le fichier org ce trouve dans le chemein suivant: snmp4j/src/org)
3. puis je fais le meme chose pour l'agent snmp4j dans le meme projet (snmp4j + snmp4j-agent + la mib fournit avec l'agent snmp4j)
4. je compiler quelque classes et ça compile mais la classe ajent- snmp4j donne la probleme suivant :

port=161, address=localhost/127.0.0.1
java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance(libgcj.so.7)
at org.snmp4j.transport.TransportMappings.createTransportMappin­g(TransportMappings.java:101)
at org.snmp4j.agent.test.TestAgent.initTransportMappings(TestAg­ent.java:313)
at org.snmp4j.agent.BaseAgent.init(BaseAgent.java:135)
at org.snmp4j.agent.test.TestAgent.main(TestAgent.java:332)
Caused by: java.net.BindException: Adresse déjà utilisée
at gnu.java.net.PlainDatagramSocketImpl.bind(libgcj.so.7)
at java.net.DatagramSocket.bind(libgcj.so.7)
at java.net.DatagramSocket.<init>(libgcj.so.7)
at java.net.DatagramSocket.<init>(libgcj.so.7)
at org.snmp4j.transport.DefaultUdpTransportMapping.<init>(DefaultUdpTransportMapping.java:102)
at java.lang.reflect.Constructor.newInstance(libgcj.so.7)
...4 more
0 [main] ERROR org.snmp4j.transport.TransportMappings - java.lang.reflect.InvocationTargetException
44 [main] DEBUG org.snmp4j.security.Salt - Initialized Salt to 8b0b476c826cfc84.
Exception in thread "main" java.lang.NullPointerException
at java.lang.Object.getClass(libgcj.so.7)
at org.snmp4j.MessageDispatcherImpl.addTransportMapping(MessageDispatcherImpl.java:115)
at org.snmp4j.Snmp.addTransportMapping(Snmp.java:287)
at org.snmp4j.agent.BaseAgent.initSnmpSession(BaseAgent.java:433)
at org.snmp4j.agent.BaseAgent.initMessageDispatcher(BaseAgent.java:429)
at org.snmp4j.agent.BaseAgent.init(BaseAgent.java:136)
at org.snmp4j.agent.test.TestAgent.main(TestAgent.java:332)

est ce que tu peux me détaile ce que tu a fais et tu me donne ton code stp aide moi je suis vraiment perdu ça fait un moi et je suis en retard dans mon stage


merci beaucoup
cordialement

Répondre à lououle

5

talgair, le 16 mai 2008 à 12:05:01
  • +1

Moi je dois juste faire un manager snmp qui se connecte a un agent déjà existant récupérer des données, traps etc...
donc pour ton pb avec l agent snmp4j je peux pas t aider.

sinon j ai juste charger snmp4j.jar ds éclipse (clic droit sur ton projet->propriete , onglet librairies ->add Jars )


Address targetAddress = GenericAddress.parse("udp:127.0.0.1/161");
TransportMapping transport = new DefaultUdpTransportMapping();
snmp = new Snmp(transport);
USM usm = new USM(SecurityProtocols.getInstance(),
new OctetString(MPv3.createLocalEngineID()), 0);
SecurityModels.getInstance().addSecurityModel(usm);
transport.listen();

// setting up target
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString("public"));
target.setAddress(targetAddress);
target.setRetries(2);
target.setTimeout(1500);
target.setVersion(SnmpConstants.version1);
// creating PDU
PDU pdu = new PDU();
pdu.add(new VariableBinding(new OID(new int[] {1,3,6,1,2,1,1,1})));
pdu.add(new VariableBinding(new OID(new int[] {1,3,6,1,2,1,1,2})));
pdu.setType(PDU.GETNEXT);
// sending request
ResponseListener listener = new ResponseListener() {
public void onResponse(ResponseEvent event) {
// Always cancel async request when response has been received
// otherwise a memory leak is created! Not canceling a request
// immediately can be useful when sending a request to a broadcast
// address.
((Snmp)event.getSource()).cancel(event.getRequest(), this);
System.out.println("Received response PDU is: "+event.getResponse());
}
};
snmp.sendPDU(pdu, target, null, listener);

ta jsute a mettre ca ds un main mettre les import qu il faut et c est bon tu peu te co a ton agent snmp mais bon je pense pas que ca va resoudre ton pb ^^
Les noix de coco tuent plus d'hommes par an (150) que les requins (10).

Répondre à talgair

6

lououle, le 16 mai 2008 à 12:26:52

Bonjour

ou tu a trouver le .jar ? moi j'ai que .zip dans www.snmp4j.org!!!!! mais si je le decompose je trouve SNMP4j.jar dans list/lub/SNMP4j!!!!!! donc je essaier de faire ce que tu a fait mais si je fais (clic droit sur mon projet->propriete , build paht ,onglet librairies ->add Jars mas il ne donne une fenetre ou il y a un que je deja créer donc il me donns pas la main pour snmp4j )???????

Répondre à lououle

7

talgair, le 16 mai 2008 à 12:37:14

Copie le .jar ds ton projet comme ca quand tu voudra addjars tu le verra normalement Les noix de coco tuent plus d'hommes par an (150) que les requins (10).

Répondre à talgair

9

lououle, le 16 mai 2008 à 15:59:32

Quel .jar moi j'ai que .zip mais si je decompose le .zip je trouve plusieurs fichier parmie les fichers il y a le fichier list ou se trouve le fichier lib puis de dant je trouve SNMP4j.zip !! est ce que tu trouve un snmp4j.zip comme ça ?

NB moi ce que je trouve c'est SNMP4j.zip pas snmp4j.zip dans le fichier lib

Répondre à lououle

8

talgair, le 16 mai 2008 à 13:46:00

C est a dire tu arrive pas a exécuter snmp4j ? ta bien chargé le snmp4j.jar ? c est quoi ton environnement de développement ? (eclipse , netBean)
sinon pour ce que j ai fai j ai ete dans la doc de snmp4j tu regarde la classe snmp et dedans il y a un bout de code comme exemple pour récupérer la valeur d un oid ta juste a rajouter les import et çà marche normalement. Les noix de coco tuent plus d'hommes par an (150) que les requins (10).

Répondre à talgair

10

lououle, le 16 mai 2008 à 16:43:32

Bonjour,

merci beaucoup et je suis desoler si je te derange mais parment on parle pas de la meme chargement du snmp4j donc je ve que tu me explique comment tu a importer snmp4j ? est ce que tu travaille sur eclipse? est quant tu a regarder la classe snmp es tu a trouve des bouts de codes tu les coupier dans une classe et tu la executer ou quoi ???

mesri encore

Répondre à lououle

11

talgair, le 16 mai 2008 à 17:08:47

Oui je suis bien sous eclipse

je vais t expliquer en détail ma démarche :

-création d un java project.
-copier le snmp4j.jar dans le répertoire de ton projet (dans ton workspace ta un répertoire "utilisateur" ou utilisateur est e nom que tu a choisi a la création du workspace la tu a le repertoire de ton projet)
-clique droit ->propriete onglet librairies ->addJars tu développe ton projet a l aide du "+" tu sélectionne ton jar et <OK>
- pour tester tu peu créer une classe test

et dedans doit y avoir çà :

import java.io.IOException;

import org.snmp4j.CommunityTarget;
import org.snmp4j.PDU;
import org.snmp4j.Snmp;
import org.snmp4j.TransportMapping;
import org.snmp4j.event.ResponseEvent;
import org.snmp4j.event.ResponseListener;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.smi.Address;
import org.snmp4j.smi.GenericAddress;
import org.snmp4j.smi.OID;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.VariableBinding;
import org.snmp4j.transport.DefaultUdpTransportMapping;


public class test {

/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
Address targetAddress = GenericAddress.parse("udp:127.0.0.1/161");
TransportMapping transport = new DefaultUdpTransportMapping();
Snmp snmp = new Snmp(transport);
//pour du snmpv3
/*USM usm = new USM(SecurityProtocols.getInstance(),
new OctetString(MPv3.createLocalEngineID()), 0);
SecurityModels.getInstance().addSecurityModel(usm);*/
transport.listen();
// setting up target
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString("public"));
target.setAddress(targetAddress);
target.setRetries(2);
target.setTimeout(1500);
target.setVersion(SnmpConstants.version1);
// creating PDU
PDU pdu = new PDU();
pdu.add(new VariableBinding(new OID(new int[] {1,3,6,1,2,1,1,1})));
pdu.add(new VariableBinding(new OID(new int[] {1,3,6,1,2,1,1,2})));
pdu.setType(PDU.GETNEXT);
// sending request
ResponseListener listener = new ResponseListener() {
public void onResponse(ResponseEvent event) {
// Always cancel async request when response has been received
// otherwise a memory leak is created! Not canceling a request
// immediately can be useful when sending a request to a broadcast
// address.
((Snmp)event.getSource()).cancel(event.getRequest(), this);
System.out.println("Received response PDU is: "+event.getResponse());
}
};
snmp.send(pdu, target, null, listener);
}

}

j ai tester ca marche et ca te donne :
Received response PDU is: RESPONSE[requestID=1809038804, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.1.1.0 = Hardware: x86 Family 15 Model 1 Stepping 2 AT/AT COMPATIBLE - Software: Windows 2000 Version 5.1 (Build 2600 Uniprocessor Free); 1.3.6.1.2.1.1.2.0 = 1.3.6.1.4.1.311.1.1.3.1.1]]

dans la console

ceci est a condition que tu est un agent snmp déjà installer en local.
si tu te connecte a un agent sur un autre ordinateur a la ligne :
Address targetAddress = GenericAddress.parse("udp:127.0.0.1/161");

tu remplace 127.0.0.1 par l adresse ip de l ordi sur lequel tu veux tu connecter.


j'ai pris cette api qui est dédiée a la création d un manager et non d un agent
http://www.snmp4j.org/snmp4j-1.9.1e.zip

voila j espère que ça ira :D Les noix de coco tuent plus d'hommes par an (150) que les requins (10).

Répondre à talgair

12

lououle, le 16 mai 2008 à 17:38:35

Je fais le meme chose que toi mais moi j'ai que .zip pas .jar donc je comprent pas comment u trouve le .jar

Répondre à lououle

13

lououle, le 16 mai 2008 à 18:01:39

Je te explique ce que je peux faire sur mon ordinateur :

1. j'ai telecharger l'api snmp4j-1.9.1.e.zip ok il est sur mon bureau
2. j'ai créer un projet java ok
3. j'ai chercher le repertoire de mon projet donc je fais le mon utilisateur>>workspace>>mon projet j'ai clic doit propriete et la j'ai que une fenetre qui donne des proprieter sur le projet comme la date de criation .... rien d'autre ?????

j'ai meme essai de copier le dans le projet directement mais donne une erreur

je suis vraiment desoler pour le derangement mais je suis perdu perdu perdu

le . jar le trouve pas je n'ai sais pas tu parle de quele .jar ou se trouve dans quel reprtoire ??????


merci beaucoup

Répondre à lououle

14

talgair, le 19 mai 2008 à 09:29:14

Quand tu fais clique droit ->propriété c est bien sous éclipse ? Les noix de coco tuent plus d'hommes par an (150) que les requins (10).

Répondre à talgair

18

 assouma, le 2 fév 2009 à 07:31:17

Bonjour
j'espère que c'est bien passé ton projet concernant SNMP
moi aussi cette année j'ai presque le même projet alors est ce que vous pouvez SVP m'envoyer votre travail sur le mail
ça ve me donner une idée sur ce que je dois faire
merci bien
bonne journée

Répondre à assouma

15

lououle, le 20 mai 2008 à 10:16:25

Bonjour

je suis en retoure mais j'ai reussi a faire ce que tu ma dis en faite j'ai bien trouver le .jar il se trouve dans list puis lib donc c'est bon
mais comment faire pour l'agent ou je peux trouver l'agent snmp4j ou il me suffi l'agent snmp qui se trouve en linux si il existe????

merci beaucoup

Répondre à lououle

16

lououle, le 20 mai 2008 à 10:55:06

Dis moi stp targair tu travaille sur linux ou windows ? car je suis en train de chercher un agent sous linus et je trouve que "net snmp" et je n'ai sais pas si c'est bien ou pas

Répondre à lououle

17

assouma, le 2 fév 2009 à 07:22:22

Bonjour louloue,
j'espère que c'est bien passé ton projet de fin d'étude.
moi aussi cette années j'ai le même projet
que t'as déjà fait. alors si tu peux m'envoyer le travail que tu as réalisé l'année dernière
merci bien
bon courage

Répondre à assouma
Collection CommentÇaMarche.net