Отправка OID в заголовке SNMP Trap

У меня есть Java-приложение, которое отправляет SNMP-ловушки с использованием SNMP4J. Проблема в том, что OID отправляется в теле ловушки. Все данные, которые я устанавливаю, успешно отправлены, но в теле ловушки. Я хочу, чтобы Oid отправлялся в заголовке ловушки.

Как я могу отправить Oid в заголовке Trap?

    UdpAddress managerUdpAddress = new UdpAddress("address");

    CommunityTarget ctarget = new CommunityTarget();
    ctarget.setAddress(managerUdpAddress);
    ctarget.setRetries(retryCount);
    ctarget.setCommunity(new OctetString(community));
    ctarget.setTimeout(timeout);
    ctarget.setVersion(SnmpConstants.version2c);

    PDU trap = new PDU();

    OID oid = new OID(myOid);
    trap.add(new VariableBinding(SnmpConstants.snmpTrapOID, oid));
    trap.add(new VariableBinding(SnmpConstants.sysUpTime, new TimeTicks(5000)));                
    trap.add(new VariableBinding(SnmpConstants.sysDescr, new OctetString(
        "System Description")));
    trap.add(new VariableBinding(oid, new OctetString(message)));

    DefaultUdpTransportMapping  transport = new DefaultUdpTransportMapping();

    Snmp snmp = new Snmp(transport);

    snmp.notify(trap, ctarget);

Когда ИБП отправляет ловушку SNMP, OID отображается в заголовке ловушки SNMP. Вот примеры:

Ловушка от UPS:

Пн Мар 18 04:13:18 2019 .1.3.6.1.4.1.935.0.49 Нормальный "SNMP EVENT" xxxx - UPS_212_bypass_ac_normal SNMP TRAP: байпас переменного тока нормальный

Ловушка от JAVA:

Пн мар 18 05:25:36 2019 .0.00 Критическое "SNMP EVENT" xxxx - ошибки моего приложения в snmp: Описание системы Общая ошибка. Размер =2"

2 ответа

Решение

Я сделал это, добавив этот код:

trap.setType(PDU.TRAP);
trap.add(new VariableBinding(oid));

Теперь ловушка SNMP, отправленная с Java, выглядит следующим образом:

Чт 21 марта 15:16:51 2019 .1.3.6.1.6.3.1.1.7.1.6 Критическое "событие SNMP" xxxx - ошибки моего приложения в snmp: Описание системы Общая ошибка. Размер =2"

Формат SNMP TRAP имеет фиксированную структуру, определенную в RFC 1157 или RFC 3412 (в случае SNMPv3). Эта структура состоит из заголовка и PDU (блока данных пакета). PDU - это набор так называемых привязок переменных. Каждая привязка имеет OID, синтаксис и значение. Таким образом, вы можете изменить только часть PDU. Структура заголовка не может быть изменена.

Другие вопросы по тегам