News:

We really need your input in this questionnaire

Main Menu

netxms snmp table

Started by andrey--k, February 17, 2014, 03:45:21 PM

Previous topic - Next topic

andrey--k

Я хочу вытягивать с ряда хостов таблицу с установленным софтом...
(.1.3.6.1.2.1.25.6.3.1)
Уже перепробовал пару десятков вариантов параметров. Не могу понять где ошибка...
Скриншоты:
https://drive.google.com/file/d/0B0SS9KVzB6egRmR5bXI0LVZoMlk/edit?usp=sharing
https://drive.google.com/file/d/0B0SS9KVzB6egMkFEcG1lX3d0QlU/edit?usp=sharing
Можете дать пример рабочей настройки любой snmp table?

Victor Kirhenshtein

А как выглядит результат snmpwalk по этой ветке?

andrey--k

См аттач

Victor Kirhenshtein

Надо в качестве имени параметра на закладке "General" указать .1.3.6.1.2.1.25.6.3.1.1 - тогда сервер получит правильные индексы для OID'ов в колонках.

andrey--k

Спасибо!
Заработало!

А коррекцию значений можно как-то из mib подтягивать или на каждый случай надо отдельный скрипт писать?
А то вместо времени hex выводит :(

Victor Kirhenshtein

Я посмотрел MIB - там не используется какой-то стандартный формат:

A date-time specification.

            field  octets  contents                  range
            -----  ------  --------                  -----
              1      1-2   year*                     0..65536
              2       3    month                     1..12
              3       4    day                       1..31
              4       5    hour                      0..23
              5       6    minutes                   0..59
              6       7    seconds                   0..60
                           (use 60 for leap-second)
              7       8    deci-seconds              0..9
              8       9    direction from UTC        '+' / '-'
              9      10    hours from UTC*           0..13
             10      11    minutes from UTC          0..59

            * Notes:
            - the value of year is in network-byte order
            - daylight saving time in New Zealand is +13

Так что надо будет писать transformation script на эту колонку.

andrey--k

не смог найти образца скрипта для парсинга/исправления значений для snmp table.
Подскажите, как делать отдельные скрипты для разных колонок.

Обнаружил нехорошую бяку в таблицах...
Вместо кириллицы (OID .1.3.6.1.2.1.25.6.3.1.2) - знаки вопроса.
Вместо строки с хексом (OID .1.3.6.1.2.1.25.6.3.1.5) - те же самые знаки вопроса :(

Можно ли заставить netxms писать в БД raw значения прибывшие по snmp?

see attach

Victor Kirhenshtein

Насчет русских букв - а в какой кодировке они по SNMP приходят? Я бы рекомендовал использовать UNICODE сборку сервера и поставить CodePage в netxmsd.conf в кодировку, используемую в SNMP.

andrey--k

Кодировки зависят от локали ПК... 1251, 1252, 886.
Установка кодировки в какую-то определенную даст только частичный результат :(

Хотелось бы все же иметь raw ответы... Там хоть конвертацию по словарю наладить можно...

andrey--k

Quote from: Victor Kirhenshtein on February 24, 2014, 11:14:52 AM
Насчет русских букв - а в какой кодировке они по SNMP приходят? Я бы рекомендовал использовать UNICODE сборку сервера и поставить CodePage в netxmsd.conf в кодировку, используемую в SNMP.
Какие варианты кодировок?
Я попробовал windows-1251 и cp1251.
Эфекта нет  :(

andrey--k

Quote from: andrey--k on February 24, 2014, 04:51:15 PM
Quote from: Victor Kirhenshtein on February 24, 2014, 11:14:52 AM
Насчет русских букв - а в какой кодировке они по SNMP приходят? Я бы рекомендовал использовать UNICODE сборку сервера и поставить CodePage в netxmsd.conf в кодировку, используемую в SNMP.
Какие варианты кодировок?
Я попробовал windows-1251 и cp1251.
Нашел на форуме рекомендацию поставить CP1251.
Поставил, перезапустил сервис.
Удалил и повторно добавил подопытную ноду.
Результат отсутствует.
/etc/netxmsd.conf

...
CodePage=CP1251
...

andrey--k

Можно ли заставить программу собирать расшифрованые при помощи mib файлов значения, вместо написания скриптов?

Victor Kirhenshtein

Quote from: andrey--k on February 26, 2014, 11:42:44 PM
Можно ли заставить программу собирать расшифрованые при помощи mib файлов значения, вместо написания скриптов?

А что значит "расшифрованные"? В рассматриваемом случае например формат поля описан в виде текстового комментария, а формально его формат OCTET STRING - система его и принимает как последовательность байтов. А по описанию на английском языке правильно разбирать поле - это уже ИИ нужен...

andrey--k

Часть полей указаны в mib как integer/unsigned/etc... С ними все сложно.
А вот по строкам... Та же строка даты/времени приходит в уже "красивом" виде из snmpwalk используя mib файл.
Да и еще много "подставных" строковых значений тоже...

andrey--k

Quote from: Victor Kirhenshtein on February 26, 2014, 11:49:00 PM
А по описанию на английском языке правильно разбирать поле - это уже ИИ нужен...
snmpget и snmpwalk ведь делают это без всякого ИИ на основании инструкций в MIB файле...
В данном случае snmpwalk при включенном mib файле выдает всего 2 варианта, причем они указаны в выводе:

.1.3.6.1.2.1.25.6.3.1.2.135 [Hex-STRING]: CE E1 ED EE E2 EB E5 ED E8 E5 20 E1 E5 E7 EE EF E0 F1 ED EE F1 F2 E8 20 E4 EB FF 20 57 69 6E 64 6F 77 73 20 58 50 20 28 4B 42 39 38 32 36 36 35 29
.1.3.6.1.2.1.25.6.3.1.2.136 [STRING]: Oracle VM VirtualBox Guest Additions 4.3.6

Для подавляющего большинства веток SNMP - типы указанны коректно...

[INTEGER]
[COUNTER32]
[COUNTER64]

Да и типов этих 10-15 да и закончились...