<?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 и эвент исключения]]></title><description><![CDATA[<p dir="auto">Здравствуйте. Возникла необходимость создать исключения для обработки EPP SYS_IF_DOWN, есть нода, например, там сабинтерфейсы (клиентские) могут подниматься и опускать по много раз. В связи с этим их не хотелось бы обрабатывать и получать кучу алармов, нужно прибегнуть к Filtering Script или дописывать исключения по интерфейсам в Hook::ConfigurationPoll ? Хотелось бы попробовать с помощью Filtering Script, можете подсказать как это сделать на примере интерфейса eth0.1 eth02.3 и т.д.</p>
<p dir="auto">И еще вопрос по исключениям из обработки SYS_NODE_DOWN, необходимо сделать следующее: есть коммутаторы, по которым должны приходить alarm SYS_NODE_DOWN и есть сервера по которым должны приходить как alarm так и action email. Если я делаю Inverted Rule - то не совсем подходит, мне нужно получать только алармы и только от коммутаторов если они down и получать алармы и письма от серверов если они down.</p>
]]></description><link>https://forum.netxms.org/topic/4067/filtering-script-и-эвент-исключения</link><generator>RSS for Node</generator><lastBuildDate>Fri, 13 Nov 2026 22:11:12 GMT</lastBuildDate><atom:link href="https://forum.netxms.org/topic/4067.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 30 Oct 2015 10:03:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Filtering script и эвент исключения on Thu, 07 Jul 2016 09:49:35 GMT]]></title><description><![CDATA[<p dir="auto">например так:</p>
<pre><code>value = GetCustomAttribute(int, "ImportantInterface");
if (value == null)  // нет такого атрибута
{
   int-&gt;setExpectedState(0); // UP
}
</code></pre>
<p dir="auto">status propagation из скрипта поменять нельзя.</p>
]]></description><link>https://forum.netxms.org/post/20365</link><guid isPermaLink="true">https://forum.netxms.org/post/20365</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Thu, 07 Jul 2016 09:49:35 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script и эвент исключения on Wed, 22 Jun 2016 20:27:11 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/victor" aria-label="Profile: victor">@<bdi>victor</bdi></a> said in <a href="/post/18256">Filtering script и эвент исключения</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/hsvt" aria-label="Profile: hsvt">@<bdi>hsvt</bdi></a> said in <a href="/post/18250">Filtering script и эвент исключения</a>:</p>
<blockquote>
<p dir="auto">А пример фильтрации в EPP можете привести ?</p>
</blockquote>
<p dir="auto">Вроде про hook скрипты шла речь? Скрипт из примера можно модифицировать так:</p>
<pre><code>if ($node-&gt;snmpOID ~= "^.1.3.6.1.4.1.X")
{
	foreach(int : GetNodeInterfaces($node))
	{
		if ((int-&gt;name ~= "^eth[0-9]*\.") &amp;&amp; (GetCustomAttribute(int, "ImportantInterface") != "yes"))
		{
                     // do what is needed
	        }
	}
}
</code></pre>
<p dir="auto">Не будут обрабатываться интерфейсы у которых custom attribute ImportantInterface выставлен в yes.</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/hsvt" aria-label="Profile: hsvt">@<bdi>hsvt</bdi></a> said in <a href="/post/18250">Filtering script и эвент исключения</a>:</p>
<blockquote>
<p dir="auto"> И правильно ли я понимаю, если мне нужно для этой же группы серверов и клиентских интерфейсов сделать SYS_IF_DOWN с severity Normal, я создал еще одно EPP и поместил туда группу этих серверов (в Source Object) ну и далее Alarm Severity Normal, но как правильно сделать чтобы не пересекалось с основным EPP ?</p>
</blockquote>
<p dir="auto">Есть два варианта - либо в основном правиле добавить исключение для контейнера (добавить контейнер в список source и поставить negate), либо в первом правиле (для контейнера) добавить "stop processing" - тогда обработка события для этого контейнера будет остановлена на этом правиле.</p>
</blockquote>
<p dir="auto">Никак не могу сообразить, как бы в скрипте добавить проверку на то, что если Custom Attribute сняли с интерфейса - вернуть его прошлый SetInterfaceExpectedState и setStatusPropagation в default ?</p>
]]></description><link>https://forum.netxms.org/post/20226</link><guid isPermaLink="true">https://forum.netxms.org/post/20226</guid><dc:creator><![CDATA[hsvt]]></dc:creator><pubDate>Wed, 22 Jun 2016 20:27:11 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script и эвент исключения on Tue, 10 Nov 2015 20:46:10 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/hsvt" aria-label="Profile: hsvt">@<bdi>hsvt</bdi></a> said in <a href="/post/18250">Filtering script и эвент исключения</a>:</p>
<blockquote>
<p dir="auto">А пример фильтрации в EPP можете привести ?</p>
</blockquote>
<p dir="auto">Вроде про hook скрипты шла речь? Скрипт из примера можно модифицировать так:</p>
<pre><code>if ($node-&gt;snmpOID ~= "^.1.3.6.1.4.1.X")
{
	foreach(int : GetNodeInterfaces($node))
	{
		if ((int-&gt;name ~= "^eth[0-9]*\.") &amp;&amp; (GetCustomAttribute(int, "ImportantInterface") != "yes"))
		{
                     // do what is needed
	        }
	}
}
</code></pre>
<p dir="auto">Не будут обрабатываться интерфейсы у которых custom attribute ImportantInterface выставлен в yes.</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/hsvt" aria-label="Profile: hsvt">@<bdi>hsvt</bdi></a> said in <a href="/post/18250">Filtering script и эвент исключения</a>:</p>
<blockquote>
<p dir="auto"> И правильно ли я понимаю, если мне нужно для этой же группы серверов и клиентских интерфейсов сделать SYS_IF_DOWN с severity Normal, я создал еще одно EPP и поместил туда группу этих серверов (в Source Object) ну и далее Alarm Severity Normal, но как правильно сделать чтобы не пересекалось с основным EPP ?</p>
</blockquote>
<p dir="auto">Есть два варианта - либо в основном правиле добавить исключение для контейнера (добавить контейнер в список source и поставить negate), либо в первом правиле (для контейнера) добавить "stop processing" - тогда обработка события для этого контейнера будет остановлена на этом правиле.</p>
]]></description><link>https://forum.netxms.org/post/18256</link><guid isPermaLink="true">https://forum.netxms.org/post/18256</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Tue, 10 Nov 2015 20:46:10 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script и эвент исключения on Tue, 10 Nov 2015 13:52:48 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/victor" aria-label="Profile: victor">@<bdi>victor</bdi></a> said in <a href="/post/18198">Filtering script и эвент исключения</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/hsvt" aria-label="Profile: hsvt">@<bdi>hsvt</bdi></a> said in <a href="/post/18178">Filtering script и эвент исключения</a>:</p>
<blockquote>
<p dir="auto">У меня для тех у кого ignore (абоненты, например) эвент не генерируется, состояние нормал, Иконки в разделе Ports - красные. Другой вопрос, если бывает, нужно поставить на мониторинг абонентский порт с какой нибудь плавающей проблемой, а у тебя по Hook::ConfigurationPoll всё равно будет ставиться Ignore. Как вот тут лучше сделать?</p>
</blockquote>
<p dir="auto">Можно проверять custom attribute интерфейса и не ставить ему ignore если атрибут выставлен в какое-то специальное значение.</p>
</blockquote>
<p dir="auto">А пример фильтрации в EPP можете привести ? И правильно ли я понимаю, если мне нужно для этой же группы серверов и клиентских интерфейсов сделать SYS_IF_DOWN с severity Normal, я создал еще одно EPP и поместил туда группу этих серверов (в Source Object) ну и далее Alarm Severity Normal, но как правильно сделать чтобы не пересекалось с основным EPP ?</p>
<hr />
<p dir="auto"><img src="/assets/uploads/files/smf/0000000002621-epepps.jpg" alt="epepps.jpg" class="img-markdown  img-fluid" width="946" height="300" /></p>
]]></description><link>https://forum.netxms.org/post/18250</link><guid isPermaLink="true">https://forum.netxms.org/post/18250</guid><dc:creator><![CDATA[hsvt]]></dc:creator><pubDate>Tue, 10 Nov 2015 13:52:48 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script и эвент исключения on Fri, 06 Nov 2015 10:52:07 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/hsvt" aria-label="Profile: hsvt">@<bdi>hsvt</bdi></a> said in <a href="/post/18178">Filtering script и эвент исключения</a>:</p>
<blockquote>
<p dir="auto">У меня для тех у кого ignore (абоненты, например) эвент не генерируется, состояние нормал, Иконки в разделе Ports - красные. Другой вопрос, если бывает, нужно поставить на мониторинг абонентский порт с какой нибудь плавающей проблемой, а у тебя по Hook::ConfigurationPoll всё равно будет ставиться Ignore. Как вот тут лучше сделать?</p>
</blockquote>
<p dir="auto">Можно проверять custom attribute интерфейса и не ставить ему ignore если атрибут выставлен в какое-то специальное значение.</p>
]]></description><link>https://forum.netxms.org/post/18198</link><guid isPermaLink="true">https://forum.netxms.org/post/18198</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Fri, 06 Nov 2015 10:52:07 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script и эвент исключения on Fri, 06 Nov 2015 10:50:35 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/hsvt" aria-label="Profile: hsvt">@<bdi>hsvt</bdi></a> said in <a href="/post/18178">Filtering script и эвент исключения</a>:</p>
<blockquote>
<p dir="auto">Ну и с почтой и эвентом SYS_NODE_DOWN тоже не понятно, надо чтобы от одних устройств были только алармы, а от других и алармы и письма еще...</p>
</blockquote>
<p dir="auto">А как эти устройства различаются? Самое простое - положить все устройства где нужна почта в отдельный контейнер, и в EPP отсылку писем фильтровать еще и по контейнеру. Другой вариант - использовать custom attributes для отметки устройств, по которым надо почту слать.</p>
]]></description><link>https://forum.netxms.org/post/18197</link><guid isPermaLink="true">https://forum.netxms.org/post/18197</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Fri, 06 Nov 2015 10:50:35 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script и эвент исключения on Thu, 05 Nov 2015 20:47:44 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/harun" aria-label="Profile: harun">@<bdi>harun</bdi></a> said in <a href="/post/18160">Filtering script и эвент исключения</a>:</p>
<blockquote>
<p dir="auto">Кстати вопрос - если я ставлю для интерфейса expected state = ignore, то изменение состояния не должно генерировать event, но его состояние все равно опрашивается. Почему у интерфейсов в состоянии down все равно зеленая иконка?</p>
</blockquote>
<p dir="auto">У меня для тех у кого ignore (абоненты, например) эвент не генерируется, состояние нормал, Иконки в разделе Ports - красные. Другой вопрос, если бывает, нужно поставить на мониторинг абонентский порт с какой нибудь плавающей проблемой, а у тебя по Hook::ConfigurationPoll всё равно будет ставиться Ignore. Как вот тут лучше сделать?</p>
<p dir="auto">Ну и с почтой и эвентом SYS_NODE_DOWN тоже не понятно, надо чтобы от одних устройств были только алармы, а от других и алармы и письма еще...</p>
]]></description><link>https://forum.netxms.org/post/18178</link><guid isPermaLink="true">https://forum.netxms.org/post/18178</guid><dc:creator><![CDATA[hsvt]]></dc:creator><pubDate>Thu, 05 Nov 2015 20:47:44 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script и эвент исключения on Sat, 31 Oct 2015 19:35:47 GMT]]></title><description><![CDATA[<p dir="auto">Кстати вопрос - если я ставлю для интерфейса expected state = ignore, то изменение состояния не должно генерировать event, но его состояние все равно опрашивается. Почему у интерфейсов в состоянии down все равно зеленая иконка?</p>
]]></description><link>https://forum.netxms.org/post/18160</link><guid isPermaLink="true">https://forum.netxms.org/post/18160</guid><dc:creator><![CDATA[Harun]]></dc:creator><pubDate>Sat, 31 Oct 2015 19:35:47 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script и эвент исключения on Fri, 30 Oct 2015 13:38:11 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/harun" aria-label="Profile: harun">@<bdi>harun</bdi></a> said in <a href="/post/18154">Filtering script и эвент исключения</a>:</p>
<blockquote>
<p dir="auto">Для абонентских портов можно делать unmanage при помощи Hook::ConfigurationPoll например так:</p>
<pre><code>if ($node-&gt;snmpOID ~= "^.1.3.6.1.4.1.X")
{
	foreach(int : GetNodeInterfaces($node))
	{
		if (int-&gt;name ~= "^eth[0-9]*\.")
		{
	      UnmanageObject (int);
	    }
	}
}
</code></pre>
</blockquote>
<p dir="auto">У меня такое сделано для абонентских портов на коммутаторе, но я решил мониторить в NetXMS так же сервера доступа (NAS,BRAS) в сеть интернет. Там так же для них создаются интерфейсы (сабинтерфейсы), так вот скрипт  Hook::ConfigurationPoll он и так уже достаточно большой, поэтому я думаю может лучше как то сделать в EPP через Filtering Script ? Или мне теперь еще и под каждый сервер в этот скрипт дописывать? Как то хочется менее костыльно, может в будущем разработчики реализуют основную часть таких моментов в клиенте ? Ну чтобы такую логику и гибкость можно было реализовать...</p>
]]></description><link>https://forum.netxms.org/post/18156</link><guid isPermaLink="true">https://forum.netxms.org/post/18156</guid><dc:creator><![CDATA[hsvt]]></dc:creator><pubDate>Fri, 30 Oct 2015 13:38:11 GMT</pubDate></item><item><title><![CDATA[Reply to Filtering script и эвент исключения on Fri, 30 Oct 2015 12:46:34 GMT]]></title><description><![CDATA[<p dir="auto">Для абонентских портов можно делать unmanage при помощи Hook::ConfigurationPoll например так:</p>
<pre><code>if ($node-&gt;snmpOID ~= "^.1.3.6.1.4.1.X")
{
	foreach(int : GetNodeInterfaces($node))
	{
		if (int-&gt;name ~= "^eth[0-9]*\.")
		{
	      UnmanageObject (int);
	    }
	}
}
</code></pre>
]]></description><link>https://forum.netxms.org/post/18154</link><guid isPermaLink="true">https://forum.netxms.org/post/18154</guid><dc:creator><![CDATA[Harun]]></dc:creator><pubDate>Fri, 30 Oct 2015 12:46:34 GMT</pubDate></item></channel></rss>