Всем привет.
считываю по snmp количество ошибок на порту коммутаторов и если они растут, зажигаю аварию с выдачей уведомления.
вопрос в том, как мне по повторным, еще активным авариям не присылать повторно уведомления ??
сумбурно объяснил, но вроде понятно, подскажите пож :)
народ, ну подскажите пож неучу, а :'(
пытаюсь делать по аналогии (вариант 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 (https://www.netxms.org/forum/oe-oo/propusk-sobytiya-pri-trevoge/msg28992/#msg28992)
А можете показать скриншотами, как сейчас настроены правила в EPP? Настроено ли автоматическое терменирование алармов, когда число ошибок падает? Или, наоборот, алармы остаются открытыми и при новых событиях об ошибках у этих алармов растет Count (колонка в View->Alarm browser).
Quote from: Filipp Sudanov on December 06, 2021, 01:18:02 PM
А можете показать скриншотами, как сейчас настроены правила в EPP? Настроено ли автоматическое терменирование алармов, когда число ошибок падает? Или, наоборот, алармы остаются открытыми и при новых событиях об ошибках у этих алармов растет Count (колонка в View->Alarm browser).
- автоматическое терминирование настроено, работает, но выключено, соответственно аларм остается открытым.
- при новых событиях растет Count и соответственно вываливается сообщение об ошибке
Примерно в 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.