2014-01-15 5 views
0

Моя проблема - уровень журнала предупреждения этого snmp4j, который отправлен отправителем в качестве младшего уровня журнала, но мне нужно получить сообщение уровня журнала предупреждений, что-то вроде, если я должен был использовать уведомления coldstart или warnstart pdu , может ли кто-нибудь помочь с этой ошибкой?Уровень журнала регистрации snmp4j

public TrapSenderVersion2(String trapIpDestination, int trapPort, 
      String message) { 
     try { 
      String aMessage = message; 
      // Create PDU 
      PDU trap = new PDU(); 
      trap.setType(PDU.NOTIFICATION); 
      // trap.setType(PDU.REPORT); 

      String baseString = ".1.3.6.1.4.1.6400."; 

      OID oid = new OID(baseString); 
      trap.add(new VariableBinding(SnmpConstants.sysUpTime, 
        new TimeTicks(5000))); // put your uptime here 
      trap.add(new VariableBinding(SnmpConstants.snmpTrapOID, 
        SnmpConstants.coldStart)); 
      trap.add(new VariableBinding(SnmpConstants.sysDescr, 
        new OctetString("Monitor app"))); 
      // Add Payload 
      Variable messaage = new OctetString(aMessage); 
      trap.add(new VariableBinding(oid, messaage)); 

      // need to specify the system up time 
      // trap.add(new VariableBinding(SnmpConstants.sysUpTime, 
      // new OctetString(new Date().toString()))); 
      // trap.add(new VariableBinding(SnmpConstants.snmpTrapOID, new OID(
      // Oid))); 
      // trap.add(new VariableBinding(SnmpConstants.snmpTrapAddress, 
      // new IpAddress(ipAddress))); 

      // trap.add(new VariableBinding(new OID(oid), new OctetString(
      // "Major"))); 
      // trap.setType(PDU.NOTIFICATION); 

      // Specify receiver 
      Address targetaddress = new UdpAddress(trapIpDestination + "/" 
        + trapPort); 
      CommunityTarget target = new CommunityTarget(); 
      target.setCommunity(new OctetString("public")); 
      target.setVersion(SnmpConstants.version2c); 
      target.setAddress(targetaddress); 

      // Send 
      Snmp snmp = new Snmp(new DefaultUdpTransportMapping()); 
      snmp.send(trap, target, null, null); 
     } catch (IOException e) { 
      System.out.println("Error Sending Trap: " + e.getMessage()); 
      e.printStackTrace(); 
     } 
    } 

    public static void main(String[] args) throws Exception { 
     new TrapSenderVersion2("192.168.1.31", Integer.parseInt("162"), 
       "Test Trap Message"); 
    } 
} 

ответ

0

Прежде всего, OIDs сделать не начало с точкой. Вы должны удалить его, чтобы избежать ошибок и улучшить производительность своих программ.

Что касается вашего вопроса: в SNMP не указывается понятие «класс серьезности» для ловушек/уведомлений. Таким образом, он должен быть частью спецификации MIB специфического для поставщика TRAP-TYPE или NOTIFICATION-TYPE. Идея не иметь серьезности в стандарте SNMP заключалась в том, что получатель должен иметь возможность решить, является ли событие серьезным или нет.

Итак, в вашем случае я бы подумал, что вам нужно указать «уровень журнала» в приложении приемника ловушки, а не в коде отправителя.

Смежные вопросы