SNMP4J envio de traps?

Boa tarde galera,

Alguem já utilizou agent SNMP4J? Sabe me dizer ou tem algum exemplo de como faço para enviar uma trap SNMP para o servidor (GERENTE)?

Qualquer ajuda será bem vinda.

Oi :slight_smile:

		try {
			
			Address targetAddress = GenericAddress.parse("udp:127.0.0.1/162");
			CommunityTarget target = new CommunityTarget();
			target.setCommunity(new OctetString("secret"));
			target.setAddress(targetAddress);
			target.setVersion(SnmpConstants.version2c);

			PDU pdu = new PDU();
			pdu.setType(PDU.TRAP);

			OID OVO_STRING_TYPE_OID = new OID("1.3.6.1.2.1.1.5.0");
			OID OVO_ALARM_LEVEL_OID = new OID("1");

			
			VariableBinding vb = new VariableBinding();
			
			vb.setOid(OVO_STRING_TYPE_OID);
			vb.setVariable(new OctetString(alarme));
			pdu.add(vb);
			
			vb.setOid(OVO_ALARM_LEVEL_OID);
			vb.setVariable(new OctetString("Critical"));
			pdu.add(vb);

			DefaultUdpTransportMapping udpTransportMap = new DefaultUdpTransportMapping();
			
		    snmp = new Snmp(udpTransportMap);
		    snmp.addCommandResponder(this);
		    
		    ResponseEvent response =  snmp.send(pdu, target);
		    System.out.println("PDU de TRAP enviado:"+pdu);
		    System.out.println("Resposta:"+response);
		        
		    snmp.close();

		} catch (Exception e) {
			e.printStackTrace();
		}

Se for só para enviar um TRAP, esse código ai funciona :slight_smile:

Duvida, o que é uma Trap SNMP?

Cara, SNMP é um protocolo de gerenciamento de redes onde você tem agentes e centrais de gerenciamento.
Na maior parte da comunicação, a central envia uma requisição para algum agente, e o agente responde com os dados requisitados.

Em determinadas situações, no entanto, pode ser necessário que o agente infome algo à central de gerenciamento (como a ocorrência de uma falha, por exemplo), nessa situação o agente envia um TRAP para a central, que NÃO possui respota; ele simplesmente envia, sem confirmação de chegada.

ok?

Ahh… entendi.

Tava pensando literalmente que era uma Trap e era uma cilada para o servidor o.0

Valeu!

Olá xdraculax,
Tenho uma maquina que deve funciona como um agent SNMP, toda vez que ocorrer um erro na minha aplicação indicando o que ocorreu. Vc tem como postar a classe completa aqui pq tem coisas neste codigo que ficaram um pouco obscuras para mim. Como :

vb.setVariable(new OctetString(alarme));  
    • A variavel alarme de qual tipo ela é e o que ela contém?
snmp.addCommandResponder(this); 

2)-Qual o tipo da classe deste metodo? Estende alguem?

3)-Como eu incluo meu o erro que ocorreu na minha aplicação no pacote SNMP?

Desde já agradeço a atenção![code]

Boas…

Estou a tentar enviar uma notificacao do agent para o gestor sempre que uma váriavel da minha mib e alterada.
No entanto nao estou a conseguir.
Alguem me consegue ajudar?

O que é necessario fazer no testAgent ou na mib?

Desde ja o meu obrigago…