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 - hsvt

#151
Quote from: 2c2i on November 19, 2015, 05:55:54 PM
- переводим ноду в Maintenance mode
- рестартуем netxms демон
- нода снова в обычном режиме, и для нее обрабатываются евенты.

А как оно вообще работает? Что-то не вкурил, перевёл парочку нод, а где посмотреть в maintenance mode они или нет не пойму и уже забыл какие переводил :)
#152
Quote from: Victor Kirhenshtein on November 18, 2015, 02:18:10 PM
Для диапазона портов надо будет написать скрипт, который пройдет по нему в цикле и сделает несколько SNMP SET. Скрипт может быть и внутренний (NXSL) - есть функция SNMPSet в NXSL.

С фильтрами все несколько нелогично - SNMP OID это шаблон, можно использовать * и ? - но сам OID только один. System OS работает только для агентов - проверяется значение platform name. И это список регулярных выражений, разделенных запятыми.

Еще можно использовать шаблоны - есть опция проверять что определенный шаблон наложен на ноду.

Спасибо, буду пробовать учиться... Что имеется в виду под "и внутренний скрипт" а какие они еще бывают ? Вы имеете в виду Object tool - type internal ?

В обще где нужно писать сам скрипт, в Script Library и применять его потом в контекстном меню ноды ? Можете немного подтолкнуть меня на правильный путь :)

QuoteThis script can be executes as an action from event processing policy, or directly from server debug console via exec command.

Я вот знаю есть системные скрипты, один из которых Configuration я использую.

Hook::StatusPoll
Hook::ConfigurationPoll
Hook::TopologyPoll


Получается скрипт может быть как Action, как системный Hook, так же запущен через exec с консоли и так же запущен в меню ноды, для моей задачи какой вариант подходит ?

С фильтрами я сделал привязку по OID.
#153
Quote from: ilyav3 on November 14, 2015, 04:28:20 PM
Quote from: Victor Kirhenshtein on November 14, 2015, 03:10:02 PM
В релизе будет sysDescription, как и было. ...
Так вот почему, после обновления у меня сдохли все DCI, которые были зашаблонены по SysDescription... )

Спасибо, с auto apply это помогло, а вот с Hook Configuration Pool только сейчас заметил, перестали отрабатывать методы setStatusPropagation и SetInterfaceExpectedState

И так
if ($node->snmpSysDescription ~= "^D-Link")

И так
if ($node->sysDescription ~= "^D-Link")

Дальнейшие условия не выполняются :(
#154
Quote from: Victor Kirhenshtein on November 17, 2015, 03:24:42 PM
814 сделано - теперь в object tool есть input fields - можно определить поля ввода, при запуске консоль спросит для них значения. В команде можно использовать макрос %(field) для подстановки введенного значения.

Виктор, это прекрасно! Проверил, работает отключение порта. Только с confirmation получается немного не стыковка, после отправки tools он сначала спрашивает подтверждение и макрос %(port) туда не впишешь т.к. еще не известно какой порт будет отключен... ну на это можно и забить, оставить просто confirmation о том, что данное действие выполняется именно на этой ноде. Are you sure you want to disable port on the switch %n ip - (%a) ?

А если например нужно указать диапазон портов типа 1-24, какое может быть решение?

/usr/local/bin/nxsnmpset -c public -v 2c -t INTEGER %a .1.3.6.1.4.1.171.11.105.1.2.3.2.1.4.%(Port).1 2

Но самое важное, о чем хотел спросить - не могу разобраться с Filter в Object tools.

System OS name should match this template что подразумевается под System OS name если у меня коммутатор?

Если использовать Node SNMP OID should match with the following template - здесь вроде бы понятно, вставляешь SNMP Object OID, но опять же не ясно, можно ли тут перечислить нужные OID через запятые или нет. Есть 3 или даже 4 вида коммутаторов с разными SNMP Object OID и нужно как то фильтровать каждый Object Tools на свой коммутатор, чтобы не было общего списка у каждой ноды.
#155
Quote from: Victor Kirhenshtein on November 13, 2015, 10:48:22 PM
А как это событие SYS_IF_VLAN_DOWN создается?

Я даже не знаю как ответить... А системные events как тогда создаются ? На основании того, что заложено в коде и какое поведение определяет система, как вы сказали про SYS_IF_PEER_CHANGED.

Вот как связать event с syslog парсером по своим параметром я понял и там понятно как он создаётся - на основе пойманного сообщения syslog.

Если конкретно - мне нужно сделать свой event и привязать его к DCI и к threshold, который смотрит рейд массив и получать на почту уведомление со своим %message чтобы было понятно в чём проблема, а SYS_THRESHOLD_REACHED он как бы получается общий ко всему. То есть грубо говоря что-то типа DC_MDADM_LOOSE_HDD %Actual value %Threshold value
#156
Quote from: Victor Kirhenshtein on November 13, 2015, 10:49:25 PM
Это баг - не подумав переименовали атрибут. В транке вернули уже обратно. Систему с исходников собирали?

Да, из исходников под FreeBSD, в принципе не в продакшен, как бетатестер только рад помогать, но если поправите в релизе будет здорово :)
#157
UP. Обновился, названия нод в кириллице остались проблем вроде бы с этим теперь нет, может криво обновлялся, но теперь что то с шаблонами...

[13-Nov-2015 20:00:18.594] [WARN ] Failed to execute filter script for template object 9566 "IP": Error 15 in line 1: Unknown object's attribute
[13-Nov-2015 20:00:18.797] [WARN ] Failed to execute filter script for template object 3017 "CPU": Error 15 in line 1: Unknown object's attribute
[13-Nov-2015 20:00:18.797] [WARN ] Failed to execute filter script for template object 5186 "Serial": Error 15 in line 1: Unknown object's attribute
[13-Nov-2015 20:00:18.797] [WARN ] Failed to execute filter script for template object 9566 "IP": Error 15 in line 1: Unknown object's attribute


Скрипт авто добавления шаблона работал на прошлой версии такой:

return $node->sysDescription ~= "^Linux";

Пришлось убрать все DCI с этих нод, раза наверное с 10 он перестал писать в лог ошибки, т.к. скрипт тупо не убирался из Automatic Apply Rules, после рестарта опять сохранялся. Вопрос - как переписать правила добавления? Hint что то не помогает.
#158
При просмотре графиков через Line Chart за большой период (Present last 5 day, week, etc) Сама консоль ощутимо "лагает" и долго отдаёт данные... то есть надпись Get DCI values for history graph 0% может висеть довольно долго, затем когда данные получены - навигация мышкой для выделения активной области так же очень замедленная.

В качестве БД mysql 5.5.44.

Quote from: Victor Kirhenshtein on April 28, 2015, 09:59:01 PM
Пока нет такой возможности. Я добавил как feature request: https://dev.raden.solutions/issues/814

Есть какие то изменения в этом плане ? Как можно сделать object tool для конкретного интерфейса с маскросом типа %i ? Например по snmp выключить порт, или выполнить команду на нём же.
#159
Quote from: Victor Kirhenshtein on November 10, 2015, 10:37:52 PM
SYS_IF_PEER_CHANGED создается когда система определяет изменение в топологии (через CDP, LLDP, etc.) и интерфейсы двух узлов отмечаются как соединенные между собой.

Параметры собственных событий зависят от того, как они генерируются. Если это события по нарушению threshold, то параметры будут соответствовать SYS_THRESHOLD_REACHED/SYS_THRESHOLD_REARMED.

То есть свой кастомный event не получиться обработать? Например мне нужен еще отдельный event для интерфейсов - SYS_IF_VLAN_DOWN

Interface "%2" changed state to DOWN (IP Addr: %3/%4, IfIndex: %5)

Generated when interface goes down.
Please note that source of event is node, not an interface itself.
Parameters:
   1) Interface object ID
   2) Interface name
   3) Interface IP address
   4) Interface netmask
   5) Interface index


Аларм при генерации события приходит с пустыми параметрами:

Interface "" changed state to DOWN (IP Addr: /, IfIndex: )

Параметры не обрабатываются потому что они относятся только к системному SYS_IF_DOWN ?
#160
https://www.netxms.org/forum/configuration/how-to-find-out-the-event-parameters/

Прочитав эту тему выше, всё равно не вкурю как использовать свои параметры-макросы

%<name> Event's parameter with given name.
%1 - %99 Event's parameter number 1 .. 99.


Я создал Event DC_MDADM_CRITICAL и есть DCI которое проверяет харды в рейде, и есть EPP которое создаёт аларм %m

Как мне получать в аларме значение из DCI по которому срабатывает Threshold, если я не использую системные SYS_THRESHOLD_REACHED и SYS_THRESHOLD_REARMED ?


#161
Quote from: Victor Kirhenshtein on November 06, 2015, 12:52:07 PM
Quote from: hsvt on November 05, 2015, 10:47:44 PM
У меня для тех у кого ignore (абоненты, например) эвент не генерируется, состояние нормал, Иконки в разделе Ports - красные. Другой вопрос, если бывает, нужно поставить на мониторинг абонентский порт с какой нибудь плавающей проблемой, а у тебя по Hook::ConfigurationPoll всё равно будет ставиться Ignore. Как вот тут лучше сделать?

Можно проверять custom attribute интерфейса и не ставить ему ignore если атрибут выставлен в какое-то специальное значение.

А пример фильтрации в EPP можете привести ? И правильно ли я понимаю, если мне нужно для этой же группы серверов и клиентских интерфейсов сделать SYS_IF_DOWN с severity Normal, я создал еще одно EPP и поместил туда группу этих серверов (в Source Object) ну и далее Alarm Severity Normal, но как правильно сделать чтобы не пересекалось с основным EPP ?

#162
Есть интерфейс такого вида:

vlan300: <POINTOPOINT,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc htb state UNKNOWN qlen 100
    link/ether 00:0f:d2:fb:ec:23 peer ff:ff:ff:ff:ff:ff
    inet 10.30.0.254 peer 10.30.0.4/32 scope global vlan300
    inet6 ::/64 scope link
       valid_lft forever preferred_lft forever


На сервере стоит агент и во вкладке Overviews у этой ноды показывает IP Address=10.30.0.254/32
но это шлюз, а хотелось бы чтобы показывал и клиентский который peer 10.30.0.4/32
#163
Quote from: Harun on October 31, 2015, 09:35:47 PM
Кстати вопрос - если я ставлю для интерфейса expected state = ignore, то изменение состояния не должно генерировать event, но его состояние все равно опрашивается. Почему у интерфейсов в состоянии down все равно зеленая иконка?

У меня для тех у кого ignore (абоненты, например) эвент не генерируется, состояние нормал, Иконки в разделе Ports - красные. Другой вопрос, если бывает, нужно поставить на мониторинг абонентский порт с какой нибудь плавающей проблемой, а у тебя по Hook::ConfigurationPoll всё равно будет ставиться Ignore. Как вот тут лучше сделать?

Ну и с почтой и эвентом SYS_NODE_DOWN тоже не понятно, надо чтобы от одних устройств были только алармы, а от других и алармы и письма еще...
#164
Quote from: Harun on October 30, 2015, 02:46:34 PM
Для абонентских портов можно делать unmanage при помощи Hook::ConfigurationPoll например так:


if ($node->snmpOID ~= "^.1.3.6.1.4.1.X")
{
foreach(int : GetNodeInterfaces($node))
{
if (int->name ~= "^eth[0-9]*\.")
{
      UnmanageObject (int);
    }
}
}


У меня такое сделано для абонентских портов на коммутаторе, но я решил мониторить в NetXMS так же сервера доступа (NAS,BRAS) в сеть интернет. Там так же для них создаются интерфейсы (сабинтерфейсы), так вот скрипт  Hook::ConfigurationPoll он и так уже достаточно большой, поэтому я думаю может лучше как то сделать в EPP через Filtering Script ? Или мне теперь еще и под каждый сервер в этот скрипт дописывать? Как то хочется менее костыльно, может в будущем разработчики реализуют основную часть таких моментов в клиенте ? Ну чтобы такую логику и гибкость можно было реализовать...
#165
Здравствуйте. Возникла необходимость создать исключения для обработки EPP SYS_IF_DOWN, есть нода, например, там сабинтерфейсы (клиентские) могут подниматься и опускать по много раз. В связи с этим их не хотелось бы обрабатывать и получать кучу алармов, нужно прибегнуть к Filtering Script или дописывать исключения по интерфейсам в Hook::ConfigurationPoll ? Хотелось бы попробовать с помощью Filtering Script, можете подсказать как это сделать на примере интерфейса eth0.1 eth02.3 и т.д.

И еще вопрос по исключениям из обработки SYS_NODE_DOWN, необходимо сделать следующее: есть коммутаторы, по которым должны приходить alarm SYS_NODE_DOWN и есть сервера по которым должны приходить как alarm так и action email. Если я делаю Inverted Rule - то не совсем подходит, мне нужно получать только алармы и только от коммутаторов если они down и получать алармы и письма от серверов если они down.