Filtering script for rule in Event Processing Policy
-
Когда-то раньше main() был обязателен, теперь уже нет. Но старая форма все равно поддерживается.
Еще можно использовать регулярные выражения, например так:
return $event->message ~= ".*Interface \"Vi.*";Ну и если речь идет о событиях SYS_IF_UP и SYS_IF_DOWN, то имя интерфейса передается как параметр номер 2, и можно сравнивать только его (тогда условие не будет зависеть от того, что текст сообщения поменяют в шаблоне):
return $2 like "Vi*";или
return substr($2, 1, 2) == "Vi";ну и если в названии могут быть прописные и строчные буквы:
return upper(substr($2, 1, 2)) == "VI"; -
-
@enp said in Filtering script for rule in Event Processing Policy:
Спасибо! Я верно понимаю, все возможные параметры к событиям описаны в Configuration -> Event configuration?
да, верно.
@enp said in Filtering script for rule in Event Processing Policy:
И вопрос о запуске скриптов вручную по-прежнему актуален.
Для проверки обработки событий можно исскуственно создавать события при помощи команды nxevent. Например, для отсылки SYS_IF_DOWN команда может выглядеть так:
nxevent -u admin 192.168.64.1 5 101 eth0 10.10.10.2 255.255.255.0 1
-
-
-
Можно вывести в лог, функцией trace. Например так:
trace(0, "$2='" . $2 . "'");
-
-
-
println выводит данные на консоль, ее имеет смысл использовать либо в тестовых скриптах, которые запускаются из nxscript, либо в скриптах, которые запускаются из дебаг консоли сервера командой exec.
-
$ nxscript NetXMS Scripting Host Version 1.2.10 Copyright (c) 2005-2013 Victor Kirhenshtein Usage: nxscript [options] script [arg1 [... argN]] Valid options are: -d Dump compiled script code -e <name> Entry point -r Print script return valueЧто такое entry point? Объекты вроде $event в nxscript передать нельзя?
-
enp, настоятельно рекомендую уже быстрее проникнуться концепцией NetXMS.
Передать $event из командной строки нельзя, но можно сгенерировать событие (из скрипта - PostEvent, из командной строки - утилитой nxevent), на которое среагирует обработчик, в котором есть фильтрующий скрипт.
Создай тестовый объект, тестовое событие, тестовый обработчик, и т.д.
-
Не вижу, чем передача $event и любых объектов вообще из командной строки идет поперек концепции. Это просто более прямой способ отладки скриптов. Похоже, он действительно не востребован из-за того, что скрипты обычно маленькие и отлаживать там особо нечего.
Я ж не с претензиями, я всего лишь вопросы задаю

-
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login