именование объектов.

Started by SKYnv, August 26, 2012, 12:37:21 PM

Previous topic - Next topic

SKYnv

неплохо бы добавить опцию для того откуда именно брать имя интерфейса. А то не всегда sysname бывает заполнен или бывает заполнен одинаково и в дереве объектов сотни объектов с одним и тем же именем.

Victor Kirhenshtein

Имеется ввиду именование хостов или интерфейсов?

SKYnv

Quote from: Victor Kirhenshtein on August 27, 2012, 12:56:47 PM
Имеется ввиду именование хостов или интерфейсов?
хостов.

SKYnv

Я так понимаю что из скриптов у $node->name сменить имя не получится?

SKYnv

Просто у нас в сети как правило
Quote.iso.org.dod.internet.mgmt.mib-2.system.sysName.0
либо не заполнен, либо имеет одинаковое название на некоторой группе устройств.
А поле
Quote.iso.org.dod.internet.mgmt.mib-2.system.sysLocation.0
заполнено корректо и для нормальной идентификации неплохо было бы отображать заместо имени локацию, или вообще сделать возможность задания того с какого оида брать имя для ноды.

Victor Kirhenshtein

Сейчас алгоритм присвоения имени хоста такой:

1. Если конфигурационная переменная ResolveNodeNames равна 0, то оставляем IP адрес как имя;
2. Делаем backresolve основного IP через DNS - если удачно, то ставим полученное DNS имя как имя ноды;
3. Делаем backresolve для всех интерфейсов, пока не получим имя;
4. Если на ноде есть агент, то запрашиваем значение параметра System.Hostname, и используем его как имя ноды;
5. Если на ноде есть SNMP, то запрашиваем OID .1.3.6.1.2.1.1.5.0.

Я думаю что самым гибким вариантом будет добавить функцию RenameObject в NXSL, и тогда можно будет отслеживать событие SYS_NODE_ADDED, и переименовывать ноды по необходимости.

SKYnv

Quote from: Victor Kirhenshtein on August 29, 2012, 03:39:02 PM
Сейчас алгоритм присвоения имени хоста такой:

1. Если конфигурационная переменная ResolveNodeNames равна 0, то оставляем IP адрес как имя;
2. Делаем backresolve основного IP через DNS - если удачно, то ставим полученное DNS имя как имя ноды;
3. Делаем backresolve для всех интерфейсов, пока не получим имя;
4. Если на ноде есть агент, то запрашиваем значение параметра System.Hostname, и используем его как имя ноды;
5. Если на ноде есть SNMP, то запрашиваем OID .1.3.6.1.2.1.1.5.0.

Я думаю что самым гибким вариантом будет добавить функцию RenameObject в NXSL, и тогда можно будет отслеживать событие SYS_NODE_ADDED, и переименовывать ноды по необходимости.
да renameObject будет идеальным вариантом. Честно говоря я очень редко встречал пропись нод в днсах, может в других местах и не так.
спасибо.


SKYnv

#8
Quote from: Victor Kirhenshtein on August 29, 2012, 09:33:25 PM
Сделал :)

http://wiki.netxms.org/wiki/NXSL:RenameObject
спасибо,я так понимаю что с версии 1.2.3 поддерживаются Unicode сборки и во freebsd? А то давно хочется базу в Unicode преобразовать чтобы нормально работать с русским языком.

А ну еще из замеченого, в консоли возможно выполнение команды

set debug
например, и эта переменная получит значение ""

Victor Kirhenshtein

Quote from: SKYnv on August 30, 2012, 06:28:51 AM
спасибо,я так понимаю что с версии 1.2.3 поддерживаются Unicode сборки и во freebsd? А то давно хочется базу в Unicode преобразовать чтобы нормально работать с русским языком.

На FreeBSD я не пробовал UNICODE сборку. Теоретически собраться должно. Если есть возможность, то можете проверить сборку - https://www.netxms.org/download/rc/netxms-1.2.3-rc4.tar.gz.

SKYnv

Quote from: Victor Kirhenshtein on August 30, 2012, 02:59:59 PM
Quote from: SKYnv on August 30, 2012, 06:28:51 AM
спасибо,я так понимаю что с версии 1.2.3 поддерживаются Unicode сборки и во freebsd? А то давно хочется базу в Unicode преобразовать чтобы нормально работать с русским языком.

На FreeBSD я не пробовал UNICODE сборку. Теоретически собраться должно. Если есть возможность, то можете проверить сборку - https://www.netxms.org/download/rc/netxms-1.2.3-rc4.tar.gz.
завтра попробую собрать. сегодняшний день я посветил jetty и запуску на нем веб интерфейса.

Victor Kirhenshtein

Веб можно попробовать вот этот: https://www.netxms.org/download/rc/nxmc-1.2.3-rc2.war - я переделал там немного CSS, теперь на мой взгляд выглядит получше.

SKYnv

Quote from: Victor Kirhenshtein on August 30, 2012, 10:29:28 PM
Веб можно попробовать вот этот: https://www.netxms.org/download/rc/nxmc-1.2.3-rc2.war - я переделал там немного CSS, теперь на мой взгляд выглядит получше.
Попробую завтра. На текущем +jetty 6 Не видно выделения, возможно jetty подглючивает или нужно попробывать обновить, но честно говоря установка данной версии напоминала квест.

SKYnv

#13
итак, параметры сборки

Quotesh ./configure --enable-unicode --with-server --with-mysql --with-snmp --with-client -with-agent --disable-64bit

проблемы возникли с агентом.

QuoteMaking all in freebsd
  CXX    freebsd.lo
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'const char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'const char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'const char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'const char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'const char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'const char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'const char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: cannot convert 'const char*' to 'const wchar_t*' in initialization
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:102: error: int-array initialized from non-wide string
freebsd.cpp:102: error: invalid conversion from 'LONG (*)(const char*, const char*, char*)' to 'LONG (*)(const wchar_t*, const wchar_t*, wchar_t*)'
freebsd.cpp:110: error: int-array initialized from non-wide string
freebsd.cpp:110: error: invalid conversion from 'LONG (*)(const char*, const char*, StringList*)' to 'LONG (*)(const wchar_t*, const wchar_t*, StringList*)'
freebsd.cpp:110: error: int-array initialized from non-wide string
freebsd.cpp:110: error: invalid conversion from 'LONG (*)(const char*, const char*, StringList*)' to 'LONG (*)(const wchar_t*, const wchar_t*, StringList*)'
freebsd.cpp:110: error: int-array initialized from non-wide string
freebsd.cpp:110: error: invalid conversion from 'LONG (*)(const char*, const char*, StringList*)' to 'LONG (*)(const wchar_t*, const wchar_t*, StringList*)'
freebsd.cpp:110: error: int-array initialized from non-wide string
freebsd.cpp:110: error: invalid conversion from 'LONG (*)(const char*, const char*, StringList*)' to 'LONG (*)(const wchar_t*, const wchar_t*, StringList*)'
freebsd.cpp:127: error: int-array initialized from non-wide string
*** Error code 1

печально, но
Quote--disable-agent или --without-agent
не оказывает никакого эффекта в параметрах как и вообще его неупоминание.

в общем эти две опции

Quotesh ./configure --with-server --with-mysql
автоматически включают и агент в сборку...

как его исключить из сборки то?

upd
сконфигурировал с
Quotesh ./configure --enable-unicode --with-server --with-mysql --with-snmp --with-client -without-agent --disable-64bit
и далее удалил /src/agent из recursive targets в /makefile и /src/makefile
Вроде собралось и установилось.

SKYnv

Quote from: Victor Kirhenshtein on August 30, 2012, 10:29:28 PM
Веб можно попробовать вот этот: https://www.netxms.org/download/rc/nxmc-1.2.3-rc2.war - я переделал там немного CSS, теперь на мой взгляд выглядит получше.
Да прекрасно работает, выделение тоже видно.

Quotenetxms# java -version
java version "1.6.0_07"
Diablo Java(TM) SE Runtime Environment (build 1.6.0_07-b02)
Diablo Java HotSpot(TM) Server VM (build 10.0-b23, mixed mode)
and
Quotenetxms# cd /usr/local/jetty
netxms# java -jar start.jar --version
null 6.1.26