NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: SKYnv on October 24, 2012, 08:47:05 AM

Title: snmp varbind conversation bug
Post by: SKYnv on October 24, 2012, 08:47:05 AM
в продолжении проблем описаных в теме баги 1.2.3, виктор без вас ну никак не разобраться.
установил varbind conversation в 0

результат вывода в alarm log
Quote[Normal]   N_Industrialnaya_14_str11   MAC notification. (1.3.6.1.4)
вывод в traps log
Quote24.10.2012 11:27:04   192.168.7.9   N_Industrialnaya_14_str11   .1.3.6.1.4.1.171.11.63.6.2.20.0.2   .1.3.6.1.2.1.1.3.0 == '89024'; .1.3.6.1.6.3.1.1.4.1.0 == '.1.3.6.1.4.1.171.11.63.6.2.20.0.2'; .1.3.6.1.4.1.171.11.63.6.2.20.2.1 == '1.3.6.1.4'
вывод в traps log с varbind conversation 1
Quote17.10.2012 16:12:59   192.168.7.9   N_Industrialnaya_14_str11   .1.3.6.1.4.1.171.11.63.6.2.20.0.2   .1.3.6.1.2.1.1.3.0 == '5461878'; .1.3.6.1.6.3.1.1.4.1.0 == '.1.3.6.1.4.1.171.11.63.6.2.20.0.2'; .1.3.6.1.4.1.171.11.63.6.2.20.2.1 == '01 31 2E 33 2E 36 2E 31 2E 34 '

то есть получается что netxms не берет значение параметра .1.3.6.1.4.1.171.11.63.6.2.20.2.1 где находиться мак адрес
а берет непонятно откуда взятое '1.3.6.1.4' и его собственно уже кновертирует в hex string
строка '1.3.6.1.4' это и есть '01 31 2E 33 2E 36 2E 31 2E 34' в hex формате.

Викто, поможете?
Title: Re: snmp varbind conversation bug
Post by: Victor Kirhenshtein on October 24, 2012, 10:44:37 PM
А можно получить дамп пакетов с трапами? И как сконфигурен сам трап в NetXMS?
Title: Re: snmp varbind conversation bug
Post by: SKYnv on October 25, 2012, 08:08:05 AM
Quote from: Victor Kirhenshtein on October 24, 2012, 10:44:37 PM
А можно получить дамп пакетов с трапами? И как сконфигурен сам трап в NetXMS?
дамп во вложении и пример настройки трэпа тоже, я по всякому пробовал, и прописыванием oid varbind'а. Последняя попытка была позициями указать, однако все равно такая вот канитель. Результат одинаковый во всех случаях.
Title: Re: snmp varbind conversation bug
Post by: SKYnv on October 29, 2012, 04:18:28 PM
удалось воспроизвести?
Title: Re: snmp varbind conversation bug
Post by: Victor Kirhenshtein on October 29, 2012, 11:46:54 PM
Воспроизвести на моих устройствах не удалось. Теперь собираюсь попробовать прямо в ишодниках подсунуть пакеты из дампа - тогда по идее должно повториться.
Title: Re: snmp varbind conversation bug
Post by: SKYnv on October 30, 2012, 06:04:01 PM
Quote from: Victor Kirhenshtein on October 29, 2012, 11:46:54 PM
Воспроизвести на моих устройствах не удалось. Теперь собираюсь попробовать прямо в ишодниках подсунуть пакеты из дампа - тогда по идее должно повториться.
беда с длинными строками что ли? Завтра буду менять железо на котором крутиться и ось апгредйить если повториться то отпишусь.
Будет FreeBSD 9.0 x64 плюс заместо mysql будет Percona (хотя одно и тоже по сути), в виртуалке все запускалось без проблем. Есть мысль еще обновить порт для freebsd по наличии свободного времени, но с этим до 1.2.4 подожду наверно.
Title: Re: snmp varbind conversation bug
Post by: Victor Kirhenshtein on November 01, 2012, 09:55:49 PM
Попробовал у себя - все работает как надо:

[01-Nov-2012 21:38:52] SNMPTrapReceiver: looking for SNMP security context for node 192.168.64.1 HP6440B
[01-Nov-2012 21:38:52] SNMPTrapReceiver: received PDU of type 4
[01-Nov-2012 21:38:52] Received SNMP TRAP .1.3.6.1.4.1.171.11.63.6.2.20.0.2 from 192.168.64.1
[01-Nov-2012 21:38:52] SNMPTrapReceiver: looking for SNMP security context for node 192.168.64.1 HP6440B
[01-Nov-2012 21:38:52] EVENT 500 (ID:7983 F:0x0001 S:0 TAG:"") FROM HP6440B: SNMP trap received: .1.3.6.1.4.1.171.11.63.6.2.20.0.2 (Parameters: .1.3.6.1.2.1.1.3.0 == '5550541'; .1.3.6.1.6.3.1.1.4.1.0 == '.1.3.6.1.4.1.171.11.63.6.2.20.0.2'; .1.3.6.1.4.1.171.11.63.6.2.20.2.1 == '02 B8 70 F4 8D 20 AB 00 07 00 ')

Похоже жто проблема возникает не при обработке пакета, а при получении значения в качестве текстовой строки. Наскольку я помню, у вас UNICODE сборка сервера? Тогда возможно проблема в настройках CodePage. Если он стоит в UTF-8 скажем, то iconv (библиотека конвертации, которую использует сервер) скорее всего воспримет строку как некорректно сформированную, и прекратит конвертацию, оставив в буфере мусор.
Title: Re: snmp varbind conversation bug
Post by: SKYnv on November 01, 2012, 10:20:55 PM
Quote from: Victor Kirhenshtein on November 01, 2012, 09:55:49 PM
Попробовал у себя - все работает как надо:

[01-Nov-2012 21:38:52] SNMPTrapReceiver: looking for SNMP security context for node 192.168.64.1 HP6440B
[01-Nov-2012 21:38:52] SNMPTrapReceiver: received PDU of type 4
[01-Nov-2012 21:38:52] Received SNMP TRAP .1.3.6.1.4.1.171.11.63.6.2.20.0.2 from 192.168.64.1
[01-Nov-2012 21:38:52] SNMPTrapReceiver: looking for SNMP security context for node 192.168.64.1 HP6440B
[01-Nov-2012 21:38:52] EVENT 500 (ID:7983 F:0x0001 S:0 TAG:"") FROM HP6440B: SNMP trap received: .1.3.6.1.4.1.171.11.63.6.2.20.0.2 (Parameters: .1.3.6.1.2.1.1.3.0 == '5550541'; .1.3.6.1.6.3.1.1.4.1.0 == '.1.3.6.1.4.1.171.11.63.6.2.20.0.2'; .1.3.6.1.4.1.171.11.63.6.2.20.2.1 == '02 B8 70 F4 8D 20 AB 00 07 00 ')

Похоже жто проблема возникает не при обработке пакета, а при получении значения в качестве текстовой строки. Наскольку я помню, у вас UNICODE сборка сервера? Тогда возможно проблема в настройках CodePage. Если он стоит в UTF-8 скажем, то iconv (библиотека конвертации, которую использует сервер) скорее всего воспримет строку как некорректно сформированную, и прекратит конвертацию, оставив в буфере мусор.
да unicode, а как бороться? или удостовериться?
Title: Re: snmp varbind conversation bug
Post by: Victor Kirhenshtein on November 01, 2012, 10:22:28 PM
Главное что стоит в параметре CodePage в netxmsd.conf. Там не должно быть UTF-8.
Title: Re: snmp varbind conversation bug
Post by: SKYnv on November 06, 2012, 12:58:05 PM
Quote from: Victor Kirhenshtein on November 01, 2012, 10:22:28 PM
Главное что стоит в параметре CodePage в netxmsd.conf. Там не должно быть UTF-8.

не помогает Виктор.

Пробовал с пустым CodePage
и с ISO8859-1

в первом случае варбинды пусты.
во втором нечитаемые символы, а именно 023f703f3f3f3f

С момента теста поменялась операционка на которой крутится сервер и версия сервера
freebsd 8.3x32 >> freebsd 9.0x64
netxms 1.2.3.1 >> netxms 1.2.4

Возможно ли как-нибудь локализовать проблему?

Виктор поправка.
Включил AllowTrapVarbindsConversion=1 и варбинд развернулся нормально
[Normal]   N_Industrialnaya_14_str11   MAC notification. (01 B8 70 F4 8D 86 AB 00 15 00 )
Тогда еще вопрос, данную строку я могу обработать скриптом? чтобы выделить мак, порт, состояние. В каком месте тогда это лучше проделать? в самом ивенте по <my_script(%2)> ?
Title: Re: snmp varbind conversation bug
Post by: Victor Kirhenshtein on November 06, 2012, 04:19:49 PM
Если надо выделить часть этого значения и вставить в текст сообщения в событии, то наверное да, самое правильное место будет вызывать скрипт через макрос в тексте. Только это будет %[script] (квадратные скобки, не угловые).
Title: Re: snmp varbind conversation bug
Post by: SKYnv on November 06, 2012, 09:22:35 PM
Quote from: Victor Kirhenshtein on November 06, 2012, 04:19:49 PM
Если надо выделить часть этого значения и вставить в текст сообщения в событии, то наверное да, самое правильное место будет вызывать скрипт через макрос в тексте. Только это будет %[script] (квадратные скобки, не угловые).
да, угловые это атрибуты. так а передача пармаетра?

%[my_script(%3)]
и
sub main(s)
{
return s;
}

Возвращают пустую строку.
хотя
%[my_script]
и
sub main()
{
return "my string";
}

Отрабатывает нормально.

есть какой-то секрет с передачей параметра?
Title: Re: snmp varbind conversation bug
Post by: Victor Kirhenshtein on November 06, 2012, 10:33:27 PM
В скрипты, вызываемые через %[], параметры передать нельзя. Но скрипт, вызванный таким образом, получает те-же переменные, что и скрипт в Event Processing Policy - $node, $event, и параметры события в $1, $2, и т.д.