NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: smartkz on July 30, 2014, 02:01:12 PM

Title: Зависимости
Post by: smartkz on July 30, 2014, 02:01:12 PM
Здравствуйте.
В продукте существует понятие "зависимости" ... как это работает?

К примеру маршрутизатор центральный в него включается два коммутатора - отсюда следует если падает Маршрутизатор то автоматически падают и два коммутатора... И мне необходимо послать сообщение на емаил только о том что упал маршрутизатор (желательно что бы в этом же письме был список зависимых устройств которые также "прицепом" упали ). Сейчас шлются по каждому устройству, и если большое количество оборудования то соответственно очень много писем приходит.

Можно ли такое реализовать?
Title: Re: Зависимости
Post by: ArtKZ on July 30, 2014, 02:16:21 PM
"Зависимости" реализован на базе вложенных контейнеров вашей инфраструктуры. Тревоги могут передаваться от нижестоящих узлов или контейнеров к вышестоящим. Ну и (относительно) красивая картинка может быть нарисована, которая покажет "кто под кем". А интересующий вас сценарий реализуется с помощью функционала "Ситуации",но там надо ручками поработать...
Title: Re: Зависимости
Post by: smartkz on July 30, 2014, 02:25:46 PM
Подскажите как ручками зависимости настроить?
Title: Re: Зависимости
Post by: ArtKZ on July 30, 2014, 02:57:29 PM
Для начала ознакомиться вот с этим https://www.netxms.org/documentation/adminguide/event-processing.html#situations (https://www.netxms.org/documentation/adminguide/event-processing.html#situations)
Title: Re: Зависимости
Post by: smartkz on July 30, 2014, 03:07:33 PM
Quote from: ArtKZ on July 30, 2014, 02:57:29 PM
Для начала ознакомиться вот с этим https://www.netxms.org/documentation/adminguide/event-processing.html#situations (https://www.netxms.org/documentation/adminguide/event-processing.html#situations)

А вот если человек не программист... и все эти скрипты и все что в этом роде - печалька.... как быть?
Title: Re: Зависимости
Post by: ArtKZ on July 30, 2014, 03:17:56 PM
Эээ... боюсь, что получить заветное совсем не программисту от этой системы будет сложновато. Может быть есть смысл присмотреться к более простой системе? Я до NetXMS пользовался The Dude (http://www.mikrotik.com/thedude.php (http://www.mikrotik.com/thedude.php)). NetXMS, конечно, более продвинутая, но и как обратная сторона медали - более сложная в настройке, а в Dude все plug&play, drug&drop и прочие "вредно&вкусно" :)
Title: Re: Зависимости
Post by: smartkz on July 30, 2014, 03:40:57 PM
Quote from: ArtKZ on July 30, 2014, 03:17:56 PM
Эээ... боюсь, что получить заветное совсем не программисту от этой системы будет сложновато. Может быть есть смысл присмотреться к более простой системе? Я до NetXMS пользовался The Dude (http://www.mikrotik.com/thedude.php (http://www.mikrotik.com/thedude.php)). NetXMS, конечно, более продвинутая, но и как обратная сторона медали - более сложная в настройке, а в Dude все plug&play, drug&drop и прочие "вредно&вкусно" :)
Я и работал с Dude раньше  и все устраивало... пока её не убрали.
Title: Re: Зависимости
Post by: ArtKZ on July 30, 2014, 03:43:13 PM
Вы прямо слово в слово повторили слова моего сотрудника, после того, как я снес Dude вместе с операционной системой, на которой она стояла :))))
Title: Re: Зависимости
Post by: smartkz on July 30, 2014, 03:47:42 PM
Quote from: ArtKZ on July 30, 2014, 03:43:13 PM
Вы прямо слово в слово повторили слова моего сотрудника, после того, как я снес Dude вместе с операционной системой, на которой она стояла :))))

Ждем с вашим сотрудником подробной консультации с картинками :)
Title: Re: Зависимости
Post by: ArtKZ on July 30, 2014, 05:40:41 PM
Собственно порядок настройки на русском языке описан здесь https://www.netxms.org/forum/oe-oo/otaka-kto-event-processing-policy/msg5597/#msg5597 (https://www.netxms.org/forum/oe-oo/otaka-kto-event-processing-policy/msg5597/#msg5597), разве что без картинок... и, кстати, я при настройке столкнулся с той же проблемой, что и автор топика, поэтому пока что этот функционал отложил в сторону
Title: Re: Зависимости
Post by: smartkz on July 30, 2014, 05:49:21 PM
Давайте с нуля начнем.. есть объекты А и B  - как B поставить в зависимость A ?
Title: Re: Зависимости
Post by: ArtKZ on July 30, 2014, 06:05:36 PM
Quoteкак B поставить в зависимость A ?

То есть, пытаемся сделать, чтобы при падении узла А, тревожные события от подчиненного узла B не приходили. Для этого мы должны настроить сохранение состояния узла А и проверку этого состояния при появлении тревожных событий от узла В.

1. В менеджере ситуаций создать Ситуацию с именем (к примеру) NodeStatus
2. В Менеджере политик обработки событий создать правило, которое, при получении SYS_NODE_DOWN от узла А, выставляет атрибут "status" в "down" для instance А.
3. В Менеджере политик обработки событий создать правило, которое, при получении SYS_NODE_UP от узла А, выставляет атрибут "status" в "up" для instance А.
4. В Менеджере политик обработки событий создать правило, которое, при получении SYS_NODE_DOWN от узла В, выполняет скрипт

s = FindSituation("NodeStatus", "A");
if (s != NULL)
{
if (s->status == "down")
return false; // Don't match rule
}
return true; // Match rule


5. Выставить в опциях "Stop processing"

Title: Re: Зависимости
Post by: smartkz on July 30, 2014, 06:31:46 PM
Quote from: ArtKZ on July 30, 2014, 06:05:36 PM
Quoteкак B поставить в зависимость A ?

То есть, пытаемся сделать, чтобы при падении узла А, тревожные события от подчиненного узла B не приходили. Для этого мы должны настроить сохранение состояния узла А и проверку этого состояния при появлении тревожных событий от узла В.

1. В менеджере ситуаций создать Ситуацию с именем (к примеру) NodeStatus
2. В Менеджере политик обработки событий создать правило, которое, при получении SYS_NODE_DOWN от узла А, выставляет атрибут "status" в "down" для instance А.
3. В Менеджере политик обработки событий создать правило, которое, при получении SYS_NODE_UP от узла А, выставляет атрибут "status" в "up" для instance А.
4. В Менеджере политик обработки событий создать правило, которое, при получении SYS_NODE_DOWN от узла В, выполняет скрипт

s = FindSituation("NodeStatus", "A");
if (s != NULL)
{
if (s->status == "down")
return false; // Don't match rule
}
return true; // Match rule


5. Выставить в опциях "Stop processing"

Вот тут нужно создавать событие ??
Title: Re: Зависимости
Post by: ArtKZ on July 30, 2014, 06:46:41 PM
Да, именно здесь.

Вот мой аналогичный пример (работоспособность не проверял!):
Есть сервер fjpw2.ic.kz, на котором живут 2 виртуальные системы - bacula.ic.kz и e164.ic.kz. Мы хотим, чтобы при падении сервера fjpw2.ic.kz, тревоги от bacula.ic.kz и e164.ic.kz не приходили.

Quote1. В менеджере ситуаций создать Ситуацию с именем NodeStatus


Quote2. В Менеджере политик обработки событий создать правило, которое, при получении SYS_NODE_DOWN от узла fjpw2.ic.kz, выставляет атрибут "status" в "down" для instance fjpw2.ic.kz.

Это правило мы назовем "Show alarm when node is down for Parent node"

Quote3. В Менеджере политик обработки событий создать правило, которое, при получении SYS_NODE_UP от узла fjpw2.ic.kz, выставляет атрибут "status" в "up" для instance fjpw2.ic.kz.

Это правило мы назовем "Terminate node down alarms when node is up for Parent node"


Quote4. В Менеджере политик обработки событий создать правило, которое, при получении SYS_NODE_DOWN от узла bacula.ic.kz и e164.ic.kz, выполняет скрипт

Это правило мы назовем "Show alarm when node is down for Child node"

5. Аналогичные правила создаем для SYS_NODE_UP (не уверен, что это надо)

6. Создаваемые правила должны располагаться выше, чем стандартные "Show alarm when node is down" и "Terminate node down alarms when node is up"
Title: Re: Зависимости
Post by: smartkz on July 30, 2014, 08:02:54 PM
У меня заработало именно так! всего два правила.

Приходит почта что упал DGS и все - когда подымается приходит почта что DGS поднят и все.

Но теперь хочется чтобы в почте о падении перечислялись устройства которые прицепом падают.

И еще один косяк если падает только MT то почта не приходит...  думаем.
Title: Re: Зависимости
Post by: smartkz on July 30, 2014, 08:58:13 PM
Все работает!
исправьте ошибку в скрипте!

s = FindSituation("NodeStatus", "A");
if (s != NULL)
{
if (s->status == "down")
return 1; // Don't match rule
}
return 0; // Match rule

Title: Re: Зависимости
Post by: smartkz on July 31, 2014, 05:45:46 AM
Как выглядит скрипт отправки определенного текста на емаил?

Предположительно в этом скрипте перечислить оборудование которое падает прицепом...