Asset Management

NetXMS provides built-in asset management capabilities for tracking physical and logical properties of your infrastructure. Asset objects store inventory data such as serial numbers, purchase dates, vendor information, and warranty status, and can be linked to monitored node objects.

For object model concepts and properties, see Object Model and Object Properties Reference.

Asset Objects

Asset objects live under the Assets root object in the object tree. Each asset represents a physical or logical inventory item.

Assets can be organized in a hierarchical structure using asset groups:

Assets
├── Data Center Equipment
│   ├── Servers
│   │   ├── web-server-01
│   │   └── db-server-01
│   └── Network Equipment
│       ├── core-switch-01
│       └── firewall-01
├── Office Equipment
│   └── Printers
│       └── printer-floor2
└── Software Licenses
    └── monitoring-license

Asset Attributes

Asset attributes are fully user-defined — NetXMS does not ship with any predefined attributes. Each organization defines its own set of attributes based on its asset tracking needs.

Defining Attributes

To define asset attributes:

  1. Open Configuration > Asset management schema (opens the "Asset Management Schema" view)

  2. Select New attribute…​ to create a new attribute definition

  3. Configure:

    • Name — internal name (used in scripts and API)

    • Display Name — label shown in the UI

    • Data Type — string, integer, number, boolean, enum, MAC address, IP address, UUID, object reference, date

    • Mandatory — whether this attribute must be filled in

    • Unique — whether values must be unique across all assets

    • Hidden — hide the attribute from asset property views

    • Range/Length — validation constraints

    • Enum Values — for enum type, define the allowed values

    • Autofill script — NXSL script that computes the attribute value automatically when the asset is linked to an object

Attribute Data Types

Type Description

String

Free-form text with optional length validation.

Integer

Whole number with optional range validation.

Number

Decimal number with optional range validation.

Boolean

True/false value.

Enum

Selection from a predefined list of values.

MAC Address

Validated MAC address in standard notation.

IP Address

Validated IPv4 or IPv6 address.

UUID

Universally unique identifier.

Object Reference

Reference to another NetXMS object by ID.

Date

Date value.

System Types

When defining an attribute, you can assign a system type that gives the attribute a special role:

System Type Description

Serial

Serial number. Used for automatic asset-to-object matching by serial number; not filled automatically.

IP Address

Auto-fills from the linked node’s primary IP address. Applies to nodes only.

MAC Address

MAC address. Used for automatic asset-to-object matching by MAC address; not filled automatically.

Vendor

Auto-fills from the linked object’s vendor information.

Model

Auto-fills from the linked object’s model information.

An attribute can have at most one system type, and assigning a system type disables the attribute’s autofill script — the two are mutually exclusive. Automatically filled system-type values are written only when the attribute is empty, except IP Address, which always overwrites the current value. System types are optional — attributes without a system type work as regular manually-filled fields.

Linking Assets to Nodes

Assets gain their full value when linked to monitored node objects. A linked asset-node pair allows you to:

  • Automatically populate asset attributes from node data using system types or NXSL autofill scripts

  • View asset information directly from the node’s properties

  • Include asset data in notifications and reports

  • Use asset attributes in NXSL scripts and auto-bind rules

  • Track which monitoring objects correspond to which physical equipment

From the asset side:

  1. Right-click an asset in the object tree

  2. Select Link to…​

  3. Select the target object (node, rack, or other data collection target)

From the node/object side:

  1. Right-click a node or rack in the object tree

  2. Select Link to asset…​

  3. Select the target asset

If either the asset or the object is already linked, a confirmation dialog asks whether to replace the existing link.

Each asset can be linked to at most one object, and each object can be linked to at most one asset.

Automatic Linking

Asset-to-object links can be created automatically during configuration polls. The server matches assets to objects using attributes with the following system types:

  • Serial — matches the asset’s serial number attribute against the serial number reported by the object

  • MAC Address — if no serial number match is found, falls back to matching by MAC address

Automatic linking runs during configuration polls of nodes, sensors, and access points. If a match is found, the asset is linked to the object and autofill scripts are executed to populate other asset attributes.

Managing Assets

Creating Assets

  1. Right-click an asset group under Assets (or the Assets root object itself)

  2. Select Create > Asset

  3. Enter the asset name and optional alias

  4. Fill in the asset attributes (mandatory attributes must be provided)

  5. Click OK

Linking to a monitored object is done separately after creation (see Creating a Link).

Exporting Assets

Export asset data to CSV from the "Assets" view:

  1. Open the "Assets" view

  2. Use Export all to CSV…​ to export all assets, or select specific assets and use Export to CSV…​ to export the selection

Asset Change Log

All asset operations — creation, deletion, attribute updates, linking, and unlinking — are recorded in the asset change log, which can be opened as a log view in the management client. Retention of change log records is controlled by the AssetChangeLog.RetentionTime server configuration variable (default: 90 days).

Deleting an asset that is linked to an object is blocked unless the Objects.Assets.AllowDeleteIfLinked server configuration variable is enabled (it is disabled by default).

Using Asset Data in Scripts

Asset attributes are accessible in NXSL scripts through the assetProperties attribute on any object that has a linked asset. Property names correspond to the internal attribute names defined in the asset management schema.

// Access asset properties through the node
// Attribute names match the internal names you defined (e.g., "serial_number", "vendor")
props = $node.assetProperties;
if (props != null) {
    serial = props.serial_number;
    vendor = props.vendor;
    warrantyEnd = props.warranty_expiration;
}

Asset attributes can also be used in:

  • Notification templates — include asset data in alarms and notifications

  • Auto-bind scripts — bind objects to containers based on asset properties

  • DCI transformation scripts — use asset metadata to adjust collected values

  • Dashboard widgets — display asset information alongside monitoring data

  • Reports — include asset inventory data in generated reports

Asset Verification

During configuration polls, NetXMS verifies that asset links remain valid by comparing asset properties against the linked object’s current data:

  • Serial number — if the asset’s serial number attribute no longer matches the object’s reported serial number, the asset is automatically unlinked

  • MAC address — if serial number matching is not available, MAC address is used as a fallback

The following events are generated during asset verification:

Event Description

SYS_ASSET_LINK

Asset successfully linked to an object.

SYS_ASSET_UNLINK

Asset unlinked from an object (manually or due to mismatch).

SYS_ASSET_LINK_CONFLICT

An asset matches an object but is already linked to a different object.

SYS_ASSET_AUTO_UPDATE_FAILED

Automatic update of an asset property failed for any reason (the reason event parameter contains details).

These events can be processed by the Event Processing Policy to create alarms or trigger corrective actions.