Здравствуйте.
В продукте существует понятие "зависимости" ... как это работает?
К примеру маршрутизатор центральный в него включается два коммутатора - отсюда следует если падает Маршрутизатор то автоматически падают и два коммутатора... И мне необходимо послать сообщение на емаил только о том что упал маршрутизатор (желательно что бы в этом же письме был список зависимых устройств которые также "прицепом" упали ). Сейчас шлются по каждому устройству, и если большое количество оборудования то соответственно очень много писем приходит.
Можно ли такое реализовать?
"Зависимости" реализован на базе вложенных контейнеров вашей инфраструктуры. Тревоги могут передаваться от нижестоящих узлов или контейнеров к вышестоящим. Ну и (относительно) красивая картинка может быть нарисована, которая покажет "кто под кем". А интересующий вас сценарий реализуется с помощью функционала "Ситуации",но там надо ручками поработать...
Подскажите как ручками зависимости настроить?
Для начала ознакомиться вот с этим https://www.netxms.org/documentation/adminguide/event-processing.html#situations (https://www.netxms.org/documentation/adminguide/event-processing.html#situations)
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)
А вот если человек не программист... и все эти скрипты и все что в этом роде - печалька.... как быть?
Эээ... боюсь, что получить заветное совсем не программисту от этой системы будет сложновато. Может быть есть смысл присмотреться к более простой системе? Я до NetXMS пользовался The Dude (http://www.mikrotik.com/thedude.php (http://www.mikrotik.com/thedude.php)). NetXMS, конечно, более продвинутая, но и как обратная сторона медали - более сложная в настройке, а в Dude все plug&play, drug&drop и прочие "вредно&вкусно" :)
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 раньше и все устраивало... пока её не убрали.
Вы прямо слово в слово повторили слова моего сотрудника, после того, как я снес Dude вместе с операционной системой, на которой она стояла :))))
Quote from: ArtKZ on July 30, 2014, 03:43:13 PM
Вы прямо слово в слово повторили слова моего сотрудника, после того, как я снес Dude вместе с операционной системой, на которой она стояла :))))
Ждем с вашим сотрудником подробной консультации с картинками :)
Собственно порядок настройки на русском языке описан здесь 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), разве что без картинок... и, кстати, я при настройке столкнулся с той же проблемой, что и автор топика, поэтому пока что этот функционал отложил в сторону
Давайте с нуля начнем.. есть объекты А и B - как B поставить в зависимость A ?
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"
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"
Вот тут нужно создавать событие ??
Да, именно здесь.
Вот мой аналогичный пример (работоспособность не проверял!):
Есть сервер 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"
У меня заработало именно так! всего два правила.
Приходит почта что упал DGS и все - когда подымается приходит почта что DGS поднят и все.
Но теперь хочется чтобы в почте о падении перечислялись устройства которые прицепом падают.
И еще один косяк если падает только MT то почта не приходит... думаем.
Все работает!
исправьте ошибку в скрипте!
s = FindSituation("NodeStatus", "A");
if (s != NULL)
{
if (s->status == "down")
return 1; // Don't match rule
}
return 0; // Match rule
Как выглядит скрипт отправки определенного текста на емаил?
Предположительно в этом скрипте перечислить оборудование которое падает прицепом...