Pergunta

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

pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.100.1.1"), new Counter64(System.currentTimeMillis())));
pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.100.2.1"), new OctetString("some string")));

TransportMapping transport = null;
Snmp snmp = null;

try {
    transport = new DefaultUdpTransportMapping();
    transport.listen();

    snmp = new Snmp(transport);
    snmp.send(pdu, getCommunityTarget());
} catch (Exception e) {
    // error occurred
}

É assim que envio minha armadilha do SNMP para aumentar o alarme. Estou definindo uma varível no agente SNMP e navego no navegador MIB. Quero saber que se eu definir o tipo PDU como PDU.Trap. Funciona na porta 162 em vez de 161 e não consigo vê -lo no navegador MIB, mas no receptor de trap. Qual é a diferença? Qual é o objetivo de usar o PDU.trap? Como meu agente pode pegá -lo? Qual é a melhor prática para levantar e limpar alarmes?

Foi útil?

Solução 2

Ao implementar uma entidade SNMP, muitas vezes é melhor implementar o chamado conceito de "Pesquisa direcionada para armadilhas", em vez de um simples "remetente de armadilha". Para o último SNMP4J, pode ser usado para fora do peito, pois o primeiro snmp4j-agent pode ser usado. Isso também é licenciado sob a licença de código aberto Apache 2.

Como as armadilhas podem se perder na rede, a abordagem de poliação direcionada a trap tem muitas vantagens, embora precise de mais (poucos) esforços para implementar a parte do agente.

Sobre a pergunta original:

  • Ao enviar uma PDU definida, você pede ao comando respondente (agente) para alterar algumas informações em sua entidade.
  • Ao enviar uma armadilha ou melhor notificação PDU, você deseja informar o gerador de comando (gerente) sobre um evento. Com o conceito de polpa direcionado a trap, o gerador de comando também enviava solicitações GET regularmente (por exemplo, a cada 5 minutos) em *objetos lastchanged para detectar eficazmente mudanças de dados em certas sub-árvores (criticais) do MIB do respondente de comando. Se uma alteração for detectada (através de uma PDU de notificação ou da pesquisa, os dados alterados serão solicitados do respondente COMAMND pelo gerador de comando.

Outras dicas

A diferença está nas funções: o conjunto é executado por um gerente contra um agente, e o TRAP é o inverso. O SNMP4J básico suporta apenas a implementação de um gerente SNMP. Isto é possível também implementar alguns aspectos de um agente, mas não triviais. É difícil dizer qual desses dois você está realmente tentando implementar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top