Сформулировать одним словом не могу, попробую описать:
Оборудование ( коммутатор ) присылает SNMP Trap о неуспешной авторизации пользователя который подключается к удаленной консоли. В целом это нормально, так как сменив пароль я еще в течении двух трех дней ввожу старый по привычке. Но если количество таких trap`ов превышает например 10 в час тут стоит подумать и посмотреть.
Было бы не плохо формировать аларм при достижении некого критического количество событий, так же было бы не плохо если бы это количество можно было бы считать не в рамках одной ноды, а вообще.
Опять же, если кто-то шарится по всей сети пытаясь авторизоваться на железе. В этом случае сообщения будут приходить от разных нод, но все равно ситуация интересная.
Можно но сложно.
В EPP нужно написать скрипт который (во время прихода события о неправильном логине) будет сохранять список пришедших трапов за последний час в строку и в случае если их было больше 10 генерить другое событие который уже будет создавать аларм. Строку можно хранить в Situations, которые в релизе 2.1-M3 мы заменим на PersistentStorage. Если в NXSL использовать посик Situations по имени, то переход на PersistentStorage будет не заметен.
Вот пример который делает похожую задачу в пределах 1 узла и хранит значения в CustomAttribute узла:
array attr;
for (i = 0; i < 5; i++)
{
attr = GetCustomAttribute($node, "collectedEventTime" . i);
}
step = GetCustomAttribute($node, "collectedEventStep");
for (i = 0; i < 5; i++) {
if(attr == null)
{
SetCustomAttribute($node, "collectedEventTime" . i, time());
SetCustomAttribute($node, "collectedEventStep", i);
return;
}
}
step++;
if(step > 4)
step = 0;
//Cehck that value that we will change occured more than 5 minutes ago
if((time() - attr[step]) < 300)
{
//generate alarm
PostEvent($node, "MARK_EVENT_AS_CRITICAL", null, "Event marked as critical");
}
//set new time value
SetCustomAttribute($node, "collectedEventTime" . step, time());
SetCustomAttribute($node, "collectedEventStep", step);