netxms snmp table

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

Previous topic - Next topic

Victor Kirhenshtein

А как показывает даты из .1.3.6.1.2.1.25.6.3.1 snmpwalk?

andrey--k


HOST-RESOURCES-MIB::hrSWInstalledDate.9 = STRING: 2014-1-20,19:1:46.0
HOST-RESOURCES-MIB::hrSWInstalledDate.10 = STRING: 2014-1-20,19:1:46.0
HOST-RESOURCES-MIB::hrSWInstalledDate.11 = STRING: 2014-1-20,19:1:46.0
HOST-RESOURCES-MIB::hrSWInstalledDate.12 = STRING: 2014-1-20,19:1:46.0
HOST-RESOURCES-MIB::hrSWInstalledDate.13 = STRING: 2014-1-20,19:1:46.0
HOST-RESOURCES-MIB::hrSWInstalledDate.14 = STRING: 2014-1-20,19:1:46.0
HOST-RESOURCES-MIB::hrSWInstalledDate.15 = STRING: 2014-1-20,19:1:46.0
HOST-RESOURCES-MIB::hrSWInstalledDate.16 = STRING: 2014-1-20,19:1:44.0
HOST-RESOURCES-MIB::hrSWInstalledDate.17 = STRING: 2014-1-20,19:1:46.0
HOST-RESOURCES-MIB::hrSWInstalledDate.18 = STRING: 2014-1-20,19:1:46.0
HOST-RESOURCES-MIB::hrSWInstalledDate.19 = STRING: 2014-1-20,19:1:46.0

andrey--k

А вот замечательный пример "недорасшифрованной строки"

HOST-RESOURCES-MIB::hrDeviceDescr.3 = STRING: Red Hat VirtIO Ethernet Adapter - <CC><E8><ED><E8><EF><EE><F0><F2> <EF><EB>
<E0><ED><E8><F0><EE><E2><F9><E8><EA><E0> <EF><E0><EA><E5><F2><EE><E2>
HOST-RESOURCES-MIB::hrDeviceDescr.4 = STRING: Red Hat VirtIO Ethernet Adapter #2 - <CC><E8><ED><E8><EF><EE><F0><F2> <EF><EB>
<E0><ED><E8><F0><EE><E2><F9><E8><EA><E0> <EF><E0><EA><E5><F2>

Victor Kirhenshtein

Да, действительно, в MIB'е есть описание конвертации:

DateAndTime ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "2d-1d-1d,1d:1d:1d.1d,1a1d:1d"

кто бы мог подумать :) Сейчас наш MIB компилятор поле DISPLAY-HINT игнорирует, я добавлю feature request на это.

andrey--k

По поводу mib-компилятора...
Думаю вам будет интересно взглянуть на mib2c из net-snmp.

andrey--k

Решил задачу через динамические DCI. Там пишет raw (hex) в БД.

Спасибо.

andrey--k

Quote from: andrey--k on March 04, 2014, 11:09:53 PM
Решил задачу через динамические DCI. Там пишет raw (hex) в БД.

Спасибо.
Решение оказалось неудачным.
Сервер начал потреблять очень много ОЗУ.
Буду пробовать реализовать поддержку CP1251.

Подскажите пожалуйста, deb пакеты в последней версии (1.2.12), для Debian Wheezy, скомпилированы с  --enable-UNICODE ?

andrey--k

Приведите пожалуйста пример создания Transformatin script для SNMP-table.

Victor Kirhenshtein

Quote from: andrey--k on March 05, 2014, 12:08:26 PM
Quote from: andrey--k on March 04, 2014, 11:09:53 PM
Решил задачу через динамические DCI. Там пишет raw (hex) в БД.

Спасибо.
Решение оказалось неудачным.
Сервер начал потреблять очень много ОЗУ.
Буду пробовать реализовать поддержку CP1251.

Подскажите пожалуйста, deb пакеты в последней версии (1.2.12), для Debian Wheezy, скомпилированы с  --enable-UNICODE ?

Да, с UNICODE.

Victor Kirhenshtein

Quote from: andrey--k on March 05, 2014, 04:34:01 PM
Приведите пожалуйста пример создания Transformatin script для SNMP-table.

Вот пример скрипта для таблицы - списка процессов на Cisco рутере. Колонку TIME из микросекунд переводим в проценты. В аттаче шаблон с етой таблицей, чтобы можно было посмотреть всю конфигурацию целиком.


ciTime = $1->getColumnIndex("TIME");
for(row = 0; row < $1->rowCount; row++)
{
value = $1->get(row, ciTime);
$1->set(row, ciTime, value * 100 / 1000000);
}


andrey--k

Quote from: Victor Kirhenshtein on March 05, 2014, 10:42:16 PM
Да, с UNICODE.
Переставил чистую виртуалку (Debian 7.4)
Пересобрал с исходников netxms 1.2.12.
конфиг:
./configure --with-server --with-agent --with-all-static --with-mysql --with-snmp --enable-static --enable-unicode --disable-xmpp

В логе при старте:
[06-Mar-2014 00:01:12.720] Log file opened
[06-Mar-2014 00:01:12.720] [DEBUG] Code page set to CP1251


Кирилица все равно не собирается нормально.
:(

Я что-то упускаю, но не могу понять что именно :(

Victor Kirhenshtein

Сервер не надо со статикой собирать, ничего хорошего из этого не выйдет. Правильней будет так:

./configure --with-server --with-mysql --enable-unicode --disable-xmpp

и как выглядит summary после отработки configure?

andrey--k

Quote from: Victor Kirhenshtein on March 06, 2014, 12:25:00 AM
Сервер не надо со статикой собирать, ничего хорошего из этого не выйдет. Правильней будет так:

./configure --with-server --with-mysql --enable-unicode --disable-xmpp

и как выглядит summary после отработки configure?
После моего:
---------------------------------------------------------------------
                         Configure results
---------------------------------------------------------------------

Prefix                  : /usr/local
Platform                : Linux
Shared library suffix   : .so
Build Server            : YES
Server libs             :  -lssl
XMPP support            : NO
Encryption enabled      : YES
Build DB-Drivers        : mysql
Build Clients           : NO
Build Agent             : YES
Subagents list          : linux
Build Static Agent      : NO
UNICODE build           : YES
Use internal libexpat   : YES
Use internal libtre     : YES
Use internal zlib       : NO
Force 32bit build       : NO
C compiler              : gcc
C++ compiler            : g++
CPPFLAGS                :  -D_THREAD_SAFE -DTRE_WCHAR=1 -I/usr/local/mysql/include -I/usr/include/mysql -I/usr/mysql/include -I/usr/local/include/mysql -I/usr/local/mysql/include/mysql -I/usr/mysql/include/mysql -DUNICODE -D_GNU_SOURCE -O2 -Wformat -I/usr/local/include -DPREFIX=L\"${prefix}\" -DDATADIR=L\"${pkgdatadir}\" -DBINDIR=L\"${bindir}\" -DLIBDIR=L\"${libdir}\" -DPKGLIBDIR=L\"${pkglibdir}\"
CXXFLAGS                : -g -O2 -fno-rtti -fno-exceptions
CFLAGS                  : -g -O2
LDFLAGS                 :   -L/usr/local/mysql/lib -L/usr/lib64/mysql -L/usr/lib/mysql -L/usr/mysql/lib -L/usr/local/lib/mysql -L/usr/local/mysql/lib/mysql -L/usr/mysql/lib/mysql -L/usr/local/lib
LIBS                    : -lz -ldl  -lpthread -lcrypto
MySQL libs              : -lmysqlclient

После предложенного Вами варианта
---------------------------------------------------------------------
                         Configure results
---------------------------------------------------------------------

Prefix                  : /usr/local
Platform                : Linux
Shared library suffix   : .so
Build Server            : YES
Server libs             :  -lssl
XMPP support            : NO
Encryption enabled      : YES
Build DB-Drivers        : mysql
Build Clients           : NO
Build Agent             : YES
Subagents list          : linux
Build Static Agent      : NO
UNICODE build           : YES
Use internal libexpat   : YES
Use internal libtre     : YES
Use internal zlib       : NO
Force 32bit build       : NO
C compiler              : gcc
C++ compiler            : g++
CPPFLAGS                :  -D_THREAD_SAFE -DTRE_WCHAR=1 -I/usr/local/mysql/include -I/usr/include/mysql -I/usr/mysql/include -I/usr/local/include/mysql -I/usr/local/mysql/include/mysql -I/usr/mysql/include/mysql -DUNICODE -D_GNU_SOURCE -O2 -Wformat -I/usr/local/include -DPREFIX=L\"${prefix}\" -DDATADIR=L\"${pkgdatadir}\" -DBINDIR=L\"${bindir}\" -DLIBDIR=L\"${libdir}\" -DPKGLIBDIR=L\"${pkglibdir}\"
CXXFLAGS                : -g -O2 -fno-rtti -fno-exceptions
CFLAGS                  : -g -O2
LDFLAGS                 :   -L/usr/local/mysql/lib -L/usr/lib64/mysql -L/usr/lib/mysql -L/usr/mysql/lib -L/usr/local/lib/mysql -L/usr/local/mysql/lib/mysql -L/usr/mysql/lib/mysql -L/usr/local/lib
LIBS                    : -lz -ldl  -lpthread -lcrypto
MySQL libs              : -lmysqlclient


Victor Kirhenshtein

Нашел баг похоже - при конвертации строк, полученных через SNMP, выставленный code page игнорируется. Судя по комментариям в коде - это зачем-то было надо. Подумаю как это можно решить. Нет возможности дать мне доступ по SNMP на какое-нибудь устройство, которое русские тексты по SNMP отдает? Это сильно помогло бы в отладке.

andrey--k

Quote from: Victor Kirhenshtein on March 06, 2014, 02:02:15 PM
Нашел баг похоже - при конвертации строк, полученных через SNMP, выставленный code page игнорируется. Судя по комментариям в коде - это зачем-то было надо. Подумаю как это можно решить. Нет возможности дать мне доступ по SNMP на какое-нибудь устройство, которое русские тексты по SNMP отдает? Это сильно помогло бы в отладке.
Попробую пробросить порт с виртуалки...
217.66.101.229:161