О как, понял. Да, я ставил крайнюю версию jaspersoft studio - если не ошибаюсь, что-то в духе 7.0+
Переделаю, отпишусь, спасибо!
Переделаю, отпишусь, спасибо!
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);