<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.netxms.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tomas+Kirnak</id>
	<title>NetXMS Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.netxms.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tomas+Kirnak"/>
	<link rel="alternate" type="text/html" href="https://wiki.netxms.org/wiki/Special:Contributions/Tomas_Kirnak"/>
	<updated>2026-04-21T21:59:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.4</generator>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=SG:Security_Issues&amp;diff=1678</id>
		<title>SG:Security Issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=SG:Security_Issues&amp;diff=1678"/>
		<updated>2018-01-31T00:34:19Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Updated default Trusted Nodes to false - change in 2.x&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Security Issues}}&lt;br /&gt;
Because NXSL provides functions for searching objects, and because all scripts are executed on management server, user with write access to only one node can potentially acquire information about nodes to which he normally does not have access. For example, without additional security checks user with write access to node A and no access to node B can create transformation script for DCI on node A and use [[NXSL:FindNodeObject|FindNodeObject]] function to access node B and get information about it, thus breaking security settings.&lt;br /&gt;
&lt;br /&gt;
To prevent such scenario, all NXSL functions capable of accessing NetXMS objects requires &amp;quot;current node&amp;quot; object to be provided. Reference to object being searched will only be returned if node object supplied as &amp;quot;current node&amp;quot; is in trusted nodes list of target object. For example, if variable &amp;#039;&amp;#039;&amp;#039;$node&amp;#039;&amp;#039;&amp;#039; in script refers to NODE1, and [[NXSL:FindNodeObject|FindNodeObject]]($node, &amp;quot;NODE2&amp;quot;) called, NODE1 must be added to list of trusted nodes for NODE2. In most places (transformation script, event processing policy, etc.) predefined variable &amp;#039;&amp;#039;&amp;#039;$node&amp;#039;&amp;#039;&amp;#039; exists, which refers to node object on behalf of which script is being executed. It will be event source for event processing policy script, DCI owner for transformation script, and so on.&lt;br /&gt;
&lt;br /&gt;
For environments where such strict security checks are not required (for example, all users have read access to all nodes), they can be disabled to simplify configuration. Enforcement of trusted nodes checking controlled by server&amp;#039;s configuration variable &amp;#039;&amp;#039;&amp;#039;CheckTrustedNodes&amp;#039;&amp;#039;&amp;#039;. By default it is set to &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039; and check of trusted nodes is not enforced. To enable it, server&amp;#039;s configuration variable &amp;#039;&amp;#039;&amp;#039;CheckTrustedNodes&amp;#039;&amp;#039;&amp;#039; must be set to &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;. The server restart is required to make this change effective.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting Guide]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=Reseting_state_of_all_alarms_and_node_statuses&amp;diff=1672</id>
		<title>Reseting state of all alarms and node statuses</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=Reseting_state_of_all_alarms_and_node_statuses&amp;diff=1672"/>
		<updated>2018-01-12T18:02:52Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sometimes, it can be useful to reset the &amp;quot;state&amp;quot; of all your NetXMS objects completely.&lt;br /&gt;
&lt;br /&gt;
For example, if you recover the DB from an older date, a lot of alarms and node statuses will be outdated.&amp;lt;br&amp;gt;&lt;br /&gt;
However, some alarms might not terminate due to the current status of the system differing from the previous state.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Its also possible that you miss-configured EPP to not close down alarms, etc.&amp;lt;br&amp;gt;&lt;br /&gt;
There is many ways when the NetXMS alarms can become abandoned, or out-of-state due to user errors or infrastrucutre issues.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically, your NetXMS system will be reset to a state where it &amp;quot;thinks&amp;quot; all things are currently OK.&amp;lt;br&amp;gt;&lt;br /&gt;
So after it starts up, it will regenerate all alarms for things that are not in a state they should be.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After performing this procedure, you can be sure that the outstanding alarms are current.&lt;br /&gt;
&lt;br /&gt;
Before you start, make sure to shut down the NetXMS server, and run &amp;quot;nxdbmgr check&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To completely reset the state of all object you can:&amp;lt;br&amp;gt;&lt;br /&gt;
(these commands should be run on the database NetXMS uses)&lt;br /&gt;
 UPDATE thresholds SET current_state=0;&lt;br /&gt;
 UPDATE alarms SET alarm_state=3;&lt;br /&gt;
 TRUNCATE TABLE alarm_events;&lt;br /&gt;
 UPDATE nodes SET runtime_flags = 0;&lt;br /&gt;
 UPDATE interfaces SET admin_state=0,oper_state=0;&lt;br /&gt;
 UPDATE object_properties SET status=5 WHERE object_id IN (SELECT id FROM interfaces);&lt;br /&gt;
 UPDATE items SET status=0 WHERE status=2;&lt;br /&gt;
&lt;br /&gt;
This will:&lt;br /&gt;
*Terminate all alarms&lt;br /&gt;
*Set nodes to properly generate new alarms if down, agent unreachable, etc.&lt;br /&gt;
*Set threshold to properly generate new alarms if violated&lt;br /&gt;
*Set interfaces to properly generate new alarms if not in expected state&lt;br /&gt;
&lt;br /&gt;
You will lose:&lt;br /&gt;
*Any one-time alarms (from Syslog, SNMP traps, etc.)&lt;br /&gt;
*State of alarms (acknowledged, etc.)&lt;br /&gt;
*Comments on alarms&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=Reseting_state_of_all_alarms_and_node_statuses&amp;diff=1671</id>
		<title>Reseting state of all alarms and node statuses</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=Reseting_state_of_all_alarms_and_node_statuses&amp;diff=1671"/>
		<updated>2018-01-12T18:02:01Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sometimes, it can be useful to reset the &amp;quot;state&amp;quot; of all your NetXMS objects completely.&lt;br /&gt;
&lt;br /&gt;
For example, if you recover the DB from an older date, a lot of alarms and node statuses will be outdated.&amp;lt;br&amp;gt;&lt;br /&gt;
However, some alarms might not terminate due to the current status of the system differing from the previous state.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Its also possible that you miss-configured EPP to not close down alarms, etc.&amp;lt;br&amp;gt;&lt;br /&gt;
There is many ways when the NetXMS alarms can become abandoned, or out-of-state due to user errors or infrastrucutre issues.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically, your NetXMS system will be reset to a state where it &amp;quot;thinks&amp;quot; all things are currently OK.&amp;lt;br&amp;gt;&lt;br /&gt;
So after it starts up, it will regenerate all alarms for things that are not in a state they should be.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After performing this procedure, you can be sure that the outstanding alarms are current.&lt;br /&gt;
&lt;br /&gt;
Before you start, make sure to shut down the NetXMS server, and run &amp;quot;nxdbmgr check&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To completely reset the state of all object you can:&amp;lt;br&amp;gt;&lt;br /&gt;
 UPDATE thresholds SET current_state=0;&lt;br /&gt;
 UPDATE alarms SET alarm_state=3;&lt;br /&gt;
 TRUNCATE TABLE alarm_events;&lt;br /&gt;
 UPDATE nodes SET runtime_flags = 0;&lt;br /&gt;
 UPDATE interfaces SET admin_state=0,oper_state=0;&lt;br /&gt;
 UPDATE object_properties SET status=5 WHERE object_id IN (SELECT id FROM interfaces);&lt;br /&gt;
 UPDATE items SET status=0 WHERE status=2;&lt;br /&gt;
&lt;br /&gt;
This will:&lt;br /&gt;
*Terminate all alarms&lt;br /&gt;
*Set nodes to properly generate new alarms if down, agent unreachable, etc.&lt;br /&gt;
*Set threshold to properly generate new alarms if violated&lt;br /&gt;
*Set interfaces to properly generate new alarms if not in expected state&lt;br /&gt;
&lt;br /&gt;
You will lose:&lt;br /&gt;
*Any one-time alarms (from Syslog, SNMP traps, etc.)&lt;br /&gt;
*State of alarms (acknowledged, etc.)&lt;br /&gt;
*Comments on alarms&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=Reseting_state_of_all_alarms_and_node_statuses&amp;diff=1670</id>
		<title>Reseting state of all alarms and node statuses</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=Reseting_state_of_all_alarms_and_node_statuses&amp;diff=1670"/>
		<updated>2018-01-12T18:01:27Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sometimes, it can be useful to reset the &amp;quot;state&amp;quot; of all your NetXMS objects completely.&lt;br /&gt;
&lt;br /&gt;
For example, if you recover the DB from an older date, a lot of alarms and node statuses will be outdated.&amp;lt;br&amp;gt;&lt;br /&gt;
However, some alarms might not terminate due to the current status of the system differing from the previous state.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Its also possible that you miss-configured EPP to not close down alarms, etc.&amp;lt;br&amp;gt;&lt;br /&gt;
There is many ways when the NetXMS alarms can become abandoned, or out-of-state due to user errors or infrastrucutre issues.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically, your NetXMS system will be reset to a state where it &amp;quot;thinks&amp;quot; all things are currently OK.&amp;lt;br&amp;gt;&lt;br /&gt;
So after it starts up, it will regenerate all alarms for things that are not in a state they should be.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After performing this procedure, you can be sure that the outstanding alarms are current.&lt;br /&gt;
&lt;br /&gt;
Before you start, make sure to shut down the NetXMS server, and run &amp;quot;nxdbmgr check&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To completely reset the state of all object you can:&amp;lt;br&amp;gt;&lt;br /&gt;
 UPDATE thresholds SET current_state=0;&lt;br /&gt;
 UPDATE alarms SET alarm_state=3;&lt;br /&gt;
 TRUNCATE TABLE alarm_events;&lt;br /&gt;
 UPDATE nodes SET runtime_flags = 0;&lt;br /&gt;
 UPDATE interfaces SET admin_state=0,oper_state=0;&lt;br /&gt;
 UPDATE object_properties SET status=5 WHERE object_id IN (SELECT id FROM interfaces);&lt;br /&gt;
 UPDATE items SET status=0 WHERE status=2;&lt;br /&gt;
&lt;br /&gt;
This will:&lt;br /&gt;
*Terminate all alarms&lt;br /&gt;
*Set nodes to properly generate new alarms if down, agent unreachable, etc.&lt;br /&gt;
*Set threshold to properly generate new alarms if violated&lt;br /&gt;
*Set interfaces to properly generate new alarms if not in expected state&lt;br /&gt;
&lt;br /&gt;
You will lose:&lt;br /&gt;
*Any one-time alarms (from Syslog, SNMP traps, etc.)&lt;br /&gt;
*State of alarms (acknowledged, etc.)&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=Reseting_state_of_all_alarms_and_node_statuses&amp;diff=1669</id>
		<title>Reseting state of all alarms and node statuses</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=Reseting_state_of_all_alarms_and_node_statuses&amp;diff=1669"/>
		<updated>2018-01-12T18:00:41Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Created page with &amp;quot;Sometimes, it can be useful to reset the &amp;quot;state&amp;quot; of all your NetXMS objects completely.  For example, if you recover the DB from an older date, a lot of alarms and node status...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sometimes, it can be useful to reset the &amp;quot;state&amp;quot; of all your NetXMS objects completely.&lt;br /&gt;
&lt;br /&gt;
For example, if you recover the DB from an older date, a lot of alarms and node statuses will be outdated.&amp;lt;br&amp;gt;&lt;br /&gt;
However, some alarms might not terminate due to the current status of the system differing from the previous state.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Its also possible that you miss-configured EPP to not close down alarms, etc.&lt;br /&gt;
There is many ways when the NetXMS alarms can become abandoned, or out-of-state due to user errors or infrastrucutre issues.&lt;br /&gt;
&lt;br /&gt;
Basically, your NetXMS system will be reset to a state where it &amp;quot;thinks&amp;quot; all things are currently OK.&lt;br /&gt;
So after it starts up, it will regenerate all alarms for things that are not in a state they should be.&lt;br /&gt;
&lt;br /&gt;
After performing this procedure, you can be sure that the outstanding alarms are current.&lt;br /&gt;
&lt;br /&gt;
Before you start, make sure to shut down the NetXMS server, and run &amp;quot;nxdbmgr check&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To completely reset the state of all object you can:&amp;lt;br&amp;gt;&lt;br /&gt;
 UPDATE thresholds SET current_state=0;&lt;br /&gt;
 UPDATE alarms SET alarm_state=3;&lt;br /&gt;
 TRUNCATE TABLE alarm_events;&lt;br /&gt;
 UPDATE nodes SET runtime_flags = 0;&lt;br /&gt;
 UPDATE interfaces SET admin_state=0,oper_state=0;&lt;br /&gt;
 UPDATE object_properties SET status=5 WHERE object_id IN (SELECT id FROM interfaces);&lt;br /&gt;
 UPDATE items SET status=0 WHERE status=2;&lt;br /&gt;
&lt;br /&gt;
This will:&lt;br /&gt;
*Terminate all alarms&lt;br /&gt;
*Set nodes to properly generate new alarms if down, agent unreachable, etc.&lt;br /&gt;
*Set threshold to properly generate new alarms if violated&lt;br /&gt;
*Set interfaces to properly generate new alarms if not in expected state&lt;br /&gt;
&lt;br /&gt;
You will lose:&lt;br /&gt;
*Any one-time alarms (from Syslog, SNMP traps, etc.)&lt;br /&gt;
*State of alarms (acknowledged, etc.)&lt;br /&gt;
*Comments on alarms&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=Main_Page&amp;diff=1668</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=Main_Page&amp;diff=1668"/>
		<updated>2018-01-12T15:50:34Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: /* Miscellaneous Documents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Manuals =&lt;br /&gt;
&lt;br /&gt;
NB! Administrator and operator guides are migrated from Wiki to separate documents: [[http://www.netxms.org/documentation/adminguide Admin Guide - Online]], [[http://www.netxms.org/documentation/netxms-admin.pdf Admin Guide - PDF]], [[http://www.netxms.org/documentation/userguide Operator Guide - Online]], [[http://www.netxms.org/documentation/netxms-user.pdf Operator Guide - PDF]].&lt;br /&gt;
&lt;br /&gt;
To contribute, please contact us at team@netxms.org for write access to documentation repository.&lt;br /&gt;
&lt;br /&gt;
[[Installation Guide]]&lt;br /&gt;
&lt;br /&gt;
[[User Manual]]&lt;br /&gt;
&lt;br /&gt;
[[Scripting Guide]]&lt;br /&gt;
&lt;br /&gt;
[[System Reference]]&lt;br /&gt;
&lt;br /&gt;
[[Using APT Repository|APT Repository for Debian/Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
[[Compiling NetXMS for OpenWRT]]&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
&lt;br /&gt;
[[NetXMS Video Tutorial Series]]&lt;br /&gt;
&lt;br /&gt;
[[How to send e-mail notification when disk space is low]]&lt;br /&gt;
&lt;br /&gt;
[[Using nxshell to automate bulk operations]]&lt;br /&gt;
&lt;br /&gt;
[[NetXMS as a cluster (high-availability) application]]&lt;br /&gt;
&lt;br /&gt;
[[Creating a Dashboard]]&lt;br /&gt;
&lt;br /&gt;
[[Creating SNMP table DCI]]&lt;br /&gt;
&lt;br /&gt;
[[OS process monitoring using SNMP]]&lt;br /&gt;
&lt;br /&gt;
[[Step by step service monitoring]]&lt;br /&gt;
&lt;br /&gt;
[[Reporting server setup]]&lt;br /&gt;
&lt;br /&gt;
[[NetXMS Grafana datasource setup]]&lt;br /&gt;
&lt;br /&gt;
[[Deploy NetXMS WebAPI using the WebUI Windows installer (Windows only!)]]&lt;br /&gt;
&lt;br /&gt;
= Miscellaneous Documents =&lt;br /&gt;
&lt;br /&gt;
This section contains useful documents which should be part of User Manual,  but not integrated there yet.&lt;br /&gt;
&lt;br /&gt;
[[OS X Java issues]]&lt;br /&gt;
&lt;br /&gt;
[[ExternalParametersProvider|External Parameters Provider]]&lt;br /&gt;
&lt;br /&gt;
[[Autologin for Management Console]]&lt;br /&gt;
&lt;br /&gt;
[[Unsorted Features List]]&lt;br /&gt;
&lt;br /&gt;
[[Windows Performance Counters]]&lt;br /&gt;
&lt;br /&gt;
[[How to Install Agent on ZeroShell]]&lt;br /&gt;
&lt;br /&gt;
[[Enable SNMP for devices without standard system MIB]]&lt;br /&gt;
&lt;br /&gt;
[[Add new MIBs]]&lt;br /&gt;
&lt;br /&gt;
[[How to Encrypt Database Passwords]]&lt;br /&gt;
&lt;br /&gt;
[[Running NetXMS under debugger]]&lt;br /&gt;
&lt;br /&gt;
[[Details about database connection]]&lt;br /&gt;
&lt;br /&gt;
[[How to migrate to another database]]&lt;br /&gt;
&lt;br /&gt;
[[How to enable ICMP ping for NetXMS server running under non-root account]]&lt;br /&gt;
&lt;br /&gt;
[[How to fix console crash on Linux]]&lt;br /&gt;
&lt;br /&gt;
[[How to configure agent to server connection]]&lt;br /&gt;
&lt;br /&gt;
[[NetXMS WebAPI]]&lt;br /&gt;
&lt;br /&gt;
[[Reseting state of all alarms and node statuses]]&lt;br /&gt;
&lt;br /&gt;
= Solutions =&lt;br /&gt;
&lt;br /&gt;
[[Uninterruptible Power Supply (UPS) Monitoring]]&lt;br /&gt;
&lt;br /&gt;
[[UPS Monitoring (APC) via SNMP]]&lt;br /&gt;
&lt;br /&gt;
[[IBM Storwize V7000|IBM Storwize V7000 (and possibly other IBM arrays)]]&lt;br /&gt;
&lt;br /&gt;
[[HP P2000]]&lt;br /&gt;
&lt;br /&gt;
[[Linux monitoring]]&lt;br /&gt;
&lt;br /&gt;
[[MTBF (Mean Time Between Failures) and MTTR (Mean Time To Repair) Calculation]]&lt;br /&gt;
&lt;br /&gt;
[[&amp;#039;Backbone&amp;#039; L3 Map - map without end-device subnets]]&lt;br /&gt;
&lt;br /&gt;
[[Ubiquiti and Ligowave wireless monitoring]]&lt;br /&gt;
&lt;br /&gt;
[[Application monitoring]]&lt;br /&gt;
&lt;br /&gt;
[[Mass node import into NetXMS]]&lt;br /&gt;
&lt;br /&gt;
= Integration =&lt;br /&gt;
[[NetXMS Integration with HP Operations Manager]]&lt;br /&gt;
&lt;br /&gt;
[[Slack.com integration]]&lt;br /&gt;
&lt;br /&gt;
= Documentation for Developers =&lt;br /&gt;
[[Coding Style]]&lt;br /&gt;
&lt;br /&gt;
[[Communication Protocol Reference Guide]]&lt;br /&gt;
&lt;br /&gt;
[[Internal API]]&lt;br /&gt;
&lt;br /&gt;
[[Network Device Drivers]]&lt;br /&gt;
&lt;br /&gt;
[[How to setup Eclipse/RAP]]&lt;br /&gt;
&lt;br /&gt;
[[How to compile report-generator]]&lt;br /&gt;
&lt;br /&gt;
[[Working with UNICODE]]&lt;br /&gt;
&lt;br /&gt;
[[Web service API]]&lt;br /&gt;
&lt;br /&gt;
[[Building Debian packages]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=NXSL:Zone&amp;diff=1663</id>
		<title>NXSL:Zone</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=NXSL:Zone&amp;diff=1663"/>
		<updated>2018-01-05T18:42:23Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: proxyNode description update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Represents NetXMS zone object&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Class Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Zone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attributes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Inherits all attributes of the [[NXSL:NetObj|NetObj class]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| proxyNode || object ([[NXSL:Node|Node]]) || Node object used as Zone proxy (&amp;#039;&amp;#039;&amp;#039;null&amp;#039;&amp;#039;&amp;#039; if zone has no proxy)&lt;br /&gt;
|-&lt;br /&gt;
| proxyNodeId || int32 || Identifier of node object used as proxy&lt;br /&gt;
|-&lt;br /&gt;
| uin || int32 || Zone UIN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:NXSL Class Reference]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=NXSL:Zone&amp;diff=1662</id>
		<title>NXSL:Zone</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=NXSL:Zone&amp;diff=1662"/>
		<updated>2018-01-05T18:41:02Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Updated after recent zone rework (ID changed to UIN, proxy attribute updates)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Represents NetXMS zone object&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Class Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Zone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attributes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Inherits all attributes of the [[NXSL:NetObj|NetObj class]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| proxyNode || object ([[NXSL:Node|Node]]) || Identifier of node object used as agent proxy&lt;br /&gt;
|-&lt;br /&gt;
| proxyNodeId || int32 || Identifier of node object used as proxy&lt;br /&gt;
|-&lt;br /&gt;
| uin || int32 || Zone UIN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:NXSL Class Reference]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=NXSL:Node&amp;diff=1661</id>
		<title>NXSL:Node</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=NXSL:Node&amp;diff=1661"/>
		<updated>2018-01-05T18:38:36Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Updated zoneId to ZoneUIN&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Represents NetXMS node object.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Class Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attributes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Inherits all attributes of the [[NXSL:NetObj|NetObj class]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| agentVersion || string || NetXMS agent&amp;#039;s version&lt;br /&gt;
|-&lt;br /&gt;
| bootTime || int64 || Node boot time or 0 if not known (in seconds since epoch)&lt;br /&gt;
|-&lt;br /&gt;
| bridgeBaseAddress || string || Bridge base address (will return &amp;quot;000000000000&amp;quot; if not known or node is not a bridge/switch)&lt;br /&gt;
|-&lt;br /&gt;
| components || object ([[NXSL:Component | Component]]) || The root physical component object of the node&lt;br /&gt;
|-&lt;br /&gt;
| driver || string || Driver name&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:Node:flags | flags]] || uint32 || Node flags (bit mask)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;quot;is802_1x&amp;quot; or &amp;quot;isPAE&amp;quot; || boolean || TRUE if node supports 802.1x&lt;br /&gt;
|-&lt;br /&gt;
| isAgent || boolean || TRUE if NetXMS agent detected on node&lt;br /&gt;
|-&lt;br /&gt;
| isBridge || boolean || TRUE if node is a bridge&lt;br /&gt;
|-&lt;br /&gt;
| isCDP || boolean || TRUE if node supports CDP (Cisco Discovery Protocol)&lt;br /&gt;
|-&lt;br /&gt;
| isLLDP || boolean || TRUE if node supports LLDP (Link Layer Discovery Protocol)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;quot;isLocalMgmt&amp;quot; or &amp;quot;isLocalManagement&amp;quot; || boolean || TRUE if node is a local management server (NetXMS server)&lt;br /&gt;
|-&lt;br /&gt;
| isPrinter || boolean || TRUE if node is a printer&lt;br /&gt;
|-&lt;br /&gt;
| isRouter || boolean || TRUE if node is a router (has IP forwarding enabled)&lt;br /&gt;
|-&lt;br /&gt;
| isSMCLP|| boolean || TRUE if SMCLP agent detected on node&lt;br /&gt;
|-&lt;br /&gt;
| isSNMP || boolean || TRUE if SNMP agent detected on node&lt;br /&gt;
|-&lt;br /&gt;
| isSONMP || boolean || TRUE if node supports SONMP/NDP (Synoptics/Nortel Discovery Protocol)&lt;br /&gt;
|-&lt;br /&gt;
| platformName || string || Platform name reported by NetXMS agent&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:Node:runtimeFlags | runtimeFlags]] || uint32 || Node runtime flags (bit mask)&lt;br /&gt;
|-&lt;br /&gt;
| snmpOID || string || SNMP object identifier (value of .1.3.6.1.2.1.1.2.0)&lt;br /&gt;
|-&lt;br /&gt;
| snmpSysContact || string || SNMP system contact (value of .1.3.6.1.2.1.1.4.0)&lt;br /&gt;
|-&lt;br /&gt;
| snmpSysLocation || string || SNMP system location (value of .1.3.6.1.2.1.1.6.0)&lt;br /&gt;
|-&lt;br /&gt;
| snmpSysName || string || SNMP system name (value of .1.3.6.1.2.1.1.5.0)&lt;br /&gt;
|-&lt;br /&gt;
| snmpVersion || int32 || Configured SNMP version (0 for SNMP version 1, 1 for SNMP version 2c, 2 for SNMP version 3)&lt;br /&gt;
|-&lt;br /&gt;
| sysDescription || string || System description (value of System.Uname for nodes with agents or .1.3.6.1.2.1.1.1.0 for SNMP nodes)&lt;br /&gt;
|-&lt;br /&gt;
| zone || object ([[NXSL:Zone|Zone]]) || Zone object (&amp;#039;&amp;#039;&amp;#039;null&amp;#039;&amp;#039;&amp;#039; if zoning is disabled)&lt;br /&gt;
|-&lt;br /&gt;
| zoneUIN || int32 || Zone UIN (0 if zoning is disabled)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Methods&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Parameters !! Return value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:NetObj:clearGeoLocation|clearGeoLocation]] || none || none || Clears GeoLocation data from the node&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:NetObj:setGeoLocation|setGeoLocation]] || Object of [[NXSL:GeoLocation|GeoLocation]] class || none || Sets GeoLocation data for the node&lt;br /&gt;
|-&lt;br /&gt;
| enableAgent || boolean || none ||Enable or disable usage of NetXMS agent for all polls&lt;br /&gt;
|-&lt;br /&gt;
| enableConfigurationPolling || boolean || none || Enable or disable configuration polling for a node&lt;br /&gt;
|-&lt;br /&gt;
| enableIcmp || boolean || none || Enable or disable usage of ICMP pings for status polls&lt;br /&gt;
|-&lt;br /&gt;
| enableRoutingTablePolling || boolean || none || Enable or disable routing table polling (since 2.1.1)&lt;br /&gt;
|-&lt;br /&gt;
| enableSnmp || boolean || none || Enable or disable usage of SNMP for all polls&lt;br /&gt;
|-&lt;br /&gt;
| enableStatusPolling || boolean || none || Enable or disable status polling for a node&lt;br /&gt;
|-&lt;br /&gt;
| enableTopologyPolling || boolean || none || Enable or disable topology polling&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Example (disable usage of NetXMS agent for all polls):&lt;br /&gt;
 $node-&amp;gt;enableAgent(false);&lt;br /&gt;
&lt;br /&gt;
[[Category:NXSL Class Reference]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=NXSL:SetCustomAttribute&amp;diff=1647</id>
		<title>NXSL:SetCustomAttribute</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=NXSL:SetCustomAttribute&amp;diff=1647"/>
		<updated>2017-12-21T16:20:10Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Set value of objects custom attribute. If attribute was not defined, it will be created.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Since:&amp;#039;&amp;#039;&amp;#039; 1.1.1&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
SetCustomAttribute(&amp;#039;&amp;#039;object&amp;#039;&amp;#039;, &amp;#039;&amp;#039;attributeName&amp;#039;&amp;#039;, &amp;#039;&amp;#039;value&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;object&amp;#039;&amp;#039; || Any object of [[NXSL_Class_Reference|NetObj class]], or its sub-classes.&lt;br /&gt;
You can use predefined variable $node to refer to current node. You can also use null as node if trusted nodes check is disabled (see [[SG:Security Issues|Security Issues]] for more information).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;attributeName&amp;#039;&amp;#039; || Custom attribute name.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;value&amp;#039;&amp;#039; || New value for custom attribute.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Return Value ==&lt;br /&gt;
&lt;br /&gt;
Previous value of requested custom attribute or &amp;#039;&amp;#039;&amp;#039;NULL&amp;#039;&amp;#039;&amp;#039; if attribute was not defined before.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
 SetCustomAttribute($node, &amp;quot;my_attribute&amp;quot;, &amp;quot;new value&amp;quot;)			-&amp;gt; &amp;quot;old value&amp;quot;&lt;br /&gt;
 SetCustomAttribute($node, &amp;quot;non_existing_attribute&amp;quot;, &amp;quot;new value&amp;quot;)	-&amp;gt; NULL&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=NXSL:GetCustomAttribute&amp;diff=1646</id>
		<title>NXSL:GetCustomAttribute</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=NXSL:GetCustomAttribute&amp;diff=1646"/>
		<updated>2017-12-21T16:19:53Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Get value of objects custom attribute.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
GetCustomAttribute(&amp;#039;&amp;#039;object&amp;#039;&amp;#039;, &amp;#039;&amp;#039;attributeName&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;object&amp;#039;&amp;#039; || Any object of [[NXSL_Class_Reference|NetObj class]], or its sub-classes.&lt;br /&gt;
You can use predefined variable $node to refer to current node. You can also use null as node if trusted nodes check is disabled (see [[SG:Security Issues|Security Issues]] for more information).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;attributeName&amp;#039;&amp;#039; || Custom attribute name.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Return Value ==&lt;br /&gt;
&lt;br /&gt;
String value of requested custom attribute or &amp;#039;&amp;#039;&amp;#039;NULL&amp;#039;&amp;#039;&amp;#039; if attribute is missing.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
If attribute name conforms to NXSL identifier naming conventions, it can be accessed directly as node object attribute. For example “GetCustomAttribute($node, &amp;quot;my_attribute&amp;quot;)” can be changed to “$node-&amp;gt;my_attribute”. If custom attribute does not exist, accessing via &amp;quot;-&amp;gt;&amp;quot; will generate error. Alternative way it to use syntax &amp;quot;my_attribute@$node&amp;quot;, which will return NULL for missing attribute instead.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
 GetCustomAttribute($node, &amp;quot;my_attribute&amp;quot;)	-&amp;gt; &amp;quot;my value&amp;quot;&lt;br /&gt;
 GetCustomAttribute($node, &amp;quot;bad_attribute_name&amp;quot;)	-&amp;gt; NULL&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=NXSL:DeleteCustomAttribute&amp;diff=1645</id>
		<title>NXSL:DeleteCustomAttribute</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=NXSL:DeleteCustomAttribute&amp;diff=1645"/>
		<updated>2017-12-21T16:19:34Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Delete objects custom attribute.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Since:&amp;#039;&amp;#039;&amp;#039; 1.2.17&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
DeleteCustomAttribute(&amp;#039;&amp;#039;object&amp;#039;&amp;#039;, &amp;#039;&amp;#039;attributeName&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;object&amp;#039;&amp;#039; || Any object of [[NXSL_Class_Reference|NetObj class]], or its sub-classes.&lt;br /&gt;
You can use predefined variable $node to refer to current node. You can also use null as node if trusted nodes check is disabled (see [[SG:Security Issues|Security Issues]] for more information).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;attributeName&amp;#039;&amp;#039; || Custom attribute name.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Return Value ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;null&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
DeleteCustomAttribute($node, &amp;quot;my_attribute&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=NXSL:DeleteCustomAttribute&amp;diff=1644</id>
		<title>NXSL:DeleteCustomAttribute</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=NXSL:DeleteCustomAttribute&amp;diff=1644"/>
		<updated>2017-12-21T16:19:12Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Delete objects custom attribute.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Since:&amp;#039;&amp;#039;&amp;#039; 1.2.17&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
DeleteCustomAttribute(&amp;#039;&amp;#039;object&amp;#039;&amp;#039;, &amp;#039;&amp;#039;attributeName&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;object&amp;#039;&amp;#039; || any object of [[NXSL_Class_Reference|NetObj class]], or it&amp;#039;s sub-classes&lt;br /&gt;
You can use predefined variable $node to refer to current node. You can also use null as node if trusted nodes check is disabled (see [[SG:Security Issues|Security Issues]] for more information).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;attributeName&amp;#039;&amp;#039; || Custom attribute name.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Return Value ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;null&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
DeleteCustomAttribute($node, &amp;quot;my_attribute&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=NXSL:DeleteCustomAttribute&amp;diff=1643</id>
		<title>NXSL:DeleteCustomAttribute</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=NXSL:DeleteCustomAttribute&amp;diff=1643"/>
		<updated>2017-12-21T16:18:46Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Delete objects custom attribute.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Since:&amp;#039;&amp;#039;&amp;#039; 1.2.17&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
DeleteCustomAttribute(&amp;#039;&amp;#039;object&amp;#039;&amp;#039;, &amp;#039;&amp;#039;attributeName&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;object&amp;#039;&amp;#039; || [[NXSL_Class_Reference|object]] any object of NetObj class, or it&amp;#039;s sub-classes&lt;br /&gt;
You can use predefined variable $node to refer to current node. You can also use null as node if trusted nodes check is disabled (see [[SG:Security Issues|Security Issues]] for more information).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;attributeName&amp;#039;&amp;#039; || Custom attribute name.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Return Value ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;null&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
DeleteCustomAttribute($node, &amp;quot;my_attribute&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=NXSL:DeleteCustomAttribute&amp;diff=1642</id>
		<title>NXSL:DeleteCustomAttribute</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=NXSL:DeleteCustomAttribute&amp;diff=1642"/>
		<updated>2017-12-21T16:17:42Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Delete objects custom attribute.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Since:&amp;#039;&amp;#039;&amp;#039; 1.2.17&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
DeleteCustomAttribute(&amp;#039;&amp;#039;object&amp;#039;&amp;#039;, &amp;#039;&amp;#039;attributeName&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;object&amp;#039;&amp;#039; || [[NXSL_Class_Reference|object]] any object of NetObj class, or it&amp;#039;s sub-classes&lt;br /&gt;
you can use predefined variable $node to refer to current node. You can also use null as node if trusted nodes check is disabled (see [[SG:Security Issues|Security Issues]] for more information).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;attributeName&amp;#039;&amp;#039; || Custom attribute name.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Return Value ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;null&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
DeleteCustomAttribute($node, &amp;quot;my_attribute&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=Script_Example:_Setting_node_geolocation_from_SNMP&amp;diff=1571</id>
		<title>Script Example: Setting node geolocation from SNMP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=Script_Example:_Setting_node_geolocation_from_SNMP&amp;diff=1571"/>
		<updated>2017-09-22T13:09:28Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Created page with &amp;quot;Adjust the OIDs in &amp;#039;&amp;#039;SNMPGetValue&amp;#039;&amp;#039; as required.  &amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt; transport = CreateSNMPTransport($node); if (transport == null) {   return null; }  lat = SNMPGetVa...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Adjust the OIDs in &amp;#039;&amp;#039;SNMPGetValue&amp;#039;&amp;#039; as required.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
transport = CreateSNMPTransport($node);&lt;br /&gt;
if (transport == null) {&lt;br /&gt;
  return null;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
lat = SNMPGetValue(transport, &amp;quot;.1.2.3.4.1&amp;quot;);&lt;br /&gt;
long = SNMPGetValue(transport, &amp;quot;.1.2.3.4.2&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
if (lat == null || long == null) {&lt;br /&gt;
  return null;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
geoLoc = GeoLocation(lat, long);&lt;br /&gt;
$node-&amp;gt;setGeoLocation(geoLoc);&lt;br /&gt;
&lt;br /&gt;
return 0;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=SG:Script_Examples&amp;diff=1570</id>
		<title>SG:Script Examples</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=SG:Script_Examples&amp;diff=1570"/>
		<updated>2017-09-22T13:06:53Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Added geolocation from SNMP example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Script Example: Additional Information About Connected Node|Additional Information About Connected Node]]&lt;br /&gt;
&lt;br /&gt;
[[Script Example: Enumerate All Nodes|Enumerate All Nodes]]&lt;br /&gt;
&lt;br /&gt;
[[Script Example: Enumerate All Custom Attributes for Node|Enumerate All Custom Attributes for Node]]&lt;br /&gt;
&lt;br /&gt;
[[Script Example: Aggregation of DCI values and applying the 95% percentile average|Aggregation of DCI values and applying the 95% percentile average]]&lt;br /&gt;
&lt;br /&gt;
[[Script Example: Read SNMP Value From Node|Read SNMP Value From Node]]&lt;br /&gt;
&lt;br /&gt;
[[Script Example: Read Table From Agent|Read Table From Agent]]&lt;br /&gt;
&lt;br /&gt;
[[Script Example: Recursively Collect Values from Custom Attributes|Recursively Collect Values from Custom Attributes]]&lt;br /&gt;
&lt;br /&gt;
[[Script Example: Setting node geolocation from SNMP|Setting node geolocation from SNMP]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting Guide]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=NXSL_Function_Reference&amp;diff=1560</id>
		<title>NXSL Function Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=NXSL_Function_Reference&amp;diff=1560"/>
		<updated>2017-06-28T12:18:43Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Added mktime&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Function tables =&lt;br /&gt;
{| {border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot; style=&amp;quot;border:\#c9c9c9 1px solid; margin: 1em 1em 1em 0; border-collapse: collapse;&amp;quot;}&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Generic&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Math&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;String-related&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Data Collection&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Object search&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Object management&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Network&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:classof|classof]]||[[NXSL:abs|abs]]||[[NXSL:ArrayToString|ArrayToString]]||[[NXSL:CreateDCI|CreateDCI]]||[[NXSL:FindNodeObject|FindNodeObject]]||[[NXSL:BindObject|BindObject]]||[[NXSL:AddrInRange|AddrInRange]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:d2x|d2x]]||[[NXSL:ceil|ceil]]||[[NXSL:chr|chr]]||[[NXSL:FindAllDCIs|FindAllDCIs]]||[[NXSL:FindObject|FindObject]]||[[NXSL:CreateContainer|CreateContainer]]||[[NXSL:AddrInSubnet|AddrInSubnet]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:exit|exit]]||[[NXSL:exp|exp]]||[[NXSL:format|format]]||[[NXSL:FindDCIByDescription|FindDCIByDescription]]||[[NXSL:GetInterfaceName|GetInterfaceName]]||[[NXSL:CreateNode|CreateNode]]||[[NXSL:gethostbyaddr|gethostbyaddr]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:GeoLocation|GeoLocation]]||[[NXSL:floor|floor]]||[[NXSL:index|index]]||[[NXSL:FindDCIByName|FindDCIByName]]||[[NXSL:GetInterfaceObject|GetInterfaceObject]]||[[NXSL:DeleteCustomAttribute|DeleteCustomAttribute]]||[[NXSL:gethostbyname|gethostbyname]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:GetConfigurationVariable|GetConfigurationVariable]]||[[NXSL:log|log]]||[[NXSL:left|left]]||[[NXSL:GetAvgDCIValue|GetAvgDCIValue]]||[[NXSL:GetNodeInterfaces|GetNodeInterfaces]]||[[NXSL:DeleteObject|DeleteObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:inList|inList]]||[[NXSL:log10|log10]]||[[NXSL:length|length]]||[[NXSL:GetDCIObject|GetDCIObject]]||[[NXSL:GetNodeParents|GetNodeParents]]||[[NXSL:GetCustomAttribute|GetCustomAttribute]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:map|map]]||[[NXSL:pow|pow]]||[[NXSL:lower|lower]]||[[NXSL:GetDCIRawValue|GetDCIRawValue]]||[[NXSL:GetNodeTemplates|GetNodeTemplates]]||[[NXSL:ManageObject|ManageObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:mapList|mapList]]||[[NXSL:round|round]]||[[NXSL:ltrim|ltrim]]||[[NXSL:GetDCIValue|GetDCIValue]]||[[NXSL:GetObjectChildren|GetObjectChildren]]||[[NXSL:RenameObject|RenameObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:max|max]]||||[[NXSL:ord|ord]]||[[NXSL:GetDCIValues|GetDCIValues]]||[[NXSL:GetObjectParents|GetObjectParents]]||[[NXSL:SetCustomAttribute|SetCustomAttribute]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:min|min]]||||[[NXSL:right|right]]||[[NXSL:GetDCIValueByDescription|GetDCIValueByDescription]]||[[NXSL:GetAllNodes|GetAllNodes]]||[[NXSL:SetInterfaceExpectedState|SetInterfaceExpectedState]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:random|random]]||||[[NXSL:rindex|rindex]]||[[NXSL:GetDCIValueByName|GetDCIValueByName]]||||[[NXSL:UnbindObject|UnbindObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:sleep|sleep]]||||[[NXSL:rtrim|rtrim]]||[[NXSL:GetMaxDCIValue|GetMaxDCIValue]]||||[[NXSL:UnmanageObject|UnmanageObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:trace|trace]]||||[[NXSL:SplitString|SplitString]]||[[NXSL:GetMinDCIValue|GetMinDCIValue]]||||||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:typeof|typeof]]||||[[NXSL:substr|substr]]||[[NXSL:GetSumDCIValue|GetSumDCIValue]]||||||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:x2d|x2d]]||||[[NXSL:trim|trim]]||[[NXSL:PushDCIData|PushDCIData]]||||||&lt;br /&gt;
|-&lt;br /&gt;
| ||||[[NXSL:upper|upper]]||||||||&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| {border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot; style=&amp;quot;border:\#c9c9c9 1px solid; margin: 1em 1em 1em 0; border-collapse: collapse;&amp;quot;}&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Time-related&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Cryptography&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;SNMP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Agent&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Event Processing&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Situations&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:gmtime|gmtime]]||[[NXSL:md5|md5]]||[[NXSL:CreateSNMPTransport|CreateSNMPTransport]]||[[NXSL:AgentReadList|AgentReadList]]||[[NXSL:FindAlarmById|FindAlarmById]]||[[NXSL:FindSituation|FindSituation]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:localtime|localtime]]||[[NXSL:sha1|sha1]]||[[NXSL:SNMPGet|SNMPGet]]||[[NXSL:AgentReadParameter|AgentReadParameter]]||[[NXSL:FindAlarmByKey|FindAlarmByKey]]||[[NXSL:GetSituationAttribute|GetSituationAttribute]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:SecondsToUptime|SecondsToUptime]]||[[NXSL:sha256|sha256]]||[[NXSL:SNMPGetValue|SNMPGetValue]]||[[NXSL:AgentReadTable|AgentReadTable]]||[[NXSL:GetEventParameter|GetEventParameter]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:strftime|strftime]]||||[[NXSL:SNMPSet|SNMPSet]]||||[[NXSL:PostEvent|PostEvent]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:time|time]]||||[[NXSL:SNMPWalk|SNMPWalk]]||||[[NXSL:SetEventParameter|SetEventParameter]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:mktime|mktime]]||||||||||||||&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=NXSL_Function_Reference&amp;diff=1559</id>
		<title>NXSL Function Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=NXSL_Function_Reference&amp;diff=1559"/>
		<updated>2017-06-28T12:13:56Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Remove old list of functions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Function tables =&lt;br /&gt;
{| {border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot; style=&amp;quot;border:\#c9c9c9 1px solid; margin: 1em 1em 1em 0; border-collapse: collapse;&amp;quot;}&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Generic&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Math&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;String-related&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Data Collection&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Object search&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Object management&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Network&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:classof|classof]]||[[NXSL:abs|abs]]||[[NXSL:ArrayToString|ArrayToString]]||[[NXSL:CreateDCI|CreateDCI]]||[[NXSL:FindNodeObject|FindNodeObject]]||[[NXSL:BindObject|BindObject]]||[[NXSL:AddrInRange|AddrInRange]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:d2x|d2x]]||[[NXSL:ceil|ceil]]||[[NXSL:chr|chr]]||[[NXSL:FindAllDCIs|FindAllDCIs]]||[[NXSL:FindObject|FindObject]]||[[NXSL:CreateContainer|CreateContainer]]||[[NXSL:AddrInSubnet|AddrInSubnet]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:exit|exit]]||[[NXSL:exp|exp]]||[[NXSL:format|format]]||[[NXSL:FindDCIByDescription|FindDCIByDescription]]||[[NXSL:GetInterfaceName|GetInterfaceName]]||[[NXSL:CreateNode|CreateNode]]||[[NXSL:gethostbyaddr|gethostbyaddr]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:GeoLocation|GeoLocation]]||[[NXSL:floor|floor]]||[[NXSL:index|index]]||[[NXSL:FindDCIByName|FindDCIByName]]||[[NXSL:GetInterfaceObject|GetInterfaceObject]]||[[NXSL:DeleteCustomAttribute|DeleteCustomAttribute]]||[[NXSL:gethostbyname|gethostbyname]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:GetConfigurationVariable|GetConfigurationVariable]]||[[NXSL:log|log]]||[[NXSL:left|left]]||[[NXSL:GetAvgDCIValue|GetAvgDCIValue]]||[[NXSL:GetNodeInterfaces|GetNodeInterfaces]]||[[NXSL:DeleteObject|DeleteObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:inList|inList]]||[[NXSL:log10|log10]]||[[NXSL:length|length]]||[[NXSL:GetDCIObject|GetDCIObject]]||[[NXSL:GetNodeParents|GetNodeParents]]||[[NXSL:GetCustomAttribute|GetCustomAttribute]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:map|map]]||[[NXSL:pow|pow]]||[[NXSL:lower|lower]]||[[NXSL:GetDCIRawValue|GetDCIRawValue]]||[[NXSL:GetNodeTemplates|GetNodeTemplates]]||[[NXSL:ManageObject|ManageObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:mapList|mapList]]||[[NXSL:round|round]]||[[NXSL:ltrim|ltrim]]||[[NXSL:GetDCIValue|GetDCIValue]]||[[NXSL:GetObjectChildren|GetObjectChildren]]||[[NXSL:RenameObject|RenameObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:max|max]]||||[[NXSL:ord|ord]]||[[NXSL:GetDCIValues|GetDCIValues]]||[[NXSL:GetObjectParents|GetObjectParents]]||[[NXSL:SetCustomAttribute|SetCustomAttribute]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:min|min]]||||[[NXSL:right|right]]||[[NXSL:GetDCIValueByDescription|GetDCIValueByDescription]]||[[NXSL:GetAllNodes|GetAllNodes]]||[[NXSL:SetInterfaceExpectedState|SetInterfaceExpectedState]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:random|random]]||||[[NXSL:rindex|rindex]]||[[NXSL:GetDCIValueByName|GetDCIValueByName]]||||[[NXSL:UnbindObject|UnbindObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:sleep|sleep]]||||[[NXSL:rtrim|rtrim]]||[[NXSL:GetMaxDCIValue|GetMaxDCIValue]]||||[[NXSL:UnmanageObject|UnmanageObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:trace|trace]]||||[[NXSL:SplitString|SplitString]]||[[NXSL:GetMinDCIValue|GetMinDCIValue]]||||||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:typeof|typeof]]||||[[NXSL:substr|substr]]||[[NXSL:GetSumDCIValue|GetSumDCIValue]]||||||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:x2d|x2d]]||||[[NXSL:trim|trim]]||[[NXSL:PushDCIData|PushDCIData]]||||||&lt;br /&gt;
|-&lt;br /&gt;
| ||||[[NXSL:upper|upper]]||||||||&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| {border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot; style=&amp;quot;border:\#c9c9c9 1px solid; margin: 1em 1em 1em 0; border-collapse: collapse;&amp;quot;}&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Time-related&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Cryptography&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;SNMP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Agent&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Event Processing&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Situations&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:gmtime|gmtime]]||[[NXSL:md5|md5]]||[[NXSL:CreateSNMPTransport|CreateSNMPTransport]]||[[NXSL:AgentReadList|AgentReadList]]||[[NXSL:FindAlarmById|FindAlarmById]]||[[NXSL:FindSituation|FindSituation]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:localtime|localtime]]||[[NXSL:sha1|sha1]]||[[NXSL:SNMPGet|SNMPGet]]||[[NXSL:AgentReadParameter|AgentReadParameter]]||[[NXSL:FindAlarmByKey|FindAlarmByKey]]||[[NXSL:GetSituationAttribute|GetSituationAttribute]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:SecondsToUptime|SecondsToUptime]]||[[NXSL:sha256|sha256]]||[[NXSL:SNMPGetValue|SNMPGetValue]]||[[NXSL:AgentReadTable|AgentReadTable]]||[[NXSL:GetEventParameter|GetEventParameter]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:strftime|strftime]]||||[[NXSL:SNMPSet|SNMPSet]]||||[[NXSL:PostEvent|PostEvent]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:time|time]]||||[[NXSL:SNMPWalk|SNMPWalk]]||||[[NXSL:SetEventParameter|SetEventParameter]]||&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=NXSL:Table&amp;diff=1548</id>
		<title>NXSL:Table</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=NXSL:Table&amp;diff=1548"/>
		<updated>2017-04-21T14:20:26Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Formatting fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Represents table object (usually table DCI value).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Class Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Table&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Methods&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[NXSL:Table:addColumn|addColumn]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:Table:addRow|addRow]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:Table:deleteColumn|deleteColumn]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:Table:deleteRow|deleteRow]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:Table:get|get]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:Table:getColumnIndex|getColumnIndex]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:Table:getColumnName|getColumnName]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:Table:set|set]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attributes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| columnCount || int32 || Number of columns&lt;br /&gt;
|-&lt;br /&gt;
| columns || array || Column definitions as array of [[NXSL:TableColumn|TableColumn]] objects&lt;br /&gt;
|-&lt;br /&gt;
| rowCount || int32 || Number of rows&lt;br /&gt;
|-&lt;br /&gt;
| rows || array || Row definitions as array of [[NXSL:TableRow|TableRow]] objects&lt;br /&gt;
|-&lt;br /&gt;
| title || string || Table&amp;#039;s title&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:NXSL Class Reference]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=NXSL:Table&amp;diff=1547</id>
		<title>NXSL:Table</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=NXSL:Table&amp;diff=1547"/>
		<updated>2017-04-21T14:19:57Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Added rows attribute&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Represents table object (usually table DCI value).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Class Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Table&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Methods&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[NXSL:Table:addColumn|addColumn]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:Table:addRow|addRow]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:Table:deleteColumn|deleteColumn]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:Table:deleteRow|deleteRow]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:Table:get|get]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:Table:getColumnIndex|getColumnIndex]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:Table:getColumnName|getColumnName]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:Table:set|set]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attributes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| columnCount || int32 || Number of columns&lt;br /&gt;
|-&lt;br /&gt;
| columns || array || Column definitions as array of [[NXSL:TableColumn|TableColumn]] objects&lt;br /&gt;
|-&lt;br /&gt;
| rowCount || int32 || Number of rows&lt;br /&gt;
|-&lt;br /&gt;
| rows || array || Row definitions as array of [[NXSL:TableRow|TableRow]] objects&lt;br /&gt;
| -&lt;br /&gt;
| title || string || Table&amp;#039;s title&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:NXSL Class Reference]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=Subagent:Ping&amp;diff=1543</id>
		<title>Subagent:Ping</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=Subagent:Ping&amp;diff=1543"/>
		<updated>2017-03-16T21:26:08Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Fixed target list name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Ping Subagent}}&lt;br /&gt;
This subagent can be used to measure ICMP ping response times from one location to another.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Provided Parameters =&lt;br /&gt;
&lt;br /&gt;
When loaded, PING subagent adds the following parameters to agent:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Icmp.AvgPingTime(&amp;#039;&amp;#039;target&amp;#039;&amp;#039;) || Average ICMP ping response time from &amp;#039;&amp;#039;target&amp;#039;&amp;#039; for last minute. Argument &amp;#039;&amp;#039;target&amp;#039;&amp;#039; can be either IP address or name specified in Target configuration record (see below).&lt;br /&gt;
|-&lt;br /&gt;
| Icmp.LastPingTime(&amp;#039;&amp;#039;target&amp;#039;&amp;#039;) || Last ICMP ping response time from &amp;#039;&amp;#039;target&amp;#039;&amp;#039;. Argument &amp;#039;&amp;#039;target&amp;#039;&amp;#039; can be either IP address or name specified in Target configuration record (see below).&lt;br /&gt;
|-&lt;br /&gt;
| Icmp.PacketLoss(&amp;#039;&amp;#039;target&amp;#039;&amp;#039;) || ICMP ping packet loss (in percents) for &amp;#039;&amp;#039;target&amp;#039;&amp;#039;. Argument &amp;#039;&amp;#039;target&amp;#039;&amp;#039; can be either IP address or name specified in Target configuration record (see below).&lt;br /&gt;
|-&lt;br /&gt;
| Icmp.Ping(&amp;#039;&amp;#039;target&amp;#039;&amp;#039;,&amp;#039;&amp;#039;timeout&amp;#039;&amp;#039;,&amp;#039;&amp;#039;psize&amp;#039;&amp;#039;) || ICMP ping response time from &amp;#039;&amp;#039;target&amp;#039;&amp;#039;. Agent will send echo request as soon as it receives request for paramter&amp;#039;s value, and will return response time for that particular request. Argument &amp;#039;&amp;#039;target&amp;#039;&amp;#039; should be an IP address. Optional argument &amp;#039;&amp;#039;timeout&amp;#039;&amp;#039; specifies timeout in milliseconds. Default timeout is 1 second. Optional argument &amp;#039;&amp;#039;psize&amp;#039;&amp;#039; specifies packet size in bytes, including IP header. If this argument is omited, value from DefaultPacketSize configuration parameter will be used.&lt;br /&gt;
Please note that other parameters just returns result of background ping process, while this parameter waits for actual ping completion and then returns the result. Because of this behavior, it is not recommended to use &amp;#039;&amp;#039;&amp;#039;Icmp.Ping&amp;#039;&amp;#039;&amp;#039; parameter for instant monitoring, only for occasional tests. For instant monitoring, you should configure targets for background ping and use &amp;#039;&amp;#039;&amp;#039;Icmp.AvgPingTime&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Icmp.LastPingTime&amp;#039;&amp;#039;&amp;#039; parameters to retrieve results.  &lt;br /&gt;
|-&lt;br /&gt;
| Icmp.PingStdDev(&amp;#039;&amp;#039;target&amp;#039;&amp;#039;) || [http://en.wikipedia.org/wiki/Standard_deviation Standard deviation] of ICMP ping response time for &amp;#039;&amp;#039;target&amp;#039;&amp;#039;. Argument &amp;#039;&amp;#039;target&amp;#039;&amp;#039; can be either IP address or name specified in Target configuration record (see below).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Provided Lists =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! List !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Icmp.Targets || List of configured ping targets. Each line has the following fields, separated by spaces:&lt;br /&gt;
* IP address&lt;br /&gt;
* Last response time (milliseconds)&lt;br /&gt;
* Average response time (milliseconds)&lt;br /&gt;
* Packet loss (percents)&lt;br /&gt;
* Configured packet size&lt;br /&gt;
* Name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configuration file =&lt;br /&gt;
&lt;br /&gt;
All configuration parameters related to PING subagent should be placed into &amp;#039;&amp;#039;&amp;#039;*PING&amp;#039;&amp;#039;&amp;#039; section of agent&amp;#039;s configuration file. The following configuration parameters are supported:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Format !! Description !! Default value&lt;br /&gt;
|-&lt;br /&gt;
| DefaultPacketSize || &amp;#039;&amp;#039;bytes&amp;#039;&amp;#039; || Set default packet size to &amp;#039;&amp;#039;bytes&amp;#039;&amp;#039;. || 46&lt;br /&gt;
|-&lt;br /&gt;
| PacketRate || &amp;#039;&amp;#039;packets&amp;#039;&amp;#039; || Set ping packet rate per minute.  Allowed values are from 1 to 60 and values below or above will be adjusted automatically. || 4&lt;br /&gt;
|-&lt;br /&gt;
| Target || &amp;#039;&amp;#039;ip&amp;#039;&amp;#039;:&amp;#039;&amp;#039;name&amp;#039;&amp;#039;:&amp;#039;&amp;#039;psize&amp;#039;&amp;#039; || Add target with IP address &amp;#039;&amp;#039;ip&amp;#039;&amp;#039; to background ping target list and assign an optional name &amp;#039;&amp;#039;name&amp;#039;&amp;#039; to it. Target will be pinged using packets of &amp;#039;&amp;#039;psize&amp;#039;&amp;#039; bytes size. Name and packet size fields are optional and can be omited. This parameter can be given multiple times to add multiple targets. || &amp;#039;&amp;#039;none&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Timeout || &amp;#039;&amp;#039;milliseconds&amp;#039;&amp;#039; || Set response timeout to &amp;#039;&amp;#039;milliseconds&amp;#039;&amp;#039;. Allowed values are from 500 to 5000 and values below or above will be adjusted automatically. || 3000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Configuration Example ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
# This sample nxagentd.conf instructs agent to:&lt;br /&gt;
#   1. load PING subagent&lt;br /&gt;
#   2. Ping target 10.0.0.1 with default size (46 bytes) packets and 10.0.0.2 with 1000 bytes packets&lt;br /&gt;
#   3. Timeout for ping set to 1 second and pings are sent 12 times per minute (each 5 seconds)&lt;br /&gt;
&lt;br /&gt;
MasterServers = netxms.demo&lt;br /&gt;
SubAgent = ping.nsm&lt;br /&gt;
&lt;br /&gt;
*PING&lt;br /&gt;
Timeout = 1000&lt;br /&gt;
PacketRate = 12&lt;br /&gt;
Target = 10.0.0.1:target_1&lt;br /&gt;
Target = 10.0.0.2:target_2:1000&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
&lt;br /&gt;
PING subagent uses value of 10000 to indicate timed out requests.&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=NXSL_Function_Reference&amp;diff=1535</id>
		<title>NXSL Function Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=NXSL_Function_Reference&amp;diff=1535"/>
		<updated>2017-01-22T09:37:45Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Added GetAllNodes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Function tables =&lt;br /&gt;
{| {border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot; style=&amp;quot;border:\#c9c9c9 1px solid; margin: 1em 1em 1em 0; border-collapse: collapse;&amp;quot;}&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Generic&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Math&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;String-related&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Data Collection&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Object search&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Object management&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Network&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:classof|classof]]||[[NXSL:abs|abs]]||[[NXSL:ArrayToString|ArrayToString]]||[[NXSL:CreateDCI|CreateDCI]]||[[NXSL:FindNodeObject|FindNodeObject]]||[[NXSL:BindObject|BindObject]]||[[NXSL:AddrInRange|AddrInRange]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:d2x|d2x]]||[[NXSL:ceil|ceil]]||[[NXSL:chr|chr]]||[[NXSL:FindAllDCIs|FindAllDCIs]]||[[NXSL:FindObject|FindObject]]||[[NXSL:CreateContainer|CreateContainer]]||[[NXSL:AddrInSubnet|AddrInSubnet]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:exit|exit]]||[[NXSL:exp|exp]]||[[NXSL:format|format]]||[[NXSL:FindDCIByDescription|FindDCIByDescription]]||[[NXSL:GetInterfaceName|GetInterfaceName]]||[[NXSL:CreateNode|CreateNode]]||[[NXSL:gethostbyaddr|gethostbyaddr]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:GeoLocation|GeoLocation]]||[[NXSL:floor|floor]]||[[NXSL:index|index]]||[[NXSL:FindDCIByName|FindDCIByName]]||[[NXSL:GetInterfaceObject|GetInterfaceObject]]||[[NXSL:DeleteCustomAttribute|DeleteCustomAttribute]]||[[NXSL:gethostbyname|gethostbyname]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:GetConfigurationVariable|GetConfigurationVariable]]||[[NXSL:log|log]]||[[NXSL:left|left]]||[[NXSL:GetAvgDCIValue|GetAvgDCIValue]]||[[NXSL:GetNodeInterfaces|GetNodeInterfaces]]||[[NXSL:DeleteObject|DeleteObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:inList|inList]]||[[NXSL:log10|log10]]||[[NXSL:length|length]]||[[NXSL:GetDCIObject|GetDCIObject]]||[[NXSL:GetNodeParents|GetNodeParents]]||[[NXSL:GetCustomAttribute|GetCustomAttribute]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:map|map]]||[[NXSL:pow|pow]]||[[NXSL:lower|lower]]||[[NXSL:GetDCIRawValue|GetDCIRawValue]]||[[NXSL:GetNodeTemplates|GetNodeTemplates]]||[[NXSL:ManageObject|ManageObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:mapList|mapList]]||[[NXSL:round|round]]||[[NXSL:ltrim|ltrim]]||[[NXSL:GetDCIValue|GetDCIValue]]||[[NXSL:GetObjectChildren|GetObjectChildren]]||[[NXSL:RenameObject|RenameObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:max|max]]||||[[NXSL:ord|ord]]||[[NXSL:GetDCIValues|GetDCIValues]]||[[NXSL:GetObjectParents|GetObjectParents]]||[[NXSL:SetCustomAttribute|SetCustomAttribute]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:min|min]]||||[[NXSL:right|right]]||[[NXSL:GetDCIValueByDescription|GetDCIValueByDescription]]||[[NXSL:GetAllNodes|GetAllNodes]]||[[NXSL:SetInterfaceExpectedState|SetInterfaceExpectedState]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:random|random]]||||[[NXSL:rindex|rindex]]||[[NXSL:GetDCIValueByName|GetDCIValueByName]]||||[[NXSL:UnbindObject|UnbindObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:sleep|sleep]]||||[[NXSL:rtrim|rtrim]]||[[NXSL:GetMaxDCIValue|GetMaxDCIValue]]||||[[NXSL:UnmanageObject|UnmanageObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:trace|trace]]||||[[NXSL:SplitString|SplitString]]||[[NXSL:GetMinDCIValue|GetMinDCIValue]]||||||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:typeof|typeof]]||||[[NXSL:substr|substr]]||[[NXSL:GetSumDCIValue|GetSumDCIValue]]||||||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:x2d|x2d]]||||[[NXSL:trim|trim]]||[[NXSL:PushDCIData|PushDCIData]]||||||&lt;br /&gt;
|-&lt;br /&gt;
| ||||[[NXSL:upper|upper]]||||||||&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| {border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot; style=&amp;quot;border:\#c9c9c9 1px solid; margin: 1em 1em 1em 0; border-collapse: collapse;&amp;quot;}&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Time-related&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Cryptography&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;SNMP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Agent&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Event Processing&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Situations&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:gmtime|gmtime]]||[[NXSL:md5|md5]]||[[NXSL:CreateSNMPTransport|CreateSNMPTransport]]||[[NXSL:AgentReadList|AgentReadList]]||[[NXSL:FindAlarmById|FindAlarmById]]||[[NXSL:FindSituation|FindSituation]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:localtime|localtime]]||[[NXSL:sha1|sha1]]||[[NXSL:SNMPGet|SNMPGet]]||[[NXSL:AgentReadParameter|AgentReadParameter]]||[[NXSL:FindAlarmByKey|FindAlarmByKey]]||[[NXSL:GetSituationAttribute|GetSituationAttribute]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:SecondsToUptime|SecondsToUptime]]||[[NXSL:sha256|sha256]]||[[NXSL:SNMPGetValue|SNMPGetValue]]||[[NXSL:AgentReadTable|AgentReadTable]]||[[NXSL:GetEventParameter|GetEventParameter]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:strftime|strftime]]||||[[NXSL:SNMPSet|SNMPSet]]||||[[NXSL:PostEvent|PostEvent]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:time|time]]||||[[NXSL:SNMPWalk|SNMPWalk]]||||[[NXSL:SetEventParameter|SetEventParameter]]||&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the old function organization.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Generic Functions =&lt;br /&gt;
&lt;br /&gt;
[[NXSL:abs|abs]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:AddrInRange|AddrInRange]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:AddrInSubnet|AddrInSubnet]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:ArrayToString|ArrayToString]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:ceil|ceil]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:chr|chr]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:classof|classof]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:d2x|d2x]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:exit|exit]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:exp|exp]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:floor|floor]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:format|format]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GeoLocation|GeoLocation]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:gethostbyaddr|gethostbyaddr]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:gethostbyname|gethostbyname]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:gmtime|gmtime]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:index|index]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:inList|inList]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:left|left]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:length|length]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:localtime|localtime]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:log|log]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:log10|log10]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:lower|lower]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:ltrim|ltrim]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:map|map]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:mapList|mapList]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:max|max]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:min|min]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:md5|md5]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:ord|ord]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:pow|pow]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:random|random]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:right|right]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:rindex|rindex]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:round|round]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:rtrim|rtrim]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:sleep|sleep]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:SecondsToUptime|SecondsToUptime]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:sha1|sha1]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:sha256|sha256]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:SplitString|SplitString]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:strftime|strftime]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:substr|substr]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:time|time]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:trace|trace]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:trim|trim]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:typeof|typeof]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:upper|upper]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:x2d|x2d]]&lt;br /&gt;
&lt;br /&gt;
= Data Collection =&lt;br /&gt;
&lt;br /&gt;
[[NXSL:CreateDCI|CreateDCI]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:FindAllDCIs|FindAllDCIs]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:FindDCIByDescription|FindDCIByDescription]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:FindDCIByName|FindDCIByName]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetAvgDCIValue|GetAvgDCIValue]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetDCIObject|GetDCIObject]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetDCIRawValue|GetDCIRawValue]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetDCIValue|GetDCIValue]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetDCIValues|GetDCIValues]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetDCIValueByDescription|GetDCIValueByDescription]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetDCIValueByName|GetDCIValueByName]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetMaxDCIValue|GetMaxDCIValue]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetMinDCIValue|GetMinDCIValue]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetSumDCIValue|GetSumDCIValue]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:PushDCIData|PushDCIData]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Event Processing =&lt;br /&gt;
&lt;br /&gt;
[[NXSL:FindAlarmById|FindAlarmById]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:FindAlarmByKey|FindAlarmByKey]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetEventParameter|GetEventParameter]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:PostEvent|PostEvent]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:SetEventParameter|SetEventParameter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Object Management =&lt;br /&gt;
&lt;br /&gt;
[[NXSL:BindObject|BindObject]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:CreateContainer|CreateContainer]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:CreateNode|CreateNode]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:DeleteCustomAttribute|DeleteCustomAttribute]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:DeleteObject|DeleteObject]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:FindNodeObject|FindNodeObject]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:FindObject|FindObject]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetCustomAttribute|GetCustomAttribute]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetInterfaceName|GetInterfaceName]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetInterfaceObject|GetInterfaceObject]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetNodeInterfaces|GetNodeInterfaces]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetNodeParents|GetNodeParents]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetNodeTemplates|GetNodeTemplates]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetObjectChildren|GetObjectChildren]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetObjectParents|GetObjectParents]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:ManageObject|ManageObject]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:RenameObject|RenameObject]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:SetCustomAttribute|SetCustomAttribute]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:SetInterfaceExpectedState|SetInterfaceExpectedState]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:UnbindObject|UnbindObject]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:UnmanageObject|UnmanageObject]]&lt;br /&gt;
&lt;br /&gt;
= Server Configuration =&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetConfigurationVariable|GetConfigurationVariable]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Situations =&lt;br /&gt;
&lt;br /&gt;
[[NXSL:FindSituation|FindSituation]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetSituationAttribute|GetSituationAttribute]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Agent Access =&lt;br /&gt;
&lt;br /&gt;
[[NXSL:AgentReadList|AgentReadList]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:AgentReadParameter|AgentReadParameter]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:AgentReadTable|AgentReadTable]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= SNMP =&lt;br /&gt;
&lt;br /&gt;
[[NXSL:CreateSNMPTransport|CreateSNMPTransport]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:SNMPGet|SNMPGet]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:SNMPGetValue|SNMPGetValue]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:SNMPSet|SNMPSet]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:SNMPWalk|SNMPWalk]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting Guide]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=Slack.com_integration&amp;diff=1522</id>
		<title>Slack.com integration</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=Slack.com_integration&amp;diff=1522"/>
		<updated>2016-08-19T12:07:28Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Added Slack integration guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Configuration==&lt;br /&gt;
&amp;lt;b&amp;gt;1) Create an &amp;quot;Incoming webhook&amp;quot; integration in Slack&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
You can do this in &amp;quot;Team &amp;gt; Apps and Integrations &amp;gt; Manage &amp;gt; Custom Integrations &amp;gt; Incoming WebHooks&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
This will give you WebHook URL you will need in NetXMS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;2) In NetXMS, go to &amp;quot;Server Configuration&amp;quot;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Filter for &amp;quot;sms&amp;quot;. You should find &amp;quot;SMSDriver&amp;quot; and &amp;quot;SMSDrvConfig&amp;quot; server configuration variables.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;3) Configure &amp;quot;SMSDriver&amp;quot; with the path to the slack driver&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
If running from Debian packages, the path will be &amp;quot;/usr/lib/x86_64-linux-gnu/netxms/smsdrv/slack.sms&amp;quot; or similiar.&amp;lt;br&amp;gt;&lt;br /&gt;
If you compiled manually, the path will be as per your ./configure settings. (example &amp;quot;/usr/local/lib/libnxsms_slack.so&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;4) Configure &amp;quot;SMSDrvConfig&amp;quot; with Slack configuration&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
This configuration needs to provide &amp;quot;username&amp;quot; and &amp;quot;url&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;username&amp;quot; is optional, if configured, NetXMS will post with this username into your Slack. If not configured, configuration from the WebHook settings is used.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;url&amp;quot; is the URL of your WebHook.&amp;lt;br&amp;gt;&lt;br /&gt;
Final configuration string should look like this: &amp;quot;username=user;url=http://url.slack.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;5) Create an Action to send Slack messages&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Configuration &amp;gt; Action Configuration &amp;gt; New action...&amp;quot;, type &amp;quot;Send SMS to mobile phone&amp;quot;, &amp;quot;Phone number&amp;quot; is the Slack #channel or @user where the message should be delivered.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Message text&amp;quot; is your NetXMS message, configured the same way as other actions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;6) Modify EPP to use your new action&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
You should now see Slack messages posted to your configured destination, when the EPP action takes place.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
Set debug level to 4 (&amp;quot;debug 4&amp;quot; into Server Console).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
You can now look for interesting debug messages in the logs:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;tail -f /var/log/netxmsd | egrep &amp;quot;[Ss]lack|sms|SMS&amp;quot;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=Step_by_step_service_monitoring&amp;diff=1519</id>
		<title>Step by step service monitoring</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=Step_by_step_service_monitoring&amp;diff=1519"/>
		<updated>2016-07-05T15:24:15Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Added a note regarding security issues and &amp;quot;CheckTrustedNodes&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Before this tutorial, please make sure there are no security issues with trusted nodes.&amp;lt;br&amp;gt;&lt;br /&gt;
https://wiki.netxms.org/wiki/SG:Security_Issues&lt;br /&gt;
&lt;br /&gt;
Fast solution:&amp;lt;br&amp;gt;&lt;br /&gt;
Set &amp;quot;CheckTrustedNodes&amp;quot; to 0 in Server Configuration, and restart the server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
First we check if the website answers to ping.&amp;lt;br&amp;gt;&lt;br /&gt;
This is because when we add the website as a node into NetXMS, NetXMS uses ping to check basic node availability during status polls.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-1.PNG]]&lt;br /&gt;
&lt;br /&gt;
In our case, netxms.org does not respond to ping.&amp;lt;br&amp;gt;&lt;br /&gt;
We need to remember that for later.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Next we create a node for our website.&amp;lt;br&amp;gt;&lt;br /&gt;
We make sure to disable usage of not-supported sources for polling (including ping, since netxms.org doesnt respond to ping).&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We should see our node properly created with &amp;quot;Unknown&amp;quot; status.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Special note: in NetXMS 2.0.4 and older, there was a bug that would create a node down alarm.&amp;lt;br&amp;gt;&lt;br /&gt;
Please terminate this alarm on this node before proceeding further in the tutorial if running a version older than 2.0.5 (or 2.1).&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-3.PNG]]&lt;br /&gt;
&lt;br /&gt;
This is because we disabled all polling sources, so NetXMS doesnt have any way to check if a node is up or down.&amp;lt;br&amp;gt;&lt;br /&gt;
We will fix this later on in the tutorial.&lt;br /&gt;
&lt;br /&gt;
Please note that if the node responded to ping (and therefor we would NOT disable usage of ICMP for status polling), the node&amp;#039;s status would be Normal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
I have created a template to put all my website monitoring into.&amp;lt;br&amp;gt;&lt;br /&gt;
This will be useful if I want to monitor many websites, since I dont have to manually create monitoring DCIs for every one.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-4.png]]&lt;br /&gt;
&lt;br /&gt;
We then go into the Data collection configuration of this template.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We create a new DCI. Make sure Origin is set to NetXMS Agent, press Select, and find ServiceResponseTime.Custom(*).&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Next we will set the template DCI to resolve the node&amp;#039;s primary IP for each node that is assigned to this template.&amp;lt;br&amp;gt;&lt;br /&gt;
Documentation for template macros here: https://wiki.netxms.org/wiki/UM:Data_Collection#Macros_in_template_items&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-6.PNG]]&lt;br /&gt;
&lt;br /&gt;
We also set the Source node to our NetXMS server.&amp;lt;br&amp;gt;&lt;br /&gt;
This will mean that even tho this DCI is configured on the website&amp;#039;s node, the NetXMS server should be used to collect the data for this DCI.&amp;lt;br&amp;gt;&lt;br /&gt;
Final effect will be that the DCI itself will show up on our website&amp;#039;s node, but the data will be polled by the NetXMS server, which is what we want in this case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We can now apply our template to our website&amp;#039;s node.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-7.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We should now see our website&amp;#039;s node applied to the template, and in the node&amp;#039;s Last values, we should see the response time of the website.&amp;lt;br&amp;gt;&lt;br /&gt;
I have also added a ping DCI, to see that the website does indeed not respond to ping.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-8.PNG]]&lt;br /&gt;
&lt;br /&gt;
We now just need to fix status calculation for the node.&lt;br /&gt;
&lt;br /&gt;
If the node does respond to ping (as mentioned previously), we are finished.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Please note that as mentioned previously, if the nodes does respond to ping (and therefore node status calculation from its Status poll based on ICMP works fine), the following steps are NOT required.&lt;br /&gt;
&lt;br /&gt;
We will create another DCI, this one will be used to check just if the website is up or down.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-9.PNG]]&lt;br /&gt;
&lt;br /&gt;
Now we need to configure it to return NetXMS status codes for this node. We can do this using a transformation script.&amp;lt;br&amp;gt;&lt;br /&gt;
Status codes documented here: https://wiki.netxms.org/wiki/NXSL:NetObj (see Possible values for &amp;quot;status&amp;quot; attribute section)&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-10.PNG]]&lt;br /&gt;
&lt;br /&gt;
Now we just tell NetXMS to use this DCI for status calculation.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-11.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
After the next status poll (br default every 1 minute), node should have Normal status.&amp;lt;br&amp;gt;&lt;br /&gt;
Node should also be correctly taken to Critical status when TCP 80 doesnt respond.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-12.PNG]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=Step_by_step_service_monitoring&amp;diff=1515</id>
		<title>Step by step service monitoring</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=Step_by_step_service_monitoring&amp;diff=1515"/>
		<updated>2016-07-04T13:22:01Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: More info on ICMP capable nodes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-----&lt;br /&gt;
First we check if the website answers to ping.&amp;lt;br&amp;gt;&lt;br /&gt;
This is because when we add the website as a node into NetXMS, NetXMS uses ping to check basic node availability during status polls.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-1.PNG]]&lt;br /&gt;
&lt;br /&gt;
In our case, netxms.org does not respond to ping.&amp;lt;br&amp;gt;&lt;br /&gt;
We need to remember that for later.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Next we create a node for our website.&amp;lt;br&amp;gt;&lt;br /&gt;
We make sure to disable usage of not-supported sources for polling (including ping, since netxms.org doesnt respond to ping).&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We should see our node properly created with &amp;quot;Unknown&amp;quot; status.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Special note: in NetXMS 2.0.4 and older, there was a bug that would create a node down alarm.&amp;lt;br&amp;gt;&lt;br /&gt;
Please terminate this alarm on this node before proceeding further in the tutorial if running a version older than 2.0.5 (or 2.1).&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-3.PNG]]&lt;br /&gt;
&lt;br /&gt;
This is because we disabled all polling sources, so NetXMS doesnt have any way to check if a node is up or down.&amp;lt;br&amp;gt;&lt;br /&gt;
We will fix this later on in the tutorial.&lt;br /&gt;
&lt;br /&gt;
Please note that if the node responded to ping (and therefor we would NOT disable usage of ICMP for status polling), the node&amp;#039;s status would be Normal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
I have created a template to put all my website monitoring into.&amp;lt;br&amp;gt;&lt;br /&gt;
This will be useful if I want to monitor many websites, since I dont have to manually create monitoring DCIs for every one.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-4.png]]&lt;br /&gt;
&lt;br /&gt;
We then go into the Data collection configuration of this template.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We create a new DCI. Make sure Origin is set to NetXMS Agent, press Select, and find ServiceResponseTime.Custom(*).&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Next we will set the template DCI to resolve the node&amp;#039;s primary IP for each node that is assigned to this template.&amp;lt;br&amp;gt;&lt;br /&gt;
Documentation for template macros here: https://wiki.netxms.org/wiki/UM:Data_Collection#Macros_in_template_items&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-6.PNG]]&lt;br /&gt;
&lt;br /&gt;
We also set the Source node to our NetXMS server.&amp;lt;br&amp;gt;&lt;br /&gt;
This will mean that even tho this DCI is configured on the website&amp;#039;s node, the NetXMS server should be used to collect the data for this DCI.&amp;lt;br&amp;gt;&lt;br /&gt;
Final effect will be that the DCI itself will show up on our website&amp;#039;s node, but the data will be polled by the NetXMS server, which is what we want in this case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We can now apply our template to our website&amp;#039;s node.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-7.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We should now see our website&amp;#039;s node applied to the template, and in the node&amp;#039;s Last values, we should see the response time of the website.&amp;lt;br&amp;gt;&lt;br /&gt;
I have also added a ping DCI, to see that the website does indeed not respond to ping.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-8.PNG]]&lt;br /&gt;
&lt;br /&gt;
We now just need to fix status calculation for the node.&lt;br /&gt;
&lt;br /&gt;
If the node does respond to ping (as mentioned previously), we are finished.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Please note that as mentioned previously, if the nodes does respond to ping (and therefore node status calculation from its Status poll based on ICMP works fine), the following steps are NOT required.&lt;br /&gt;
&lt;br /&gt;
We will create another DCI, this one will be used to check just if the website is up or down.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-9.PNG]]&lt;br /&gt;
&lt;br /&gt;
Now we need to configure it to return NetXMS status codes for this node. We can do this using a transformation script.&amp;lt;br&amp;gt;&lt;br /&gt;
Status codes documented here: https://wiki.netxms.org/wiki/NXSL:NetObj (see Possible values for &amp;quot;status&amp;quot; attribute section)&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-10.PNG]]&lt;br /&gt;
&lt;br /&gt;
Now we just tell NetXMS to use this DCI for status calculation.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-11.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
After the next status poll (br default every 1 minute), node should have Normal status.&amp;lt;br&amp;gt;&lt;br /&gt;
Node should also be correctly taken to Critical status when TCP 80 doesnt respond.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-12.PNG]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=Step_by_step_service_monitoring&amp;diff=1514</id>
		<title>Step by step service monitoring</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=Step_by_step_service_monitoring&amp;diff=1514"/>
		<updated>2016-07-04T13:20:21Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Added info on nodes that do respond to ICMP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-----&lt;br /&gt;
First we check if the website answers to ping.&amp;lt;br&amp;gt;&lt;br /&gt;
This is because when we add the website as a node into NetXMS, NetXMS uses ping to check basic node availability during status polls.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-1.PNG]]&lt;br /&gt;
&lt;br /&gt;
In our case, netxms.org does not respond to ping.&amp;lt;br&amp;gt;&lt;br /&gt;
We need to remember that for later.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Next we create a node for our website.&amp;lt;br&amp;gt;&lt;br /&gt;
We make sure to disable usage of not-supported sources for polling (including ping, since netxms.org doesnt respond to ping).&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We should see our node properly created with &amp;quot;Unknown&amp;quot; status.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Special note: in NetXMS 2.0.4 and older, there was a bug that would create a node down alarm.&amp;lt;br&amp;gt;&lt;br /&gt;
Please terminate this alarm on this node before proceeding further in the tutorial if running a version older than 2.0.5 (or 2.1).&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-3.PNG]]&lt;br /&gt;
&lt;br /&gt;
This is because we disabled all polling sources, so NetXMS doesnt have any way to check if a node is up or down.&amp;lt;br&amp;gt;&lt;br /&gt;
We will fix this later on in the tutorial.&lt;br /&gt;
&lt;br /&gt;
Please note that if the node responded to ping (and therefor we would NOT disable usage of ICMP for status polling), the node&amp;#039;s status would be Normal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
I have created a template to put all my website monitoring into.&amp;lt;br&amp;gt;&lt;br /&gt;
This will be useful if I want to monitor many websites, since I dont have to manually create monitoring DCIs for every one.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-4.png]]&lt;br /&gt;
&lt;br /&gt;
We then go into the Data collection configuration of this template.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We create a new DCI. Make sure Origin is set to NetXMS Agent, press Select, and find ServiceResponseTime.Custom(*).&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Next we will set the template DCI to resolve the node&amp;#039;s primary IP for each node that is assigned to this template.&amp;lt;br&amp;gt;&lt;br /&gt;
Documentation for template macros here: https://wiki.netxms.org/wiki/UM:Data_Collection#Macros_in_template_items&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-6.PNG]]&lt;br /&gt;
&lt;br /&gt;
We also set the Source node to our NetXMS server.&amp;lt;br&amp;gt;&lt;br /&gt;
This will mean that even tho this DCI is configured on the website&amp;#039;s node, the NetXMS server should be used to collect the data for this DCI.&amp;lt;br&amp;gt;&lt;br /&gt;
Final effect will be that the DCI itself will show up on our website&amp;#039;s node, but the data will be polled by the NetXMS server, which is what we want in this case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We can now apply our template to our website&amp;#039;s node.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-7.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We should now see our website&amp;#039;s node applied to the template, and in the node&amp;#039;s Last values, we should see the response time of the website.&amp;lt;br&amp;gt;&lt;br /&gt;
I have also added a ping DCI, to see that the website does indeed not respond to ping.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-8.PNG]]&lt;br /&gt;
&lt;br /&gt;
We now just need to fix status calculation for the node.&lt;br /&gt;
&lt;br /&gt;
If the node does respond to ping (as mentioned previously), the following steps are NOT required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We will create another DCI, this one will be used to check just if the website is up or down.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-9.PNG]]&lt;br /&gt;
&lt;br /&gt;
Now we need to configure it to return NetXMS status codes for this node. We can do this using a transformation script.&amp;lt;br&amp;gt;&lt;br /&gt;
Status codes documented here: https://wiki.netxms.org/wiki/NXSL:NetObj (see Possible values for &amp;quot;status&amp;quot; attribute section)&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-10.PNG]]&lt;br /&gt;
&lt;br /&gt;
Now we just tell NetXMS to use this DCI for status calculation.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-11.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
After the next status poll (br default every 1 minute), node should have Normal status.&amp;lt;br&amp;gt;&lt;br /&gt;
Node should also be correctly taken to Critical status when TCP 80 doesnt respond.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-12.PNG]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=Step_by_step_service_monitoring&amp;diff=1513</id>
		<title>Step by step service monitoring</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=Step_by_step_service_monitoring&amp;diff=1513"/>
		<updated>2016-07-04T12:11:43Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-----&lt;br /&gt;
First we check if the website answers to ping.&amp;lt;br&amp;gt;&lt;br /&gt;
This is because when we add the website as a node into NetXMS, NetXMS uses ping to check basic node availability during status polls.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-1.PNG]]&lt;br /&gt;
&lt;br /&gt;
In our case, netxms.org does not respond to ping.&amp;lt;br&amp;gt;&lt;br /&gt;
We need to remember that for later.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Next we create a node for our website.&amp;lt;br&amp;gt;&lt;br /&gt;
We make sure to disable usage of not-supported sources for polling (including ping, since netxms.org doesnt respond to ping).&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We should see our node properly created with &amp;quot;Unknown&amp;quot; status.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Special note: in NetXMS 2.0.4 and older, there was a bug that would create a node down alarm.&amp;lt;br&amp;gt;&lt;br /&gt;
Please terminate this alarm on this node before proceeding further in the tutorial if running a version older than 2.0.5 (or 2.1).&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-3.PNG]]&lt;br /&gt;
&lt;br /&gt;
This is because we disabled all polling sources, so NetXMS doesnt have any way to check if a node is up or down.&amp;lt;br&amp;gt;&lt;br /&gt;
We will fix this later on in the tutorial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
I have created a template to put all my website monitoring into.&amp;lt;br&amp;gt;&lt;br /&gt;
This will be useful if I want to monitor many websites, since I dont have to manually create monitoring DCIs for every one.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-4.png]]&lt;br /&gt;
&lt;br /&gt;
We then go into the Data collection configuration of this template.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We create a new DCI. Make sure Origin is set to NetXMS Agent, press Select, and find ServiceResponseTime.Custom(*).&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Next we will set the template DCI to resolve the node&amp;#039;s primary IP for each node that is assigned to this template.&amp;lt;br&amp;gt;&lt;br /&gt;
Documentation for template macros here: https://wiki.netxms.org/wiki/UM:Data_Collection#Macros_in_template_items&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-6.PNG]]&lt;br /&gt;
&lt;br /&gt;
We also set the Source node to our NetXMS server.&amp;lt;br&amp;gt;&lt;br /&gt;
This will mean that even tho this DCI is configured on the website&amp;#039;s node, the NetXMS server should be used to collect the data for this DCI.&amp;lt;br&amp;gt;&lt;br /&gt;
Final effect will be that the DCI itself will show up on our website&amp;#039;s node, but the data will be polled by the NetXMS server, which is what we want in this case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We can now apply our template to our website&amp;#039;s node.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-7.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We should now see our website&amp;#039;s node applied to the template, and in the node&amp;#039;s Last values, we should see the response time of the website.&amp;lt;br&amp;gt;&lt;br /&gt;
I have also added a ping DCI, to see that the website does indeed not respond to ping.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-8.PNG]]&lt;br /&gt;
&lt;br /&gt;
We now just need to fix status calculation for the node.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We will create another DCI, this one will be used to check just if the website is up or down.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-9.PNG]]&lt;br /&gt;
&lt;br /&gt;
Now we need to configure it to return NetXMS status codes for this node. We can do this using a transformation script.&amp;lt;br&amp;gt;&lt;br /&gt;
Status codes documented here: https://wiki.netxms.org/wiki/NXSL:NetObj (see Possible values for &amp;quot;status&amp;quot; attribute section)&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-10.PNG]]&lt;br /&gt;
&lt;br /&gt;
Now we just tell NetXMS to use this DCI for status calculation.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-11.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
After the next status poll (br default every 1 minute), node should have Normal status.&amp;lt;br&amp;gt;&lt;br /&gt;
Node should also be correctly taken to Critical status when TCP 80 doesnt respond.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-12.PNG]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=Step_by_step_service_monitoring&amp;diff=1512</id>
		<title>Step by step service monitoring</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=Step_by_step_service_monitoring&amp;diff=1512"/>
		<updated>2016-07-04T12:10:26Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Created page with &amp;quot;----- First we check if the website answers to ping.&amp;lt;br&amp;gt; This is because when we add the website as a node into NetXMS, NetXMS uses ping to check basic node availability durin...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-----&lt;br /&gt;
First we check if the website answers to ping.&amp;lt;br&amp;gt;&lt;br /&gt;
This is because when we add the website as a node into NetXMS, NetXMS uses ping to check basic node availability during status polls.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-1.PNG]]&lt;br /&gt;
&lt;br /&gt;
In our case, netxms.org does not respond to ping.&amp;lt;br&amp;gt;&lt;br /&gt;
We need to remember that for later.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Next we create a node for our website.&amp;lt;br&amp;gt;&lt;br /&gt;
We make sure to disable usage of not-supported sources for polling (including ping, since netxms.org doesnt respond to ping).&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We should see our node properly created with &amp;quot;Unknown&amp;quot; status.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Special note: in NetXMS 2.0.4 and older, there was a bug that would create a node down alarms.&amp;lt;br&amp;gt;&lt;br /&gt;
Please terminate this alarm before proceeding further in the tutorial if running a version older than 2.0.5 (or 2.1).&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-3.PNG]]&lt;br /&gt;
&lt;br /&gt;
This is because we disabled all polling sources, so NetXMS doesnt have any way to check if a node is up or down.&amp;lt;br&amp;gt;&lt;br /&gt;
We will fix this later on in the tutorial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
I have created a template to put all my website monitoring into.&amp;lt;br&amp;gt;&lt;br /&gt;
This will be useful if I want to monitor many websites, since I dont have to manually create monitoring DCIs for every one.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-4.png]]&lt;br /&gt;
&lt;br /&gt;
We then go into the Data collection configuration of this template.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We create a new DCI. Make sure Origin is set to NetXMS Agent, press Select, and find ServiceResponseTime.Custom(*).&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
Next we will set the template DCI to resolve the node&amp;#039;s primary IP for each node that is assigned to this template.&amp;lt;br&amp;gt;&lt;br /&gt;
Documentation for template macros here: https://wiki.netxms.org/wiki/UM:Data_Collection#Macros_in_template_items&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-6.PNG]]&lt;br /&gt;
&lt;br /&gt;
We also set the Source node to our NetXMS server.&amp;lt;br&amp;gt;&lt;br /&gt;
This will mean that even tho this DCI is configured on the website&amp;#039;s node, the NetXMS server should be used to collect the data for this DCI.&amp;lt;br&amp;gt;&lt;br /&gt;
Final effect will be that the DCI itself will show up on our website&amp;#039;s node, but the data will be polled by the NetXMS server, which is what we want in this case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We can now apply our template to our website&amp;#039;s node.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-7.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We should now see our website&amp;#039;s node applied to the template, and in the node&amp;#039;s Last values, we should see the response time of the website.&amp;lt;br&amp;gt;&lt;br /&gt;
I have also added a ping DCI, to see that the website does indeed not respond to ping.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-8.PNG]]&lt;br /&gt;
&lt;br /&gt;
We now just need to fix status calculation for the node.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
We will create another DCI, this one will be used to check just if the website is up or down.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-9.PNG]]&lt;br /&gt;
&lt;br /&gt;
Now we need to configure it to return NetXMS status codes for this node. We can do this using a transformation script.&amp;lt;br&amp;gt;&lt;br /&gt;
Status codes documented here: https://wiki.netxms.org/wiki/NXSL:NetObj (see Possible values for &amp;quot;status&amp;quot; attribute section)&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-10.PNG]]&lt;br /&gt;
&lt;br /&gt;
Now we just tell NetXMS to use this DCI for status calculation.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-11.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
After the next status poll (br default every 1 minute), node should have Normal status.&amp;lt;br&amp;gt;&lt;br /&gt;
Node should also be correctly taken to Critical status when TCP 80 doesnt respond.&lt;br /&gt;
&lt;br /&gt;
[[File:Website-monitoring-tutorial-12.PNG]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-8.PNG&amp;diff=1511</id>
		<title>File:Website-monitoring-tutorial-8.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-8.PNG&amp;diff=1511"/>
		<updated>2016-07-04T12:09:30Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Tomas Kirnak uploaded a new version of File:Website-monitoring-tutorial-8.PNG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-3.PNG&amp;diff=1510</id>
		<title>File:Website-monitoring-tutorial-3.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-3.PNG&amp;diff=1510"/>
		<updated>2016-07-04T12:06:47Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Tomas Kirnak uploaded a new version of File:Website-monitoring-tutorial-3.PNG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-12.PNG&amp;diff=1509</id>
		<title>File:Website-monitoring-tutorial-12.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-12.PNG&amp;diff=1509"/>
		<updated>2016-07-04T12:04:29Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-11.PNG&amp;diff=1508</id>
		<title>File:Website-monitoring-tutorial-11.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-11.PNG&amp;diff=1508"/>
		<updated>2016-07-04T11:41:17Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-10.PNG&amp;diff=1507</id>
		<title>File:Website-monitoring-tutorial-10.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-10.PNG&amp;diff=1507"/>
		<updated>2016-07-04T11:38:08Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-9.PNG&amp;diff=1506</id>
		<title>File:Website-monitoring-tutorial-9.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-9.PNG&amp;diff=1506"/>
		<updated>2016-07-04T11:35:32Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-8.PNG&amp;diff=1505</id>
		<title>File:Website-monitoring-tutorial-8.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-8.PNG&amp;diff=1505"/>
		<updated>2016-07-04T11:33:32Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-7.png&amp;diff=1504</id>
		<title>File:Website-monitoring-tutorial-7.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-7.png&amp;diff=1504"/>
		<updated>2016-07-04T11:32:42Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-6.PNG&amp;diff=1503</id>
		<title>File:Website-monitoring-tutorial-6.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-6.PNG&amp;diff=1503"/>
		<updated>2016-07-04T11:27:54Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-5.PNG&amp;diff=1502</id>
		<title>File:Website-monitoring-tutorial-5.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-5.PNG&amp;diff=1502"/>
		<updated>2016-07-04T11:24:37Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-4.png&amp;diff=1501</id>
		<title>File:Website-monitoring-tutorial-4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-4.png&amp;diff=1501"/>
		<updated>2016-07-04T11:22:50Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-3.PNG&amp;diff=1500</id>
		<title>File:Website-monitoring-tutorial-3.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-3.PNG&amp;diff=1500"/>
		<updated>2016-07-04T11:21:07Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-2.PNG&amp;diff=1499</id>
		<title>File:Website-monitoring-tutorial-2.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-2.PNG&amp;diff=1499"/>
		<updated>2016-07-04T11:18:15Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-1.PNG&amp;diff=1498</id>
		<title>File:Website-monitoring-tutorial-1.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=File:Website-monitoring-tutorial-1.PNG&amp;diff=1498"/>
		<updated>2016-07-04T11:16:03Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=Main_Page&amp;diff=1497</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=Main_Page&amp;diff=1497"/>
		<updated>2016-07-04T09:32:25Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Manuals =&lt;br /&gt;
&lt;br /&gt;
NB! Administrator and operator guides are migrated from Wiki to separate documents: [[http://www.netxms.org/documentation/adminguide Admin Guide - Online]], [[http://www.netxms.org/documentation/netxms-admin.pdf Admin Guide - PDF]], [[http://www.netxms.org/documentation/userguide Operator Guide - Online]], [[http://www.netxms.org/documentation/netxms-user.pdf Operator Guide - PDF]].&lt;br /&gt;
&lt;br /&gt;
To contribute, please contact us at team@netxms.org for write access to documentation repository.&lt;br /&gt;
&lt;br /&gt;
[[Installation Guide]]&lt;br /&gt;
&lt;br /&gt;
[[User Manual]]&lt;br /&gt;
&lt;br /&gt;
[[Scripting Guide]]&lt;br /&gt;
&lt;br /&gt;
[[System Reference]]&lt;br /&gt;
&lt;br /&gt;
[[Using APT Repository|APT Repository for Debian/Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
&lt;br /&gt;
[[NetXMS Video Tutorial Series]]&lt;br /&gt;
&lt;br /&gt;
[[How to send e-mail notification when disk space is low]]&lt;br /&gt;
&lt;br /&gt;
[[Using nxshell to automate bulk operations]]&lt;br /&gt;
&lt;br /&gt;
[[NetXMS as a cluster (high-availability) application]]&lt;br /&gt;
&lt;br /&gt;
[[Creating a Dashboard]]&lt;br /&gt;
&lt;br /&gt;
[[Creating SNMP table DCI]]&lt;br /&gt;
&lt;br /&gt;
[[OS process monitoring using SNMP]]&lt;br /&gt;
&lt;br /&gt;
[[Step by step service monitoring]]&lt;br /&gt;
&lt;br /&gt;
= Miscellaneous Documents =&lt;br /&gt;
&lt;br /&gt;
This section contains useful documents which should be part of User Manual,  but not integrated there yet.&lt;br /&gt;
&lt;br /&gt;
[[OS X Java issues]]&lt;br /&gt;
&lt;br /&gt;
[[ExternalParametersProvider|External Parameters Provider]]&lt;br /&gt;
&lt;br /&gt;
[[Autologin for Management Console]]&lt;br /&gt;
&lt;br /&gt;
[[Unsorted Features List]]&lt;br /&gt;
&lt;br /&gt;
[[Windows Performance Counters]]&lt;br /&gt;
&lt;br /&gt;
[[How to Install Agent on ZeroShell]]&lt;br /&gt;
&lt;br /&gt;
[[Enable SNMP for devices without standard system MIB]]&lt;br /&gt;
&lt;br /&gt;
[[Add new MIBs]]&lt;br /&gt;
&lt;br /&gt;
[[How to Encrypt Database Passwords]]&lt;br /&gt;
&lt;br /&gt;
[[Running NetXMS under debugger]]&lt;br /&gt;
&lt;br /&gt;
[[Details about database connection]]&lt;br /&gt;
&lt;br /&gt;
[[How to migrate to another database]]&lt;br /&gt;
&lt;br /&gt;
[[How to enable ICMP ping for NetXMS server running under non-root account]]&lt;br /&gt;
&lt;br /&gt;
[[How to fix console crash on Linux]]&lt;br /&gt;
&lt;br /&gt;
= Solutions =&lt;br /&gt;
&lt;br /&gt;
[[Uninterruptible Power Supply (UPS) Monitoring]]&lt;br /&gt;
&lt;br /&gt;
[[UPS Monitoring (APC) via SNMP]]&lt;br /&gt;
&lt;br /&gt;
[[IBM Storwize V7000|IBM Storwize V7000 (and possibly other IBM arrays)]]&lt;br /&gt;
&lt;br /&gt;
[[HP P2000]]&lt;br /&gt;
&lt;br /&gt;
[[Linux monitoring]]&lt;br /&gt;
&lt;br /&gt;
[[MTBF (Mean Time Between Failures) and MTTR (Mean Time To Repair) Calculation]]&lt;br /&gt;
&lt;br /&gt;
[[&amp;#039;Backbone&amp;#039; L3 Map - map without end-device subnets]]&lt;br /&gt;
&lt;br /&gt;
[[Ubiquiti and Ligowave wireless monitoring]]&lt;br /&gt;
&lt;br /&gt;
[[Application monitoring]]&lt;br /&gt;
&lt;br /&gt;
[[Mass node import into NetXMS]]&lt;br /&gt;
&lt;br /&gt;
= Integration =&lt;br /&gt;
[[NetXMS Integration with HP Operations Manager]]&lt;br /&gt;
&lt;br /&gt;
[[Slack.com integration]]&lt;br /&gt;
&lt;br /&gt;
= Documentation for Developers =&lt;br /&gt;
[[Coding Style]]&lt;br /&gt;
&lt;br /&gt;
[[Communication Protocol Reference Guide]]&lt;br /&gt;
&lt;br /&gt;
[[Internal API]]&lt;br /&gt;
&lt;br /&gt;
[[Network Device Drivers]]&lt;br /&gt;
&lt;br /&gt;
[[How to setup Eclipse/RAP]]&lt;br /&gt;
&lt;br /&gt;
[[How to compile report-generator]]&lt;br /&gt;
&lt;br /&gt;
[[Working with UNICODE]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=Mass_node_import_into_NetXMS&amp;diff=1493</id>
		<title>Mass node import into NetXMS</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=Mass_node_import_into_NetXMS&amp;diff=1493"/>
		<updated>2016-05-27T23:17:14Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Created page with &amp;quot;= NetXMS .csv importer = You can import nodes into NetXMS en-mass using the NetXMS .csv importer.  The project is hosted on github:&amp;lt;br&amp;gt; https://github.com/tomaskir/NetXMS-csv-...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= NetXMS .csv importer =&lt;br /&gt;
You can import nodes into NetXMS en-mass using the NetXMS .csv importer.&lt;br /&gt;
&lt;br /&gt;
The project is hosted on github:&amp;lt;br&amp;gt;&lt;br /&gt;
https://github.com/tomaskir/NetXMS-csv-importer&lt;br /&gt;
&lt;br /&gt;
You can simply create a .csv file with all the nodes you want to import into NetXMS, and run the importer.&amp;lt;br&amp;gt;&lt;br /&gt;
For more documentation on the importer, please see the github page.&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=Main_Page&amp;diff=1492</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=Main_Page&amp;diff=1492"/>
		<updated>2016-05-27T23:14:14Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Manuals =&lt;br /&gt;
&lt;br /&gt;
NB! Administrator and operator guides are migrated from Wiki to separate documents: [[http://www.netxms.org/documentation/adminguide Admin Guide - Online]], [[http://www.netxms.org/documentation/netxms-admin.pdf Admin Guide - PDF]], [[http://www.netxms.org/documentation/userguide Operator Guide - Online]], [[http://www.netxms.org/documentation/netxms-user.pdf Operator Guide - PDF]].&lt;br /&gt;
&lt;br /&gt;
To contribute, please contact us at team@netxms.org for write access to documentation repository.&lt;br /&gt;
&lt;br /&gt;
[[Installation Guide]]&lt;br /&gt;
&lt;br /&gt;
[[User Manual]]&lt;br /&gt;
&lt;br /&gt;
[[Scripting Guide]]&lt;br /&gt;
&lt;br /&gt;
[[System Reference]]&lt;br /&gt;
&lt;br /&gt;
[[Using APT Repository|APT Repository for Debian/Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
&lt;br /&gt;
[[NetXMS Video Tutorial Series]]&lt;br /&gt;
&lt;br /&gt;
[[How to send e-mail notification when disk space is low]]&lt;br /&gt;
&lt;br /&gt;
[[Using nxshell to automate bulk operations]]&lt;br /&gt;
&lt;br /&gt;
[[NetXMS as a cluster (high-availability) application]]&lt;br /&gt;
&lt;br /&gt;
[[Creating a Dashboard]]&lt;br /&gt;
&lt;br /&gt;
[[Creating SNMP table DCI]]&lt;br /&gt;
&lt;br /&gt;
[[OS process monitoring using SNMP]]&lt;br /&gt;
&lt;br /&gt;
= Miscellaneous Documents =&lt;br /&gt;
&lt;br /&gt;
This section contains useful documents which should be part of User Manual,  but not integrated there yet.&lt;br /&gt;
&lt;br /&gt;
[[OS X Java issues]]&lt;br /&gt;
&lt;br /&gt;
[[ExternalParametersProvider|External Parameters Provider]]&lt;br /&gt;
&lt;br /&gt;
[[Autologin for Management Console]]&lt;br /&gt;
&lt;br /&gt;
[[Unsorted Features List]]&lt;br /&gt;
&lt;br /&gt;
[[Windows Performance Counters]]&lt;br /&gt;
&lt;br /&gt;
[[How to Install Agent on ZeroShell]]&lt;br /&gt;
&lt;br /&gt;
[[Enable SNMP for devices without standard system MIB]]&lt;br /&gt;
&lt;br /&gt;
[[Add new MIBs]]&lt;br /&gt;
&lt;br /&gt;
[[How to Encrypt Database Passwords]]&lt;br /&gt;
&lt;br /&gt;
[[Running NetXMS under debugger]]&lt;br /&gt;
&lt;br /&gt;
[[Details about database connection]]&lt;br /&gt;
&lt;br /&gt;
[[How to migrate to another database]]&lt;br /&gt;
&lt;br /&gt;
[[How to enable ICMP ping for NetXMS server running under non-root account]]&lt;br /&gt;
&lt;br /&gt;
[[How to fix console crash on Linux]]&lt;br /&gt;
&lt;br /&gt;
= Solutions =&lt;br /&gt;
&lt;br /&gt;
[[Uninterruptible Power Supply (UPS) Monitoring]]&lt;br /&gt;
&lt;br /&gt;
[[UPS Monitoring (APC) via SNMP]]&lt;br /&gt;
&lt;br /&gt;
[[IBM Storwize V7000|IBM Storwize V7000 (and possibly other IBM arrays)]]&lt;br /&gt;
&lt;br /&gt;
[[HP P2000]]&lt;br /&gt;
&lt;br /&gt;
[[Linux monitoring]]&lt;br /&gt;
&lt;br /&gt;
[[MTBF (Mean Time Between Failures) and MTTR (Mean Time To Repair) Calculation]]&lt;br /&gt;
&lt;br /&gt;
[[&amp;#039;Backbone&amp;#039; L3 Map - map without end-device subnets]]&lt;br /&gt;
&lt;br /&gt;
[[Ubiquiti and Ligowave wireless monitoring]]&lt;br /&gt;
&lt;br /&gt;
[[Application monitoring]]&lt;br /&gt;
&lt;br /&gt;
[[Mass node import into NetXMS]]&lt;br /&gt;
&lt;br /&gt;
= Integration =&lt;br /&gt;
[[NetXMS Integration with HP Operations Manager]]&lt;br /&gt;
&lt;br /&gt;
[[Slack.com integration]]&lt;br /&gt;
&lt;br /&gt;
= Documentation for Developers =&lt;br /&gt;
[[Coding Style]]&lt;br /&gt;
&lt;br /&gt;
[[Communication Protocol Reference Guide]]&lt;br /&gt;
&lt;br /&gt;
[[Internal API]]&lt;br /&gt;
&lt;br /&gt;
[[Network Device Drivers]]&lt;br /&gt;
&lt;br /&gt;
[[How to setup Eclipse/RAP]]&lt;br /&gt;
&lt;br /&gt;
[[How to compile report-generator]]&lt;br /&gt;
&lt;br /&gt;
[[Working with UNICODE]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=NXSL_Function_Reference&amp;diff=1488</id>
		<title>NXSL Function Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=NXSL_Function_Reference&amp;diff=1488"/>
		<updated>2016-03-22T11:26:55Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Added ArrayToString and SplitString to function table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Function tables =&lt;br /&gt;
{| {border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot; style=&amp;quot;border:\#c9c9c9 1px solid; margin: 1em 1em 1em 0; border-collapse: collapse;&amp;quot;}&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Generic&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Math&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;String-related&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Data Collection&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Object search&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Object management&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Network&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:classof|classof]]||[[NXSL:abs|abs]]||[[NXSL:ArrayToString|ArrayToString]]||[[NXSL:CreateDCI|CreateDCI]]||[[NXSL:FindNodeObject|FindNodeObject]]||[[NXSL:BindObject|BindObject]]||[[NXSL:AddrInRange|AddrInRange]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:d2x|d2x]]||[[NXSL:ceil|ceil]]||[[NXSL:chr|chr]]||[[NXSL:FindAllDCIs|FindAllDCIs]]||[[NXSL:FindObject|FindObject]]||[[NXSL:CreateContainer|CreateContainer]]||[[NXSL:AddrInSubnet|AddrInSubnet]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:exit|exit]]||[[NXSL:exp|exp]]||[[NXSL:format|format]]||[[NXSL:FindDCIByDescription|FindDCIByDescription]]||[[NXSL:GetInterfaceName|GetInterfaceName]]||[[NXSL:CreateNode|CreateNode]]||[[NXSL:gethostbyaddr|gethostbyaddr]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:GeoLocation|GeoLocation]]||[[NXSL:floor|floor]]||[[NXSL:index|index]]||[[NXSL:FindDCIByName|FindDCIByName]]||[[NXSL:GetInterfaceObject|GetInterfaceObject]]||[[NXSL:DeleteCustomAttribute|DeleteCustomAttribute]]||[[NXSL:gethostbyname|gethostbyname]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:GetConfigurationVariable|GetConfigurationVariable]]||[[NXSL:log|log]]||[[NXSL:left|left]]||[[NXSL:GetAvgDCIValue|GetAvgDCIValue]]||[[NXSL:GetNodeInterfaces|GetNodeInterfaces]]||[[NXSL:DeleteObject|DeleteObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:inList|inList]]||[[NXSL:log10|log10]]||[[NXSL:length|length]]||[[NXSL:GetDCIObject|GetDCIObject]]||[[NXSL:GetNodeParents|GetNodeParents]]||[[NXSL:GetCustomAttribute|GetCustomAttribute]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:map|map]]||[[NXSL:pow|pow]]||[[NXSL:lower|lower]]||[[NXSL:GetDCIRawValue|GetDCIRawValue]]||[[NXSL:GetNodeTemplates|GetNodeTemplates]]||[[NXSL:ManageObject|ManageObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:mapList|mapList]]||[[NXSL:round|round]]||[[NXSL:ltrim|ltrim]]||[[NXSL:GetDCIValue|GetDCIValue]]||[[NXSL:GetObjectChildren|GetObjectChildren]]||[[NXSL:RenameObject|RenameObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:max|max]]||||[[NXSL:ord|ord]]||[[NXSL:GetDCIValues|GetDCIValues]]||[[NXSL:GetObjectParents|GetObjectParents]]||[[NXSL:SetCustomAttribute|SetCustomAttribute]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:min|min]]||||[[NXSL:right|right]]||[[NXSL:GetDCIValueByDescription|GetDCIValueByDescription]]||||[[NXSL:SetInterfaceExpectedState|SetInterfaceExpectedState]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:random|random]]||||[[NXSL:rindex|rindex]]||[[NXSL:GetDCIValueByName|GetDCIValueByName]]||||[[NXSL:UnbindObject|UnbindObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:sleep|sleep]]||||[[NXSL:rtrim|rtrim]]||[[NXSL:GetMaxDCIValue|GetMaxDCIValue]]||||[[NXSL:UnmanageObject|UnmanageObject]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:trace|trace]]||||[[NXSL:SplitString|SplitString]]||[[NXSL:GetMinDCIValue|GetMinDCIValue]]||||||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:typeof|typeof]]||||[[NXSL:substr|substr]]||[[NXSL:GetSumDCIValue|GetSumDCIValue]]||||||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:x2d|x2d]]||||[[NXSL:trim|trim]]||[[NXSL:PushDCIData|PushDCIData]]||||||&lt;br /&gt;
|-&lt;br /&gt;
| ||||[[NXSL:upper|upper]]||||||||&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| {border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot; style=&amp;quot;border:\#c9c9c9 1px solid; margin: 1em 1em 1em 0; border-collapse: collapse;&amp;quot;}&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Time-related&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Cryptography&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;SNMP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Agent&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Event Processing&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Situations&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:gmtime|gmtime]]||[[NXSL:md5|md5]]||[[NXSL:CreateSNMPTransport|CreateSNMPTransport]]||[[NXSL:AgentReadList|AgentReadList]]||[[NXSL:FindAlarmById|FindAlarmById]]||[[NXSL:FindSituation|FindSituation]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:localtime|localtime]]||[[NXSL:sha1|sha1]]||[[NXSL:SNMPGet|SNMPGet]]||[[NXSL:AgentReadParameter|AgentReadParameter]]||[[NXSL:FindAlarmByKey|FindAlarmByKey]]||[[NXSL:GetSituationAttribute|GetSituationAttribute]]&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:SecondsToUptime|SecondsToUptime]]||[[NXSL:sha256|sha256]]||[[NXSL:SNMPGetValue|SNMPGetValue]]||[[NXSL:AgentReadTable|AgentReadTable]]||[[NXSL:GetEventParameter|GetEventParameter]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:strftime|strftime]]||||[[NXSL:SNMPSet|SNMPSet]]||||[[NXSL:PostEvent|PostEvent]]||&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:time|time]]||||[[NXSL:SNMPWalk|SNMPWalk]]||||[[NXSL:SetEventParameter|SetEventParameter]]||&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the old function organization.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Generic Functions =&lt;br /&gt;
&lt;br /&gt;
[[NXSL:abs|abs]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:AddrInRange|AddrInRange]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:AddrInSubnet|AddrInSubnet]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:ArrayToString|ArrayToString]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:ceil|ceil]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:chr|chr]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:classof|classof]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:d2x|d2x]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:exit|exit]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:exp|exp]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:floor|floor]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:format|format]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GeoLocation|GeoLocation]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:gethostbyaddr|gethostbyaddr]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:gethostbyname|gethostbyname]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:gmtime|gmtime]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:index|index]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:inList|inList]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:left|left]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:length|length]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:localtime|localtime]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:log|log]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:log10|log10]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:lower|lower]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:ltrim|ltrim]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:map|map]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:mapList|mapList]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:max|max]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:min|min]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:md5|md5]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:ord|ord]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:pow|pow]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:random|random]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:right|right]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:rindex|rindex]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:round|round]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:rtrim|rtrim]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:sleep|sleep]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:SecondsToUptime|SecondsToUptime]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:sha1|sha1]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:sha256|sha256]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:SplitString|SplitString]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:strftime|strftime]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:substr|substr]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:time|time]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:trace|trace]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:trim|trim]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:typeof|typeof]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:upper|upper]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:x2d|x2d]]&lt;br /&gt;
&lt;br /&gt;
= Data Collection =&lt;br /&gt;
&lt;br /&gt;
[[NXSL:CreateDCI|CreateDCI]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:FindAllDCIs|FindAllDCIs]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:FindDCIByDescription|FindDCIByDescription]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:FindDCIByName|FindDCIByName]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetAvgDCIValue|GetAvgDCIValue]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetDCIObject|GetDCIObject]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetDCIRawValue|GetDCIRawValue]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetDCIValue|GetDCIValue]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetDCIValues|GetDCIValues]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetDCIValueByDescription|GetDCIValueByDescription]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetDCIValueByName|GetDCIValueByName]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetMaxDCIValue|GetMaxDCIValue]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetMinDCIValue|GetMinDCIValue]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetSumDCIValue|GetSumDCIValue]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:PushDCIData|PushDCIData]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Event Processing =&lt;br /&gt;
&lt;br /&gt;
[[NXSL:FindAlarmById|FindAlarmById]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:FindAlarmByKey|FindAlarmByKey]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetEventParameter|GetEventParameter]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:PostEvent|PostEvent]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:SetEventParameter|SetEventParameter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Object Management =&lt;br /&gt;
&lt;br /&gt;
[[NXSL:BindObject|BindObject]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:CreateContainer|CreateContainer]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:CreateNode|CreateNode]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:DeleteCustomAttribute|DeleteCustomAttribute]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:DeleteObject|DeleteObject]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:FindNodeObject|FindNodeObject]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:FindObject|FindObject]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetCustomAttribute|GetCustomAttribute]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetInterfaceName|GetInterfaceName]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetInterfaceObject|GetInterfaceObject]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetNodeInterfaces|GetNodeInterfaces]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetNodeParents|GetNodeParents]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetNodeTemplates|GetNodeTemplates]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetObjectChildren|GetObjectChildren]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetObjectParents|GetObjectParents]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:ManageObject|ManageObject]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:RenameObject|RenameObject]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:SetCustomAttribute|SetCustomAttribute]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:SetInterfaceExpectedState|SetInterfaceExpectedState]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:UnbindObject|UnbindObject]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:UnmanageObject|UnmanageObject]]&lt;br /&gt;
&lt;br /&gt;
= Server Configuration =&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetConfigurationVariable|GetConfigurationVariable]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Situations =&lt;br /&gt;
&lt;br /&gt;
[[NXSL:FindSituation|FindSituation]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:GetSituationAttribute|GetSituationAttribute]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Agent Access =&lt;br /&gt;
&lt;br /&gt;
[[NXSL:AgentReadList|AgentReadList]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:AgentReadParameter|AgentReadParameter]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:AgentReadTable|AgentReadTable]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= SNMP =&lt;br /&gt;
&lt;br /&gt;
[[NXSL:CreateSNMPTransport|CreateSNMPTransport]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:SNMPGet|SNMPGet]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:SNMPGetValue|SNMPGetValue]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:SNMPSet|SNMPSet]]&lt;br /&gt;
&lt;br /&gt;
[[NXSL:SNMPWalk|SNMPWalk]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting Guide]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=NXSL:FindObject&amp;diff=1477</id>
		<title>NXSL:FindObject</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=NXSL:FindObject&amp;diff=1477"/>
		<updated>2016-01-26T13:33:24Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Clarified returned object type behaviour&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Find NetXMS object by object id or name.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Since:&amp;#039;&amp;#039;&amp;#039; 1.2.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&lt;br /&gt;
FindObject(&amp;#039;&amp;#039;id&amp;#039;&amp;#039;, &amp;#039;&amp;#039;node&amp;#039;&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;id&amp;#039;&amp;#039; || ID or name of the object to find.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;node&amp;#039;&amp;#039; || Node object, you can use predefined variable $node to refer to current node. You can also use null or omit this parameter if trusted nodes check is disabled (see [[SG:Security Issues|Security Issues]] for more information).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Return Value ==&lt;br /&gt;
&lt;br /&gt;
Object of NetObj or one of its sub-clases (depending on found object type) with given id or name on success or &amp;#039;&amp;#039;&amp;#039;null&amp;#039;&amp;#039;&amp;#039; on failure (either because object with given name/id does not exist, or access to it was denied).&amp;lt;br&amp;gt;&lt;br /&gt;
For more info see [[NXSL Class Reference|NXSL Class Reference]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
 FindObject(&amp;quot;server.netxms.org&amp;quot;, $node)	-&amp;gt; object&lt;br /&gt;
 FindObject(2)				-&amp;gt; object&lt;br /&gt;
 FindObject(&amp;quot;bad_object_name&amp;quot;, $node)	-&amp;gt; NULL&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=NXSL:Zone&amp;diff=1476</id>
		<title>NXSL:Zone</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=NXSL:Zone&amp;diff=1476"/>
		<updated>2016-01-25T13:13:28Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Specified attributes are inhereted from NetObj and fixed attributes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Represents NetXMS zone object&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Class Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Zone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attributes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Inherits all attributes of the [[NXSL:NetObj|NetObj class]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| agentProxy || int32 || Identifier of node object used as agent proxy&lt;br /&gt;
|-&lt;br /&gt;
| icmpProxy || int32 || Identifier of node object used as ICMP proxy&lt;br /&gt;
|-&lt;br /&gt;
| snmpProxy || int32 || Identifier of node object used as SNMP proxy&lt;br /&gt;
|-&lt;br /&gt;
| zoneId || int32 || Zone ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:NXSL Class Reference]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
	<entry>
		<id>https://wiki.netxms.org/index.php?title=NXSL:Node&amp;diff=1475</id>
		<title>NXSL:Node</title>
		<link rel="alternate" type="text/html" href="https://wiki.netxms.org/index.php?title=NXSL:Node&amp;diff=1475"/>
		<updated>2016-01-25T13:10:49Z</updated>

		<summary type="html">&lt;p&gt;Tomas Kirnak: Specified attributes are inhereted from NetObj and fixed attributes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Represents NetXMS node object.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Class Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attributes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Inherits all attributes of the [[NXSL:NetObj|NetObj class]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| agentVersion || string || NetXMS agent&amp;#039;s version&lt;br /&gt;
|-&lt;br /&gt;
| bootTime || int64 || Node boot time or 0 if not known (in seconds since epoch)&lt;br /&gt;
|-&lt;br /&gt;
| bridgeBaseAddress || string || Bridge base address (will return &amp;quot;000000000000&amp;quot; if not known or node is not a bridge/switch)&lt;br /&gt;
|-&lt;br /&gt;
| driver || string || Driver name&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:Node:flags | flags]] || uint32 || Node flags (bit mask)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;quot;is802_1x&amp;quot; or &amp;quot;isPAE&amp;quot; || boolean || TRUE if node supports 802.1x&lt;br /&gt;
|-&lt;br /&gt;
| isAgent || boolean || TRUE if NetXMS agent detected on node&lt;br /&gt;
|-&lt;br /&gt;
| isBridge || boolean || TRUE if node is a bridge&lt;br /&gt;
|-&lt;br /&gt;
| isCDP || boolean || TRUE if node supports CDP (Cisco Discovery Protocol)&lt;br /&gt;
|-&lt;br /&gt;
| isLLDP || boolean || TRUE if node supports LLDP (Link Layer Discovery Protocol)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;quot;isLocalMgmt&amp;quot; or &amp;quot;isLocalManagement&amp;quot; || boolean || TRUE if node is a local management server (NetXMS server)&lt;br /&gt;
|-&lt;br /&gt;
| isPrinter || boolean || TRUE if node is a printer&lt;br /&gt;
|-&lt;br /&gt;
| isRouter || boolean || TRUE if node is a router (has IP forwarding enabled)&lt;br /&gt;
|-&lt;br /&gt;
| isSMCLP|| boolean || TRUE if SMCLP agent detected on node&lt;br /&gt;
|-&lt;br /&gt;
| isSNMP || boolean || TRUE if SNMP agent detected on node&lt;br /&gt;
|-&lt;br /&gt;
| isSONMP || boolean || TRUE if node supports SONMP/NDP (Synoptics/Nortel Discovery Protocol)&lt;br /&gt;
|-&lt;br /&gt;
| platformName || string || Platform name reported by NetXMS agent&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:Node:runtimeFlags | runtimeFlags]] || uint32 || Node runtime flags (bit mask)&lt;br /&gt;
|-&lt;br /&gt;
| snmpOID || string || SNMP object identifier (value of .1.3.6.1.2.1.1.2.0)&lt;br /&gt;
|-&lt;br /&gt;
| snmpSysContact || string || SNMP system contact (value of .1.3.6.1.2.1.1.4.0)&lt;br /&gt;
|-&lt;br /&gt;
| snmpSysLocation || string || SNMP system location (value of .1.3.6.1.2.1.1.6.0)&lt;br /&gt;
|-&lt;br /&gt;
| snmpSysName || string || SNMP system name (value of .1.3.6.1.2.1.1.5.0)&lt;br /&gt;
|-&lt;br /&gt;
| snmpVersion || int32 || Configured SNMP version (0 for SNMP version 1, 1 for SNMP version 2c, 2 for SNMP version 3)&lt;br /&gt;
|-&lt;br /&gt;
| sysDescription || string || System description (value of System.Uname for nodes with agents or .1.3.6.1.2.1.1.1.0 for SNMP nodes)&lt;br /&gt;
|-&lt;br /&gt;
| zone || object ([[NXSL:Zone|Zone]]) || Zone object (&amp;#039;&amp;#039;&amp;#039;null&amp;#039;&amp;#039;&amp;#039; if zoning is disabled)&lt;br /&gt;
|-&lt;br /&gt;
| zoneId || int32 || Zone ID (0 if zoning is disabled)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Methods&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Parameters !! Return value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:NetObj:clearGeoLocation|clearGeoLocation]] || none || none || Clears GeoLocation data from the node&lt;br /&gt;
|-&lt;br /&gt;
| [[NXSL:NetObj:setGeoLocation|setGeoLocation]] || Object of [[NXSL:GeoLocation|GeoLocation]] class || none || Sets GeoLocation data for the node&lt;br /&gt;
|-&lt;br /&gt;
| enableAgent || boolean || none ||Enable or disable usage of NetXMS agent for all polls&lt;br /&gt;
|-&lt;br /&gt;
| enableConfigurationPolling || boolean || none || Enable or disable configuration polling for a node&lt;br /&gt;
|-&lt;br /&gt;
| enableIcmp || boolean || none || Enable or disable usage of ICMP pings for status polls&lt;br /&gt;
|-&lt;br /&gt;
| enableSnmp || boolean || none || Enable or disable usage of SNMP for all polls&lt;br /&gt;
|-&lt;br /&gt;
| enableStatusPolling || boolean || none || Enable or disable status polling for a node&lt;br /&gt;
|-&lt;br /&gt;
| enableTopologyPolling || boolean || none || Enable or disable topology polling&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Example (disable usage of NetXMS agent for all polls):&lt;br /&gt;
 $node-&amp;gt;enableAgent(false);&lt;br /&gt;
&lt;br /&gt;
[[Category:NXSL Class Reference]]&lt;/div&gt;</summary>
		<author><name>Tomas Kirnak</name></author>
	</entry>
</feed>