Recent posts

#41
General Support / Re: Script based DCIs broken a...
Last post by Alex Kirhenshtein - September 04, 2026, 04:09:46 PM
Hi,

Not your script - 6.2 added a server configuration parameter Scripts.RestrictWriteAccess, enabled by default on new installations and on in-place upgrades. With it on, script-origin DCIs run under a read-only security context, and executeAgentCommandWithOutput() is one of the denied operations: https://netxms.org/documentation/adminguide/scripting.html#script-write-access-restrictions

Here's what's actually happening: the denied call does not raise an error. It returns null, the script keeps running, and it dies one line later where res.length hits that null - which is why the error points at line 8 and says "argument is not an object" instead of naming the restriction. In the Script Executor the same script runs under your user's rights, which include the control permission, so it works there and only there.

To confirm, enable debug tag nxsl.security at level 7 - the denial logs "Read-only script access denied" with the object name and id. Nothing appears at default levels.

Two ways out:

  • Turn the restriction off: Server Configuration -> Scripts.RestrictWriteAccess -> 0. Takes effect immediately, no restart. It's a global switch though - it re-enables writes for every restricted script type, not just your DCI.
  • Move the ping to the agent. Better fit here, since you're collecting a value rather than modifying anything. In nxagentd.conf, pointing at the same commands your ping-suli / ping-voda actions run:

ExternalMetric = PingSuli(*):["/path/to/ping-suli", "$1"]
ExternalMetric = PingVoda(*):["/path/to/ping-voda", "$1"]

Then two Agent-origin DCIs with metrics PingSuli(1.1.1.1) and PingVoda(1.1.1.1). No NXSL, so the restriction doesn't apply - and the if ($2) switch disappears, since you had two DCIs anyway.

I've opened https://github.com/netxms/netxms/issues/3619 on whether script-origin DCIs should be restricted at all - they're a data source, not an analysis script - and https://github.com/netxms/netxms/issues/3620 on the denial being invisible and surfacing as an unrelated error.
#42
General Support / Re: The PinView feature is no ...
Last post by Alex Kirhenshtein - September 04, 2026, 03:25:41 PM
Your fresh install working is the useful data point - this is something about that specific server, not the pinboard code.

Here's what's actually happening: all web UI settings live in a single properties file on the machine running the web UI, under the servlet container's work directory, named nxmc.preferences.<uuid>. The uuid comes from a cookie called nxmcStoreId in your browser. If that cookie doesn't come back on the next login, the web UI generates a new uuid and opens an empty file - and the old one stays on disk with all your settings still in it. Pinboard, the "Show server clock" checkbox and column widths all live in that one file, which is why they go together.

Three things to check, and they split the problem cleanly:

  • How many contexts are deployed. Look at /var/lib/tomcat10/work/Catalina/localhost/ - if more than one nxmc context is there (nxmc and nxmc-6.2.4, say), each has its own state directory, and the files you find may belong to a context you are no longer using. The web UI logs a line "State directory:" at every startup naming the one actually in use.
  • Whether a new file appears per login. List the state directory, log in again, list it again. A new nxmc.preferences.<uuid> each time means the cookie is not coming back. The same file with a new timestamp means it is, and the problem is elsewhere.
  • The cookie itself. Browser dev tools, Application - Cookies, look for nxmcStoreId. It is set with a 90 day lifetime, so it should survive a logout. If your nginx config caches or strips Set-Cookie on the proxied responses, it won't.

If you already have a file there containing pinboard$<number> entries, that settles most of it on its own: saving works, and the session that comes up empty is reading a different file.

The web UI log goes to catalina.out on a Tomcat install - grep it for "State directory", "local preferences" and "Invalid store ID". (-Dnxmc.logfile is only set in our Jetty instructions, so on Tomcat everything lands in the console log.)

Note: even once this works, that directory is Tomcat's per-context work directory and it is cleared on war redeploy. So web UI settings are lost on every web UI upgrade by design - that is likely part of what you saw across the three version upgrades.
#43
General Support / Script based DCIs broken after...
Last post by noel - September 04, 2026, 12:51:51 PM
I recently upgraded our NetXMS server (and agent) listed below:
netxms-agent:amd64 (6.0.1-1+bookworm, 6.2.3-1+bookworm)
netxms-server:amd64 (6.0.1-1+bookworm, 6.2.3-1+bookworm)
and later (due to this issue)
netxms-agent:amd64 (6.2.3-1+bookworm, 6.2.4-1+bookworm)
netxms-server:amd64 (6.2.3-1+bookworm, 6.2.4-1+bookworm).

I had two similar DCIs like this: origin: script, metric: Ping("1.1.1.1",1)

And the following script behind:

if ($2) {
cmd = "ping-suli";
} else {
cmd = "ping-voda";
}
println("Using: " .. cmd);
res = $node.executeAgentCommandWithOutput(cmd, $1);
if (res.length == 0) return null;
return res;

Both DCIs error with the following: Script (Ping) execution error: Error 14 in line 8: Function or operation argument is not an object

But if I use the execute script function with params: "1.1.1.1",1 to run the ping on the same node I get the expected result:

Using: ping-suli


*** FINISHED ***

Result: 25.2

This issue started after the first upgrade and persisted after the second.
#44
General Support / slack configuration
Last post by curruscanis - September 04, 2026, 12:34:09 AM
I have installed a new NetXMS system on an Ubuntu server to test the newest release and some new ideas for our existing install.

Previously we had used email for our alerting platform, but it has some issues, and we would like to attempt to use Slack as a possible alterantive, however when I configure the Notification Channel for Slack I am not getting anywhere and the error on the Notification Channel setup is Status: failure, Error Message: Driver Error

It is a brand new base install of NetXMS with the WebGui added... and a few nodes monitored.

I have configured a webhook for slack, and added the following configuration in the Notification Channel setup for Slack:

username=monitor
url=[https://hooks.slack.com/services/***** private info here *****]

I am not sure what I am doing wrong?

Thank you.
 
#45
General Support / Re: The PinView feature is no ...
Last post by tanero - September 03, 2026, 07:25:15 PM
On a different server, I performed a fresh installation of nginx+tomcat+nxmc-6.2.4.war, and when I tested it, Pinview started working normally.
#46
General Support / Re: Repeated updates of the so...
Last post by gmonk63 - September 03, 2026, 05:33:27 PM
Im still seeing this after installing  6.2.3 agent from 5.2.8 server is 6.2.2  windows agents repeatedly update installed packages.
#47
General Support / Re: The PinView feature is no ...
Last post by tanero - September 03, 2026, 04:57:08 PM
Thank you for your feedback. I have tried the following possibilities:

  • I tried different NETXMS versions, currently 6.2.4 (the problem has persisted since the last 3 version upgrades).
  • I recently installed TomCat 10 and re-uploaded the war file
  • I tried with different browsers (Chrome, Opera, Firefox), but the result was the same.
  • I select "Show server clock" in Client Preferences, save, and exit, but when I re-enter, it's still not set.
  • I set the Alarms page using PinView F7, but the situation remains the same even after closing the browser or logging out.
#48
General Support / Re: The PinView feature is no ...
Last post by Alex Kirhenshtein - September 03, 2026, 03:00:02 PM
Hi,

Not a setting — there's nothing to enable, pinboard is saved when the session ends and restored on the next login. Looks like a regression, but two different things can produce an empty pinboard in the web UI and they need different fixes.

So: 1) which exact version are you on? 2) does it stay empty after an explicit Logout, or only after closing the browser? 3) do other web UI settings survive — last active perspective, splitter positions, table column widths — or do those reset too?

That last one matters because web UI settings are not stored in the server database. They live in a file on the machine running the web UI, in the servlet container's temp directory, keyed by a cookie in your browser. If everything resets, you're losing that file — typically a web UI restart that recreates the temp dir — and that's a separate problem from the pinboard itself.
#49
General Support / The PinView feature is no long...
Last post by tanero - September 03, 2026, 09:29:47 AM
PinView, which used to work, seems to have stopped working in the last couple of versions.

For example, after pinning some dashboards with PinView and then logging out or closing the browser and reopening, the dashboards I had previously set would reappear active.

Now, when I open the Pinboard panel, it's always empty.

Has anyone else encountered this?

Could this be a setting change or a bug?
#50
Announcements / NetXMS 6.2 patch release 4
Last post by Victor Kirhenshtein - September 02, 2026, 12:40:30 PM
We just published patch release 4 for version 6.2. Notable changes since previous patch release:

-   Server provides native MCP (Model Context Protocol) endpoint, replacing standalone Java MCP server
-   Agent-side data collection using Nagios-compatible monitoring plugins via ExternalCheck configuration option
-   Generic weather subagent with support for multiple providers (MET Norway and Open-Meteo)
-   New network device drivers for Aruba CX switches and Cisco Catalyst 9800 wireless controllers
-   MQTT subagent supports instance discovery, wildcard topics, and parameterized metrics in extractors
-   MQTT topic payloads are no longer truncated at 255 bytes
-   Option to synchronize node names with SNMP sysName on configuration poll
-   Dashboards can be shared via anonymous public access links
-   Network maps show link details on mouse-over
-   Connection point search uses LLDP/CDP peer information in addition to FDB data
-   Simplified adding multiple DCI-based or object-based checks to business services
-   Multiple conditions can be added to log viewer filters at once
-   Shift+click range selection of cells in DCI table value viewer
-   Option to show total value and change font size in pie charts
-   "Export all to CSV" action added to Interfaces view
-   Script library scripts can be provided as context to AI assistant in script editor
-   OpenTelemetry log record body exposed as event parameter
-   ICMP statistics are no longer reported for nodes without valid primary IP address
-   Fixed handling of 6-field cron expressions in recurrent scheduled tasks
-   Fixed L2 topology building on Cisco switches that provide bridge port mappings in per-VLAN SNMP contexts
-   Fixed SNMPv1 trap encoding that caused traps to be dropped by Net-SNMP receivers
-   Fixed Linux agent crash when requesting Process.\* metric with "average" aggregation for non-existent process
-   Fixed double-counting of shared memory in Process.MemoryUsage with "sum" aggregation causing false memory alarms
-   Fixed memory leak in management client
-   Fixed housekeeper and v5 data migration stall when throttle watermarks are set to 0
-   Fixed inverted "disable 802.1x status poll" node polling property
-   Fixed vendor detection and management interface reporting in generic Cisco driver

Full list of closed issues

-   #1279 (DCI table value viewer: Shift+click range selection of cells)
-   #3082 / NX-2880 (Add multiple conditions to log viewer filter at once)
-   #3257 (Do not report ICMP statistics for nodes without valid primary IP address)
-   #3262 (Topology.DefaultDiscoveryRadius ignored for network maps saved by pre-5.1 clients (radius stored as 65535))
-   #3413 (Huawei V-STP bridge ID equals master chassis' own base bridge address, contradicting getStpBridgeId() assumption)
-   #3422 (New network device driver: Aruba CX (AOS-CX) switches)
-   #3479 (Cisco L2 topology: FDB is read per-VLAN but bridge ports are read in the default SNMP context, so ifIndex resolves to 0)
-   #3525 (6-field cron expression on recurrent scheduled tasks almost never fires (seconds field always matched))
-   #3529 (Replace standalone Java MCP server with native MCP endpoint in server (mcp module))
-   #3531 (Web client: node stays attached to the cursor after dragging past the viewport edge)
-   #3532 (Web client: "Save map image to file" does nothing)
-   #3533 (WebAPI returns 415 for bodyless POST requests without Content-Type header)
-   #3536 (MAC Address web ui bugs)
-   #3538 (Housekeeper throttle watermarks of 0 permanently stall housekeeper and v5 data migration)
-   #3539 (ConfigWriteStr treats a failed existence query as "variable does not exist" and silently loses the write)
-   #3540 (nxdbmgr upgrade: stale TimescaleDB extension version reported as an unrelated SQL failure)
-   #3543 (NXSL: PostEventEx return value lost; origin argument rejects OPENTELEMETRY)
-   #3551 (Memory leak - nxmc jar client (tested on windows))
-   #3553 (pie chart - add total % and change font size)
-   #3558 (PostgreSQL process template raises false memory alarm — Process.MemoryUsage(...,sum) double-counts shared memory)
-   #3559 (MQTT subagent silently truncates topic payload at 255 bytes)
-   #3560 (MQTT extractors: wildcard topics with instance discovery)
-   #3561 (MQTT extractors: parameterized metrics ($1 placeholders) documented but not implemented)
-   #3563 (Network map: show link details on mouse-over)
-   #3564 (Agent-side data collection via Nagios-compatible monitoring plugins (ExternalCheck))
-   #3567 (OpenTelemetry log record body not exposed as event parameter)
-   #3569 (WebAPI object handlers ignore EDIT\_COMMENTS, EDIT\_RESP\_USERS and the template-parent READ exception)
-   #3570 (Generic weather subagent with multiple providers (MET Norway) and Open-Meteo commercial API support)
-   #3571 (Unbounded alloca over ACL size in AccessList::getUserRights and SaveGraph)
-   #3573 (WebAPI: path placeholder object IDs parsed with base 0 and no end-pointer check)
-   #3574 (FormatISO8601Timestamp() dereferences NULL for pre-1970 timestamps on builds without gmtime\_r)
-   #3576 (libnxsnmp: SNMPv1 traps encoded with INTEGER time-stamp and wrong enterprise OID, dropped by Net-SNMP receivers)
-   #3577 (Float DCI values between 0 and 1 displayed as raw six-decimal string)
-   #3578 (Linux agent crashes when requested Process.\* metric for non-existent process and 'average' aggregate)
-   #3579 (ReadWebsocketFrame corrupts payload of unmasked non-data frames (uninitialized mask))
-   #3580 (Connection point search ignores LLDP/CDP peer data in node overview and IP address search)
-   #3581 (Objects.Nodes.SyncNamesWithDNS has no effect unless Objects.Nodes.ResolveNames is disabled)
-   #3585 (snmp traps filter doesnt work)
-   #3589 (Object tool translations for region-qualified language codes (zh\_TW, pt\_BR) never resolve at runtime)
-   #3593 (nxmc on Windows: "unhandled exception (NoClassDefFoundError: org/netxms/bridge/Platform)" on exit)
-   #3595 (Vendor field is not populated for nodes with CISCO-GENERIC driver)
-   #3596 (Missing "Export all to CSV" action in Interfaces view)
-   #3597 (Simplify adding multiple DCI-based or object-based checks to business service check list)
-   #3598 (Management interface reported as front panel port on stackable Cisco switches (CISCO-GENERIC driver))
-   #3599 (Implement driver for Cisco C9800 wireless controllers)
-   #3600 (Sync node name with SNMP sysName on configuration poll)
-   #3601 (NXSL: FindAlarmById() and FindAlarmByKey() return alarm with empty relatedEvents)
-   #3603 (AI assistant sidebar: provide script library script as context in script editor)
-   #3605 (Node polling property "disable 802.1x status poll" is inverted)
-   #3606 (Add "Enable public access" (anonymous access link) for dashboards)