Нет, в rootID 0
Источник один, ивенты соотвествуют вроде
Источник один, ивенты соотвествуют вроде
We really need your input in this questionnaire
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts MenupeerInfo = [];
for(iface : $node.interfaces)
{
peerIface = iface.peerInterface;
if (peerIface != null)
{
peerIF.append(peerIface.name);
peerN.append(iface.peerNode.name);
$event.addParameter("PeerIface", peerIF.join(", "));
$event.addParameter("PeerNode", peerN.join(", "));
}
}
sub main() {
packageName = $event.getParameter("name");
//trace(0, "From EPP rule " .. typeof(packageName) .. " " .. packageName); //можно логить в серверный лог чтоб разобраться что происходит
if (packageName == null) return false;
packageName = packageName.toLowerCase();
if ((packageName like "*7-zip*") ||
(packageName like "*adobe reader*") ||
(packageName like "*средства проверки правописания microsoft*"))
{
return false;
}
trace(0, "From EPP rule " .. typeof(packageName) .. " " .. packageName); //Лог, чтобы видеть разрешенные к алертам записи
return true;
}
for (int : $node.interfaces){
if(int.ifIndex != 1){
macAd = int.macAddr;
iNode = int.peerNode;
println(iNode.ipAddr);
}
}Если же обращаться далее к интерфейсам уже на комуте, на который попадаю, то интерфейсы могут отдать нормально инфу по имени интерфейса, alias, дескрипшену и т.п. но запрос peerNode или peerInterface отдает идентичный ответ на всех интерфейсах. Из UI клиента видно, что сама по себе инфа о интерфейсах на комуте корректная - разные подключения, мак адреса, ip, имена и т.п.for (int : $node.interfaces){
if(int.ifIndex != 1){
macAd = int.macAddr;
iNode = int.peerNode;
for (ii : iNode.interfaces)
println(ii.peerNode);
}
}Как мне выделить конкретно информацию о порте и адресе коммутатора, куда подключена нода?sub main() {
packageName = $event.getParameter("name");
trace(0, "From EPP rule " .. typeof(packageName) .. " " .. packageName); //можно логить в серверный лог чтоб разобраться что происходит
if (packageName == null) return false;
packageName = packageName.toLowerCase();
if ((packageName.contains("7-zip")) ||
(packageName.contains("adobe reader")) ||
(packageName.contains("средства проверки правописания microsoft")))
{
return false;
}
return true;
} Пакетов там что-то около 60 указано, я сократил текст{
"id": 181445587,
"rootId": 0,
"code": 87,
"name": "SYS_PACKAGE_INSTALLED",
"timestamp": 1769740202,
"originTimestamp": 1769740202,
"origin": 0,
"source": 236657,
"zone": 0,
"dci": 0,
"severity": 0,
"message": "Package Intel(R) ME UninstallLegacy 1.0.1.0 installed",
"lastAlarmKey": "",
"lastAlarmMessage": "",
"tags": null,
"parameters": [
{
"name": "name",
"value": "Intel(R) ME UninstallLegacy"
},
{
"name": "version",
"value": "1.0.1.0"
}
]
}В логах вроде как parameter корректно отбирается2026.01.30 10:22:06.023 *I* [nxsl.trace ] From EPP rule string Агент администрирования Kaspersky Security Center
2026.01.30 10:22:06.023 *I* [nxsl.trace ] From EPP rule string LowerCase агент администрирования kaspersky security center
2026.01.30 10:22:09.734 *I* [nxsl.trace ] From EPP rule string Агент администрирования Kaspersky Security Center
2026.01.30 10:22:09.734 *I* [nxsl.trace ] From EPP rule string LowerCase агент администрирования kaspersky security center
2026.01.30 10:22:46.525 *I* [nxsl.trace ] From EPP rule string Агент администрирования Kaspersky Security Center
2026.01.30 10:22:58.159 *I* [nxsl.trace ] From EPP rule string Microsoft Edgesub main() {
subnet_dc = $event.subnets;
// Быстрая проверка по ключевым словам
if(($event.subnets like "*DC*") ||
($event.subnets like "*TS*")) {
return true;
}
return false;
}sub main() {
subnet = $event.subnets;
// Быстрая проверка по ключевым словам
if(($event.subnets like "*DC*") ||
($event.subnets like "*TS*")) {
return false;
}
return true;
}
Вроде как корректно фильтрует по нужным действиям
subnet = toLowerCase($event.subnets);Собственно в таком видеsub main() {
subnet_dc = toLowerCase($event.subnets);
// Быстрая проверка по ключевым словам
if(subnet_dc.contains("dc") ||
subnet_dc.contains("ts")) {
return true;
}
return false;
}Все равно не работает корректно - уведомления продолжают идти в оба топика. Ошибки видел на линию 2 Function not foundsub main() {
packageName = toLowerCase($alarm.key);
// Быстрая проверка по ключевым словам
if(packageName.contains("7-zip") ||
packageName.contains("adobe reader")) {
nxlog(4, "FILTER: Blocked package - " . $alarm->key);
return false;
}
return true;
}Как оказалось по логам - оно так же не работает, жалуясь Function or operation argument is not an object на линиюpackageName = toLowerCase($alarm.key);
subnets = [];
for (p : $node.parents) if (classof(p) == "Subnet") subnets.append(p.alias);
$event.addParameter("subnets", subnets.join(", "));
return true;Прицепляющий alias подсети к ивенту SYS_NODE_ADDEDsub main() {
subnet = tolower($event->subnets);
// Быстрая проверка по ключевым словам
if(contains(subnet, "dc") ||
contains(subnet, "ts")) {
nxlog(4, "FILTER: Blocked DC subnet - " . $event->subnets);
return false;
}
return true;
}2-ой - где alias содержит dc и tssub main() {
subnet = tolower($event->subnets);
// Быстрая проверка по ключевым словам
if(contains(subnet, "dc") ||
contains(subnet, "ts")) {
return true;
}
nxlog(4, "FILTER: Blocked Users subnet - " . $event->subnets);
return false;
}{
"id": 180591103,
"rootId": 0,
"code": 1,
"name": "SYS_NODE_ADDED",
"timestamp": 1769568582,
"originTimestamp": 1769568582,
"origin": 0,
"source": 1051263,
"zone": 0,
"dci": 0,
"severity": 0,
"message": "Node added",
"lastAlarmKey": "",
"lastAlarmMessage": "",
"tags": [
"NewObject"
],
"parameters": [
{
"name": "nodeOrigin",
"value": "1"
},
{
"name": "subnets",
"value": "KRS_Gaydashovka_UC"
}
]
}Что я сделал не так с этими фильтрами?