<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Filtering script for rule in Event Processing Policy]]></title><description><![CDATA[<p dir="auto">Здравствуйте!</p>
<p dir="auto">У меня есть правило в Event Processing Policy для отсылки почтовых сообщений о различных событиях. Требуется не отсылать такие сообщения для интерфейсов "Vi*.*". Есть, как я понимаю, единственный способ - Filtering script для правила. Как его писать?</p>
<p dir="auto">Никогда этого не делал, подходящей документации тоже не нашел. В <a href="http://wiki.netxms.org/wiki/UM:NetXMS_Scripting_Language_%28NXSL%29" rel="nofollow ugc">http://wiki.netxms.org/wiki/UM:NetXMS_Scripting_Language_(NXSL)</a> описан только синтаксис (да и то не описаны, например, строковые функции: как определить вхождение подстроки в строку?). Но нет описания способов запуска скриптов. В <a href="http://wiki.netxms.org/wiki/UM:Event_Processing" rel="nofollow ugc">http://wiki.netxms.org/wiki/UM:Event_Processing</a> о написании фильтров тоже ни слова.</p>
<p dir="auto">Покажите, пожалуйста, рабочий пример.</p>
]]></description><link>https://forum.netxms.org/topic/2800/filtering-script-for-rule-in-event-processing-policy</link><generator>RSS for Node</generator><lastBuildDate>Fri, 13 Nov 2026 10:16:11 GMT</lastBuildDate><atom:link href="https://forum.netxms.org/topic/2800.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 18 Dec 2013 04:24:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Filtering script for rule in Event Processing Policy on Tue, 24 Dec 2013 03:01:22 GMT]]></title><description><![CDATA[<p dir="auto">nxevent + trace - куда прямее?</p>
]]></description><link>https://forum.netxms.org/post/12275</link><guid isPermaLink="true">https://forum.netxms.org/post/12275</guid><dc:creator><![CDATA[glebofff]]></dc:creator><pubDate>Tue, 24 Dec 2013 03:01:22 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script for rule in Event Processing Policy on Fri, 20 Dec 2013 09:11:51 GMT]]></title><description><![CDATA[<p dir="auto">Не вижу, чем передача $event и любых объектов вообще из командной строки идет поперек концепции. Это просто более прямой способ отладки скриптов. Похоже, он действительно не востребован из-за того, что скрипты обычно маленькие и отлаживать там особо нечего.</p>
<p dir="auto">Я ж не с претензиями, я всего лишь вопросы задаю <img src="https://forum.netxms.org/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=72b86a538fc" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:1.4em;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
]]></description><link>https://forum.netxms.org/post/12257</link><guid isPermaLink="true">https://forum.netxms.org/post/12257</guid><dc:creator><![CDATA[enp]]></dc:creator><pubDate>Fri, 20 Dec 2013 09:11:51 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script for rule in Event Processing Policy on Fri, 20 Dec 2013 08:33:34 GMT]]></title><description><![CDATA[<p dir="auto">enp, настоятельно рекомендую уже быстрее проникнуться концепцией NetXMS.</p>
<p dir="auto">Передать $event из командной строки нельзя, но можно сгенерировать событие (из скрипта - <a href="http://wiki.netxms.org/wiki/NXSL:PostEvent" rel="nofollow ugc">PostEvent</a>, из командной строки - утилитой nxevent), на которое среагирует обработчик, в котором есть фильтрующий скрипт.</p>
<p dir="auto">Создай тестовый объект, тестовое событие, тестовый обработчик, и т.д.</p>
]]></description><link>https://forum.netxms.org/post/12255</link><guid isPermaLink="true">https://forum.netxms.org/post/12255</guid><dc:creator><![CDATA[glebofff]]></dc:creator><pubDate>Fri, 20 Dec 2013 08:33:34 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script for rule in Event Processing Policy on Fri, 20 Dec 2013 07:22:56 GMT]]></title><description><![CDATA[<pre><code>$ 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 &lt;name&gt;  Entry point
   -r         Print script return value
</code></pre>
<p dir="auto">Что такое entry point? Объекты вроде $event в nxscript передать нельзя?</p>
]]></description><link>https://forum.netxms.org/post/12249</link><guid isPermaLink="true">https://forum.netxms.org/post/12249</guid><dc:creator><![CDATA[enp]]></dc:creator><pubDate>Fri, 20 Dec 2013 07:22:56 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script for rule in Event Processing Policy on Fri, 20 Dec 2013 07:12:03 GMT]]></title><description><![CDATA[<p dir="auto">println выводит данные на консоль, ее имеет смысл использовать либо в тестовых скриптах, которые запускаются из nxscript, либо в скриптах, которые запускаются из дебаг консоли сервера командой exec.</p>
]]></description><link>https://forum.netxms.org/post/12246</link><guid isPermaLink="true">https://forum.netxms.org/post/12246</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Fri, 20 Dec 2013 07:12:03 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script for rule in Event Processing Policy on Fri, 20 Dec 2013 07:10:20 GMT]]></title><description><![CDATA[<p dir="auto">А куда и в каких случаях выводит данные функция println?</p>
]]></description><link>https://forum.netxms.org/post/12245</link><guid isPermaLink="true">https://forum.netxms.org/post/12245</guid><dc:creator><![CDATA[enp]]></dc:creator><pubDate>Fri, 20 Dec 2013 07:10:20 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script for rule in Event Processing Policy on Fri, 20 Dec 2013 07:09:35 GMT]]></title><description><![CDATA[<p dir="auto">Спасибо!</p>
<p dir="auto">С помощью trace удалось сформулировать правило так:</p>
<pre><code>return !($event-&gt;name like "SYS_IF_*" &amp;&amp; $event-&gt;parameters[2] like "Vi*");
</code></pre>
<p dir="auto">Наверное, это самый правильный вариант.</p>
]]></description><link>https://forum.netxms.org/post/12244</link><guid isPermaLink="true">https://forum.netxms.org/post/12244</guid><dc:creator><![CDATA[enp]]></dc:creator><pubDate>Fri, 20 Dec 2013 07:09:35 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script for rule in Event Processing Policy on Wed, 18 Dec 2013 14:17:38 GMT]]></title><description><![CDATA[<p dir="auto">Можно вывести в лог, функцией trace. Например так:</p>
<p dir="auto">trace(0, "$2='" . $2 . "'");</p>
]]></description><link>https://forum.netxms.org/post/12227</link><guid isPermaLink="true">https://forum.netxms.org/post/12227</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Wed, 18 Dec 2013 14:17:38 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script for rule in Event Processing Policy on Wed, 18 Dec 2013 12:46:18 GMT]]></title><description><![CDATA[<p dir="auto">Просто ваши примеры не работают - такое ощущение, что в $2 попадает совсем не имя интерфейса</p>
]]></description><link>https://forum.netxms.org/post/12221</link><guid isPermaLink="true">https://forum.netxms.org/post/12221</guid><dc:creator><![CDATA[enp]]></dc:creator><pubDate>Wed, 18 Dec 2013 12:46:18 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script for rule in Event Processing Policy on Wed, 18 Dec 2013 12:45:20 GMT]]></title><description><![CDATA[<p dir="auto">А скрипт может что-либо вывести в лог/консоль? Как это увидеть?</p>
]]></description><link>https://forum.netxms.org/post/12220</link><guid isPermaLink="true">https://forum.netxms.org/post/12220</guid><dc:creator><![CDATA[enp]]></dc:creator><pubDate>Wed, 18 Dec 2013 12:45:20 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script for rule in Event Processing Policy on Wed, 18 Dec 2013 12:26:39 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/enp" aria-label="Profile: enp">@<bdi>enp</bdi></a> said in <a href="/post/12218">Filtering script for rule in Event Processing Policy</a>:</p>
<blockquote>
<p dir="auto">Спасибо! Я верно понимаю, все возможные параметры к событиям описаны в Configuration -&gt; Event configuration?</p>
</blockquote>
<p dir="auto">да, верно.</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/enp" aria-label="Profile: enp">@<bdi>enp</bdi></a> said in <a href="/post/12218">Filtering script for rule in Event Processing Policy</a>:</p>
<blockquote>
<p dir="auto">И вопрос о запуске скриптов вручную по-прежнему актуален.</p>
</blockquote>
<p dir="auto">Для проверки обработки событий можно исскуственно создавать события при помощи команды nxevent. Например, для отсылки SYS_IF_DOWN команда может выглядеть так:</p>
<p dir="auto">nxevent -u admin 192.168.64.1 5 101 eth0 10.10.10.2 255.255.255.0 1</p>
]]></description><link>https://forum.netxms.org/post/12219</link><guid isPermaLink="true">https://forum.netxms.org/post/12219</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Wed, 18 Dec 2013 12:26:39 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script for rule in Event Processing Policy on Wed, 18 Dec 2013 12:01:47 GMT]]></title><description><![CDATA[<p dir="auto">Спасибо! Я верно понимаю, все возможные параметры к событиям описаны в Configuration -&gt; Event configuration?</p>
<p dir="auto">И вопрос о запуске скриптов вручную по-прежнему актуален.</p>
]]></description><link>https://forum.netxms.org/post/12218</link><guid isPermaLink="true">https://forum.netxms.org/post/12218</guid><dc:creator><![CDATA[enp]]></dc:creator><pubDate>Wed, 18 Dec 2013 12:01:47 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script for rule in Event Processing Policy on Wed, 18 Dec 2013 11:27:20 GMT]]></title><description><![CDATA[<p dir="auto">Когда-то раньше main() был обязателен, теперь уже нет. Но старая форма все равно поддерживается.</p>
<p dir="auto">Еще можно использовать регулярные выражения, например так:</p>
<pre><code>return $event-&gt;message ~= ".*Interface \"Vi.*";
</code></pre>
<p dir="auto">Ну и если речь идет о событиях SYS_IF_UP и SYS_IF_DOWN, то имя интерфейса передается как параметр номер 2, и можно сравнивать только его (тогда условие не будет зависеть от того, что текст сообщения поменяют в шаблоне):</p>
<pre><code>return $2 like "Vi*";
</code></pre>
<p dir="auto">или</p>
<pre><code>return substr($2, 1, 2) == "Vi";
</code></pre>
<p dir="auto">ну и если в названии могут быть прописные и строчные буквы:</p>
<pre><code>return upper(substr($2, 1, 2)) == "VI";
</code></pre>
]]></description><link>https://forum.netxms.org/post/12217</link><guid isPermaLink="true">https://forum.netxms.org/post/12217</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Wed, 18 Dec 2013 11:27:20 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script for rule in Event Processing Policy on Wed, 18 Dec 2013 10:05:48 GMT]]></title><description><![CDATA[<p dir="auto">Заработал такой вариант:</p>
<pre><code>return !index($event-&gt;message,"Interface \"Vi");
</code></pre>
<p dir="auto">С main тоже работает, но зачем нужны лишние 3 строчки - этого я не понял</p>
]]></description><link>https://forum.netxms.org/post/12213</link><guid isPermaLink="true">https://forum.netxms.org/post/12213</guid><dc:creator><![CDATA[enp]]></dc:creator><pubDate>Wed, 18 Dec 2013 10:05:48 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script for rule in Event Processing Policy on Wed, 18 Dec 2013 06:45:09 GMT]]></title><description><![CDATA[<p dir="auto">Соответствующий объект есть - <a href="http://wiki.netxms.org/wiki/NXSL:Event" rel="nofollow ugc">http://wiki.netxms.org/wiki/NXSL:Event</a>. И чуть раньше было найдено нечто похожее на substring в других языках - <a href="http://wiki.netxms.org/wiki/NXSL:index" rel="nofollow ugc">http://wiki.netxms.org/wiki/NXSL:index</a>. Очень не хватает ссылок на эти и другие объекты и функции из <a href="http://wiki.netxms.org/wiki/UM:NetXMS_Scripting_Language_%28NXSL%29" rel="nofollow ugc">http://wiki.netxms.org/wiki/UM:NetXMS_Scripting_Language_(NXSL)</a>.</p>
<p dir="auto">Откуда взять объект Event в Filtering script для правила? Пробую так:</p>
<pre><code>sub main()
{
  return !index($1-&gt;message,"Interface \"Vi");
}
</code></pre>
<p dir="auto">Все равно не работает.</p>
]]></description><link>https://forum.netxms.org/post/12211</link><guid isPermaLink="true">https://forum.netxms.org/post/12211</guid><dc:creator><![CDATA[enp]]></dc:creator><pubDate>Wed, 18 Dec 2013 06:45:09 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script for rule in Event Processing Policy on Wed, 18 Dec 2013 04:51:50 GMT]]></title><description><![CDATA[<p dir="auto">Нет, уже видно что не работает. Как правильно получить в NXSL хотя бы текст обрабатываемого события? Может есть возможность получить некий объект события с полями (код, сообщение и т.д.)? Есть ли возможность протестировать скрипт, т.е. запустить его вручную и на вход подать искусственно сформированное событие?</p>
]]></description><link>https://forum.netxms.org/post/12210</link><guid isPermaLink="true">https://forum.netxms.org/post/12210</guid><dc:creator><![CDATA[enp]]></dc:creator><pubDate>Wed, 18 Dec 2013 04:51:50 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script for rule in Event Processing Policy on Wed, 18 Dec 2013 04:36:51 GMT]]></title><description><![CDATA[<p dir="auto">Написал:</p>
<pre><code>sub main()
{
  return !index("%m","Interface \"Vi");
}
</code></pre>
<p dir="auto">Пока понаблюдаю, но написано совершенно по наитию, и уверенности нет. Это положено делать именно так?</p>
]]></description><link>https://forum.netxms.org/post/12209</link><guid isPermaLink="true">https://forum.netxms.org/post/12209</guid><dc:creator><![CDATA[enp]]></dc:creator><pubDate>Wed, 18 Dec 2013 04:36:51 GMT</pubDate></item></channel></rss>