Ситуация в следующем: есть 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), я правильно пинимаю???
...Если это правильно то почему в логах видно только квадрат и никих значений??
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?
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)
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.
Судя по тому что пишут на сайте производителя там содержится следующая информация:
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
Если это поможет, то не могли бы подсказать как это преобразовать в читабельный вид?
Я заметил, следующее:
Например при считывании 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" пусто, подскажите в чем может быть проблема???
Проблема в том, что NetXMS рассматривает тип OCTET STRING как текст, что не всегда правильно. snmpwalk проверяет строку на наличие непечатаемых символов, и если они есть, печатает всю строку как Hex-String. Я думаю в настройках SNMP трапов добавить опцию возвращать результат как hex string, тогда дальше можно будет сделать необходиимую обработку скриптами.
Уважаемый Victor Kirhenshtein спасибо за ответ, очень хотелось бы иметь такую возможность.
Насколько я понял на данном этапе нельзя добиться нормального отображения данных типа OCTET STRING?
Как можно будет узнать, когда появится опция возвращания результата как hex string?
Начиная с версии 1.0.9 данные типа OCTET STRING автоматически конвертируются в Hex формат, если содержат непечатаемые символы. Это можно отключить, выстави параметр сервера AllowTrapVarbindsConversion в значение 0.
Также в версии 1.0.9 nxsnmpget, nxsnmpwalk, и MIB Browser в консоли автоматически конвертируют OCTET STRING в Hex формат, если те содержат непечатаемые символы - по аналогии с утилитами из пакета Net-SNMP.
Спасибо, все работает..:)
Правда не вижу в Server Configuration вот этого параметра "AllowTrapVarbindsConversion"?
Параметр необходимо создать самому?
Quote from: Lexsus on January 22, 2011, 12:21:30 PM
Правда не вижу в Server Configuration вот этого параметра "AllowTrapVarbindsConversion"?
Параметр необходимо создать самому?
Да. По умолчанию используется значение 1, т.е. создавать его надо если необходимо получить поведение сервера как в предыдущих версиях.