Trap/VarBind

Started by Lexsus, December 19, 2010, 02:20:00 PM

Previous topic - Next topic

Lexsus

Ситуация в следующем: есть trap с OID .1.3.6.1.4.1.171.11.63.6.2.20.0.2
так же имеется VarBind .1.3.6.1.4.1.171.11.63.6.2.20.2.1 имеющая тип OCTET STRING
Создан: SNMP Trap-Event-Event policy
когда приходит trap создается alarm который я вижу
Необходимо извлечь информацию из VarBind`а и поместить ее в аларм, подскажите пож. как это сделать????
PS ..В Evente Messasge Template необходимо указать (%2), я правильно пинимаю???
   ...Если это правильно то почему в логах видно только квадрат и никих значений??   

Victor Kirhenshtein

Vrode vse pravil'no. Esli viden kvadrat v tekste, to scoree vsego octet string soderzit nepechataemij tekst. Octet string ne objazatel'no oznachaet stroku, naprimer MAC adres toze vozvraschaetsja kak octet string. A mozno bilo bi prislat' opisanie trapa?

Lexsus

Trap Name/OID: swL2macNotification/ .1.3.6.1.4.1.171.11.63.6.2.20.0.2-необходима для отсылки уведомляющих сообщений - trap - по протоколу SNMP на платформу сетевого управления,функция отсылает уведомляющие сообщения в случае добавления, удаления или изменения МАС адресов на тех портах коммутатора, на которых она настроена.
Variable Bind: swL2macNotifyInfo - насколько я понимаю здесь должна содержаться информация следующего характера:Type (тип действия) + MAC адрес + ID устройства + Номер порта + Окончание.(00 000000000000 0000 0000 00)

Victor Kirhenshtein

V internete nashel tol'ko takuju informaciju po etomu varbindu:

swL2macNotifyInfo   OBJECT-TYPE
        SYNTAX  OCTET STRING(SIZE (0..1024))
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the last time reboot information.
            "
        ::= { swl2NotificationBidings 1 }   

V ljubom sluchae pohoze chto tam ne tekstovaja informacija. Esli znat' format, to mozno poprobovat' preobrazovat' ee v normal'nij vid pri pomoschi NXSL skripta. Esli ne pomozet, to nado budet delat' patch - v ljubom sluchae polezno budet dobavit' normal'nij processing binarnih dannih v varbindah. Bilo bi ochen' polezno uznat' bse ze detal'nij format etogo polja, po baitam - skol'ko bait kakaja chast' zanimaet i v kakom formate hranitsja.

Lexsus

Судя по тому что пишут на сайте производителя там содержится следующая информация:

Hex-STRING: 02 00 03 47 41 39 C9 00 01 00 12 00:

02==>type(01:add 02:remove 03:move)

00 03 47 41 39 C9==> MAC address

00 01==>unit

00 12==>port

00==>reserved

Если это поможет, то не могли бы подсказать как это преобразовать в читабельный вид?


Lexsus

#5
Я заметил, следующее:
Например при считывании MAC адресов с коммутатора из таблицы коммутации при помощи snmpwalk выдает следующее:
SNMPv2-SMI::mib-2.17.4.3.1.1.0.8.161.157.87.89 = Hex-STRING: 00 08 A1 9D 57 59
SNMPv2-SMI::mib-2.17.4.3.1.1.0.18.207.53.215.96 = Hex-STRING: 00 12 CF 35 D7 60
SNMPv2-SMI::mib-2.17.4.3.1.1.0.19.119.241.215.176 = Hex-STRING: 00 13 77 F1 D7 B0
SNMPv2-SMI::mib-2.17.4.3.1.1.0.19.212.134.66.152 = Hex-STRING: 00 13 D4 86 42 98
SNMPv2-SMI::mib-2.17.4.3.1.1.0.20.209.108.173.9 = Hex-STRING: 00 14 D1 6C AD 09
SNMPv2-SMI::mib-2.17.4.3.1.1.0.24.113.235.204.5 = Hex-STRING: 00 18 71 EB CC 05
SNMPv2-SMI::mib-2.17.4.3.1.1.0.24.113.235.229.5 = Hex-STRING: 00 18 71 EB E5 05

При этом делая walk в NetXms по тому же OID в поле "Value" пусто, подскажите в чем может быть проблема???

Victor Kirhenshtein

Проблема в том, что NetXMS рассматривает тип OCTET STRING как текст, что не всегда правильно. snmpwalk проверяет строку на наличие непечатаемых символов, и если они есть, печатает всю строку как Hex-String. Я думаю в настройках SNMP трапов добавить опцию возвращать результат как hex string, тогда дальше можно будет сделать необходиимую обработку скриптами.

Lexsus

#7
Уважаемый Victor Kirhenshtein спасибо за ответ, очень хотелось бы иметь такую возможность.
Насколько я понял на данном этапе нельзя добиться нормального отображения данных типа OCTET STRING?
Как можно будет узнать, когда появится опция возвращания результата как hex string?

Victor Kirhenshtein

Начиная с версии 1.0.9 данные типа OCTET STRING автоматически конвертируются в Hex формат, если содержат непечатаемые символы. Это можно отключить, выстави параметр сервера AllowTrapVarbindsConversion в значение 0.
Также в версии 1.0.9 nxsnmpget, nxsnmpwalk, и MIB Browser в консоли автоматически конвертируют OCTET STRING в Hex формат, если те содержат непечатаемые символы - по аналогии с утилитами из пакета Net-SNMP.

Lexsus

#9
Спасибо, все работает..:)
Правда не вижу в Server Configuration вот этого параметра "AllowTrapVarbindsConversion"?
Параметр необходимо создать самому?

Victor Kirhenshtein

Quote from: Lexsus on January 22, 2011, 12:21:30 PM
Правда не вижу в Server Configuration вот этого параметра "AllowTrapVarbindsConversion"?
Параметр необходимо создать самому?

Да. По умолчанию используется значение 1, т.е. создавать его надо если необходимо получить поведение сервера как в предыдущих версиях.