как отключить повторные оповещения об авариях

Started by sergey_t, November 24, 2021, 10:57:54 AM

Previous topic - Next topic

sergey_t

Всем привет.

считываю по snmp количество ошибок на порту коммутаторов и если они растут, зажигаю аварию с выдачей уведомления.

вопрос в том, как мне по повторным, еще активным авариям не присылать повторно уведомления ??

сумбурно объяснил, но вроде понятно, подскажите пож  :)

sergey_t


sergey_t

пытаюсь делать по аналогии (вариант 2), но не пойму где прописать первое действие SetCustomAttribute($node, "lastSent", time());

добавить в это правило EPP action=script, в котором на ноде выставлять время последней отсылки, что-то типа

Code: [Select]
SetCustomAttribute($node, "lastSent", time());

и фильтром на этом же правиле проверять:
Code: [Select]
if (lastSent@$node != null && lastSent@$node + 3600 < time()) { // 3600 - разница в секундах
  return false;
}
return true;



взято отсюда https://www.netxms.org/forum/oe-oo/propusk-sobytiya-pri-trevoge/msg28992/#msg28992

Filipp Sudanov

А можете показать скриншотами, как сейчас настроены правила в EPP? Настроено ли автоматическое терменирование алармов, когда число ошибок падает? Или, наоборот, алармы остаются открытыми и при новых событиях об ошибках у этих алармов растет Count (колонка в View->Alarm browser).

sergey_t

Quote from: Filipp Sudanov on December 06, 2021, 01:18:02 PM
А можете показать скриншотами, как сейчас настроены правила в EPP? Настроено ли автоматическое терменирование алармов, когда число ошибок падает? Или, наоборот, алармы остаются открытыми и при новых событиях об ошибках у этих алармов растет Count (колонка в View->Alarm browser).

- автоматическое терминирование настроено, работает, но выключено, соответственно аларм остается открытым.
- при новых событиях растет Count и соответственно вываливается сообщение об ошибке

Filipp Sudanov

Примерно в 3.8 у экшнов в свойствах добавились параметры snooze time и snooze/blocking timer key. Если их становить, то при первом срабатывании экшна будет заведен системный таймер с указанным ключом (посмотреть эти таймеры можно в configuration -> scheduled tasks если там включить show system tasks). Дальше пока этот таймер не закончится, экшн срабатывать не будет. Время для этого таймера можну указать очень большое и удалять этот таймер при автоматическом терминировании аларма.

Второй путь - в правиле EPP можно прописать filter script который проверит наличие аларма:
key=$event->expandString("DC_THRESHOLD_%i_%<dciId>");
return FindAlarmByKey(key) == null;

если аларм уже есть, то правило EPP не выполнится и экшн не исполнится. Но в этом случает так же не будет расти Count на алармах, потому что правило не выполнится целиком. Если Count нужен, тогда нужно разносить создание аларма и выполнение экшна в два правила и во втором делать этот filter script.