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

는 OID를가 점으로 하지 시작을한다. 오류를 방지하고 프로그램 성능을 향상 시키려면이를 제거해야합니다.

질문 : SNMP는 트랩/알림에 "심각도 등급"과 같은 개념을 지정하지 않습니다. 따라서 벤더 특정 트랩 유형 또는 통지 유형의 MIB 스펙의 일부 여야합니다. SNMP 표준에서 심각성을 갖지 않는다는 생각은 수신자가 이벤트가 심각한지 여부를 결정할 수 있어야한다는 것입니다.

그래서, 귀하의 경우에는 "송신자 코드가 아닌 트랩 수신기 응용 프로그램에서"로그 수준 "을 지정해야한다고 생각합니다.