News:

We really need your input in this questionnaire

Main Menu

Recent posts

#11
Feature Requests / Re: Per-User Locale and Date/T...
Last post by Alex Kirhenshtein - July 30, 2026, 12:58:56 PM
Filed as https://github.com/netxms/netxms/issues/3480 for design discussion.

Option 3 is the right shape, but one thing needs settling before you build on it: user custom attributes will not work as a backing store for ordinary users. CMD_UPDATE_USER is handled by ClientSession::updateUser() and requires SYSTEM_ACCESS_MANAGE_USERS, with no exemption for modifying your own account — password change and 2FA binding both special-case userId == m_userId, custom attributes do not. A non-admin operator saving their own date format gets access denied.

So the per-user store needs a server-side change either way: a self-update path restricted to own custom attributes, or a separate per-user key/value store with its own command and access check. That choice determines the client API, so it should come before more work on the merge logic.

Beyond that, option 3 needs an explicit rule for which preferences are machine-local and which are per-user. Without one, every preference added later is a judgement call and the split rots — your HTTP_* and window geometry cases are exactly what such a rule has to answer.

Your points 3 and 4 are a separate problem, worth splitting off: the RWT store sits in the servlet container state directory, so it is lost on container restart and on .war update. Persisting that directory, or moving the store out of it, fixes preference loss in the web client on its own, with none of the per-user work — and it covers theme files, map tile cache and MIB downloads at the same time.
#12
Общие вопросы / Re: Шторм аварий
Last post by Stanislav - July 30, 2026, 11:51:00 AM
Но одно следствие проверьте: на свежей инсталляции стандартные события, правила EPP и темплейты уже существуют. Если на старом сервере вы меняли что-то стандартное — severity системных событий, дефолтные правила, — то при импорте без Replace эти изменения молча не применились, остались свежие дефолтные версии.

----------
Именно так и делал. Проверю
#13
Опробую. Отпишу
#14
Общие вопросы / Re: Smart параметры
Last post by Alex Kirhenshtein - July 30, 2026, 11:38:14 AM
Тикет закрыт, метрики доступны с 6.1.2: SmartAttrRaw, SmartAttrRawString, SmartAttrWorst, SmartAttrThreshold. Подробности в соседней теме: https://www.netxms.org/forum/oe-oo/parametr-physicaldisk-smartattr/

По исходному вопросу темы — error или пустое значение у PhysicalDisk.* при том, что smartctl из шелла работает — это отдельная проблема, обновлением не решается. Агент выполняет:

smartctl --all -j <device>
и отбрасывает результат, если вывод не разбирается как JSON или в нём отсутствует секция device. Типичные причины: smartctl отсутствует в PATH сервиса либо устройство недоступно с правами, под которыми запущен nxagentd. Причина фиксируется в логе агента при

DebugTags=smartctl:6
— в лог попадают команда, messages от smartctl и конкретный отказ: invalid device name, failed to execute, timed out, error parsing JSON, device section missing.

Note: PhysicalDisk.Devices использует smartctl --scan, поэтому пустая таблица — тот же симптом, а не отдельная проблема.
#15
Реализовано в 6.1.2. Нужная метрика:

PhysicalDisk.SmartAttrRaw(/dev/pd1, Current_Pending_Sector)
По тикету https://github.com/netxms/netxms/issues/3199 добавлены четыре метрики с тем же набором аргументов, что у SmartAttr: SmartAttrRaw (raw/value), SmartAttrRawString (raw/string, для составных raw вида "8 177 10"), SmartAttrWorst (worst), SmartAttrThreshold (thresh).

SmartAttr не изменялся и возвращает нормализованное value — это и есть 200. Нормализованное значение вычисляется по формуле производителя, у Current_Pending_Sector база 200, и оно остаётся неизменным, пока атрибут не приблизится к threshold. Для трендов и thresholds следует использовать SmartAttrRaw.

Note: worst, thresh и raw присутствуют только в секции ata_smart_attributes, то есть для ATA/SATA. В выводе smartctl для NVMe этих полей нет — доступен только SmartAttr с именами полей из nvme_smart_health_information_log.

Указание атрибута по числовому SMART ID (197 вместо Current_Pending_Sector) доступно начиная с 6.2.0, в 6.1.x работает только имя.
#16
Feature Requests / Re: SAML Authentication
Last post by Alex Kirhenshtein - July 28, 2026, 08:04:33 PM
Hi,

Yes, it's on the roadmap, but it might end up in the enterprise build -- we are not sure yet.
#17
Feature Requests / Re: IOS App
Last post by richard21 - July 28, 2026, 01:29:32 PM
Hi thanks for the update I'll keep an eye out for the new build on test flight
#18
Да, SYS_NODE_UNREACHABLE в правило 31 нужно вернуть. Моё замечание от 23.07 было неверным: у нод, подключённых через тоннель, приходит именно SYS_NODE_UNREACHABLE, а не SYS_NODE_DOWN. После того как вы убрали это событие из правила 31, срабатывать ему стало не на чем.

Выбор события определяет не тоннель сам по себе, а наличие у ноды primary IP address:

  • Нода без primary IP (связь только через тоннель агента). Проверка «весь узел недоступен» для неё при отвалившемся агенте не выполняется вообще. Вместо этого сервер отдельно смотрит, остался ли тоннель, и если тоннеля нет — публикует SYS_NODE_UNREACHABLE с параметром reason = "Agent tunnel disconnected". SYS_NODE_DOWN для такой ноды не возникает никогда.
  • Нода с primary IP — обычная логика: SYS_NODE_DOWN, если причина в самой ноде, и SYS_NODE_UNREACHABLE с reason "Router down" / "Switch down" / "Proxy node down", если сервер нашёл причину выше по пути.

Восстановление в обоих случаях — SYS_NODE_UP. Отсюда и картина: up-уведомления приходили, down — нет.

В ваших логах это видно напрямую:

  • ТРК сервер офис, 26.07: 17:25:05 SYS_AGENT_UNREACHABLE, 17:25:49 SYS_TUNNEL_CLOSED, 17:26:37 SYS_NODE_UNREACHABLE, 18:27:15 SYS_NODE_UP. SYS_NODE_DOWN нет ни одного.
  • Смарт сервер 1С, 27.07 03:31:58 — ровно то же самое, и 25.07 09:39:34 тоже. Так что ночное одинокое «Node up» — не отдельная аномалия, а тот же самый случай.

Что сделать: добавить SYS_NODE_UNREACHABLE в правило 31, рядом с SYS_NODE_DOWN. Больше ничего менять не нужно. Флаг "Accept correlated events" и скрипт с maintenance на правиле 31 по-прежнему не нужны: SYS_NODE_UNREACHABLE с reason "Agent tunnel disconnected" не коррелируется (у этих событий в вашем логе Root ID = 0), а в режиме обслуживания события станут коррелированными и правило пропустит их само.

Перечислять оба события в правилах «нода недоступна» стоит всегда — стандартное правило Start downtime устроено именно так, в нём указаны и SYS_NODE_DOWN, и SYS_NODE_UNREACHABLE. Документация тоже говорит, что генерируется одно из двух, в зависимости от причины: https://netxms.org/documentation/adminguide/topology.html

Проверить, какая ветка сработала у вас: откройте SYS_NODE_UNREACHABLE в event log и посмотрите параметр reason. "Agent tunnel disconnected" — нода без primary IP, событие некоррелированное. Любой другой reason означает, что сервер нашёл причину выше по пути; из них коррелируются "Router down", "Switch down", "Proxy node down" и "Proxy agent unreachable" — эти правило 31 без флага пропустит.

Note: асимметрия между правилами 31 и 32 из-за этого остаётся. У 32 флаг включён, у 31 — нет, поэтому коррелированное событие недоступности правило 31 пропустит, а «Node up» при восстановлении придёт всё равно. Для нод без primary IP этого не случится, но если позже добавите в группу ноду за маршрутизатором или коммутатором — одинокое «Node up» вернётся.
#19
Announcements / NetXMS 6.2 patch release 2
Last post by Victor Kirhenshtein - July 28, 2026, 11:04:02 AM
We just published patch release 2 for version 6.2. Important changes since release 6.2.1:

-   Added subagent for reading electricity grid data (including carbon intensity) from ENTSO-E Transparency Platform
-   Added subagent for reading weather and solar forecast data from open-meteo.com
-   Device configuration backup support for HPE ProCurve, HPE Comware, and Aruba switches
-   New "scripted gauge" dashboard element
-   Agent checks available disk space before starting upgrade
-   Number of attempts to deploy a software package is now limited
-   Agent connect timeout on the server side is now configurable
-   Number of crash dumps kept on disk can be limited
-   File manager improvements: folders expand on double-click, view state preserved on manual refresh
-   Fixed remotely triggerable stack buffer overflow, heap over-read, and memory leak in NTCB module packet parser
-   Fixed authenticated memory corruption in client session (CMD\_MODIFY\_NODE\_DCI)
-   Fixed agent communication freeze caused by socket descriptor reuse race in communication channel close
-   Fixed thread pool starvation that could make agent unresponsive when all worker threads are blocked
-   Fixed deadlock in logwatch subagent
-   Fixed creation of duplicate ::/64 subnets on every configuration poll
-   Updated bundled libcurl in Windows installers to 8.21.0 (fixes CVE-2026-8927)

And full list of closed issues:

-   #3277 (Limit number of attempts to deploy a software package)
-   #3388 (NXSL DateTime: fields not normalized after change; out-of-range month breaks formatting)
-   #3390 (Web UI: "Restart agent" button in agent restart notification throws "display must not be null")
-   #3392 (logwatch subagent deadlock)
-   #3393 (Unable to query Table DCI columns when using source node override)
-   #3394 (Make interface class SetPeer method available through API)
-   #3396 (Expand folders in File Manager on double-click)
-   #3397 (ENTSO-E Transparency Platform subagent for grid carbon-intensity data)
-   #3398 (Update bundled libcurl.dll in Windows installers to 8.21.0 (CVE-2026-8927))
-   #3400 (Map tile cache not invalidated when tile server URL changes (stale/missing tiles))
-   #3401 (File manager view should preserve state on manual refresh)
-   #3402 (Package deployment manager loads all jobs into memory at startup regardless of status)
-   #3403 (nxmc: external browser never opens on macOS)
-   #3405 (nxmc: unhelpful error when client and server protocol versions differ)
-   #3407 (ai\_task\_execution\_log is never cleaned by housekeeper (unbounded growth))
-   #3408 (open-meteo.com subagent for weather/solar forecast data)
-   #3410 (Default zone (object ID 4) is never persisted, loadCommonProperties() fails on every startup)
-   #3411 (SQL error when creating new node on Oracle DB)
-   #3414 (Agent connections freeze until server restart due to socket descriptor reuse race in comm channel close)
-   #3419 (Summary table selector should show menu path if title is empty)
-   #3420 (Per-tag debug level specified from command line should override level specified in config file)
-   #3421 (Add device configuration backup support to HPE/Aruba drivers (ProCurve, Comware, ArubaOS))
-   #3424 (nxsl: Data stack underflow)
-   #3426 (Create limit for crash dumps)
-   #3427 ("Cannot start Java application" when exiting Management Client on Windows)
-   #3430 (Missing "Go to object" from object query table as a Dashboard element)
-   #3431 (Make agent connect timeout configurable)
-   #3433 (Check free space on file system before agent update)
-   #3436 (Thread pool does not grow when all workers are blocked; agent becomes unresponsive on COMM pool starvation)
-   #3438 (False "system restart detected" in status poll forces interface resync, bypassing disabled configuration poll)
-   #3440 (FindRemoteAccessPoint() called with chassis ID subtype instead of chassis ID)
-   #3441 (Node can be reported as its own root cause when interface peer resolves to the node itself)
-   #3443 (Config import silently turns EPP rule into catch-all when referenced event template is missing)
-   #3445 (SPARC: object index forEach stops after first element (enumeratorWrapper discards callback result))
-   #3446 (Client session: indeterminate mapId/mapIndex/mapCount in CMD\_MODIFY\_NODE\_DCI (authenticated memory corruption))
-   #3449 (Stop and restart of external subagent process does not stop loaded subagents correctly)
-   #3450 (Race condition in external subagent request ID generation)
-   #3451 (NTCB module: remotely triggerable stack buffer overflow, heap over-read and unbounded leak in packet parser)
-   #3452 (libethernetip: CIP byte order, unaligned reads, and truncated Identity serial number)
-   #3453 ("Hide in view mode" option missing for table DCIs)
-   #3455 (Scripted gauge dashboard element)
-   #3456 (FileDeliveryPolicy with empty content logs "XML parser error ... no element found" on every config poll)
-   #3457 (getPerfTabDCIList: getPerfTabSettings() != nullptr guard is always true)
-   #3460 (MikroTik driver advertises HostMib.Memory metrics that getMetric cannot serve)
-   #3461 (Network map layout changes are not saved until another action is performed)
-   #3462 (Incorrect layout option selection when opening a Network Map)
-   #3463 (Duplicate ::/64 subnets created on every configuration poll)
-   #3465 (nxmc: -server= cannot carry an IPv6 address with a port)
-   #3468 ("Use server time zone" option is not applied on management client startup)
#20
Feature Requests / Re: IOS App
Last post by Alex Kirhenshtein - July 27, 2026, 08:18:17 PM
yes, we plan to release shortly. for now I've uploaded new build to the TestFlight, so it's not expired anymore.