Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - wonderboy

#16
Подскажите, как установить eclipse для экспериментов с консолью nxmc?
Первый раз использую eclipse и ошибки 'import ... cannot be resolved' загоняют в тупик(
Пробовал разные инструкции и https://www.netxms.org/forum/oe-oo/kom-eclipse-keta-oko/5, и https://wiki.netxms.org/wiki/How_to_setup_Eclipse/RAP и пробовал просто на eclipse поставить все из eclipse_addons.txt. Но либо eclipse не резолвит стандартные библиотеки (например org.eclipse.core.commands.), либо по ссылке http://download.eclipse.org/tools/gef/updates/milestones/ нет draw2d, либо еще что-то.
#17
Виктор, мне еще надо добавить accessList.
from java.util import ArrayList

for user in s.getUserDatabaseObjects():
if user.getName() == "Helpdesk":
helpdeskUser = user.getId()
break

acl = AccessListElement(helpdeskUser, UserAccessRights.OBJECT_ACCESS_READ)

gs = GraphSettings(0, s.getUserId(), ArrayList(acl))


Но у меня вылазит ошибка:
TypeError: java.util.ArrayList(): 1st arg can't be coerced to int, java.util.Collection

Кстати, при работе с сообщения вылазит таже проблема в части добавления аксес листа:
acl_id = NXCPCodes.VID_GRAPH_ACL_BASE + 1
msg.setFieldInt32(acl_id, int(2147483650)) <----- вот здесь ругается can't be coerced to int
#18
Виктор, прекрасно! :)
#19
Видимо криво объяснил. У меня итак сейчас в instance discovery стоит script, который возвращает массив ifIndex'ов, а дальше приходится использовать instance discovery filter чисто для того, чтобы достать еще и список наименований для этих индексов, чтобы dci красиво проименовать используя instance-name. Я подумал, а почему бы в основном скрипте сразу с массивом ifIndex'ов не возвращать и наименования, чтобы не делать двойную работу. Но как из основного скрипта вернуть массив индексов и массив имен я так и не нашел. return %(ifIndexes, ifNames) не работает :)

ps Благодарю за все ответы :)
#20
Общие вопросы / instance discovery -> script
September 26, 2016, 05:59:42 PM
Можно ли сразу из скрипта (который используется в instance discovery) возвращать массив instance'ов вместе с именами, по аналогии как в instance discovery filter строка: return %(true, $1, i->name); ? Есть желание все сделать в основном скрипте, а фильтр не использовать, так как получается дублирование кода.
#21
Если позволите, спрошу в этой теме, так как тема немного пересекается.
В данной конфигурации нода B является как бы фантомной и служит по сути для разграничения доступа. А как этой ноде сделать статус NORMAL? У меня сейчас эта нода находится в статусе UNKNOWN. Пробовал выставить primary ip с галочкой this is management address и оставить включенной возможность опраса статуса по icmp, но это не помогает.
#22
Александр,
как используются классы GraphItem, GraphItemStyle, GraphSettings? Полагаю что они используются как вспомогательные средства по построению конфига графика, который потом помещается в NXCPCodes.VID_GRAPH_CONFIG, но как это делается не могу понять. На текущий момент, я просто создаю текстовую переменную в которой содержится конфигурация графика и все.
#23
Насколько я понял это можно сделать при помощи NXCP путем создания сообщений типа:

msg = org.netxms.base.NXCPMessage(org.netxms.base.NXCPCodes.CMD_SAVE_GRAPH)
... конфиг графика
s.sendMessage(msg)


А перед этим нужно еще dci на создавать. Довольно трудоемкий процесс :)
#24
Спасибо за ответ. Попробую сделать дополнительную проверку по 1му варианту.
#25
Александр,
идея следующая: раз в сутки по крону или еще как запускается скрипт, который находит "новые" интерфейсы на маршрутизаторах, создает bps и pps dci и строит на них графики, присваивает имя и сохраняет в дерево graphs: services->ia-> %interface_description%.
#26
Может кто поделится скриптиком (python) по созданию графика и сохранению его во вкладку graphs?
#27
Как я понимаю опция invert values в dci сделана для красивости отображения значений на сложных графиках, когда много значений. Классический пример это скорость интерфейсов - outbound положительные, inbound отрицательные (invert values). Если я сюда добавляю еще график packets per second, то сразу напрашивается включить логарифмическую шкалу для наглядности, но сделать этого не могу, т.к. есть отрицательные значения. Может быть поменять порядок: сначала вычислять логарифм, а потом строить его отрицательным?
#28
Задача:
У шасси длинк есть несколько значений snmp, которые описывают все ли в порядке с вентиляторами, блоками питания и т.п.. Чтобы не присваивать отдельным данным свои пороги (thresholds), я сделал script dci "box_status", который возвращает либо 0, либо 3 в зависимости от того какие значения принимают все нужные мне параметры шасси и выставил галочку 'use this dci for status calculation'.

f1f = GetDCIValueByDescription($node, "Fan1FailStatus");
f2f = GetDCIValueByDescription($node, "Fan2FailStatus");
p1 = GetDCIValueByDescription($node, "Power1OnStatus");
p2 = GetDCIValueByDescription($node, "Power2OnStatus");
p1f = GetDCIValueByDescription($node, "Power1FailStatus");
p2f = GetDCIValueByDescription($node, "Power2FailStatus");

if (p1 != 1 || p2 != 1 || f1f != 2 || f2f != 2 || p1f != 2 || p2f != 2)
return 3;

return 0;


Все вроде бы работает, но иногда (рандомно) и особенно, когда перегружаешь сервис netxmsd, box_status показывает неверное значение. Тоесть возвращает значение 3. Хотя предпосылок для этого никаких нет (специально перепроверял history всех данных). Через некоторое время все встает на свои места, но не совсем понятно почему так происходит.

PS: Может это неправильный подход и мою хотелку можно сделать как-то по другому?
#29
Поидее это баг. По-умолчанию в свойствах нодов и контейнеров стоит галочка Inherit access rights from parent object(s), но на самом деле наследования не происходит и приходится пройтись по всему дереву и нажать кнопочку apply, чтобы это наследование действительно произошло.
#30
Может уже кто задавал вопрос, не нашел.

Я так понимаю сейчас нет возможности экспортнуть график в файл?