Server Configuration
This page is a reference for NetXMS server configuration, including the configuration file, server configuration variables, audit log forwarding, thread pools, and inter-server communication.
For step-by-step maintenance procedures (modifying variables, housekeeping schedule tuning, thread pool tuning, debug logging), see Server Maintenance Tasks.
Configuration File
The main server configuration file is netxmsd.conf.
On Linux, it is typically located at /etc/netxmsd.conf; on Windows, at C:\NetXMS\etc\netxmsd.conf.
This file is read only at server startup. Changes require a server restart to take effect.
Commonly Used Parameters
The parameters below cover typical setups.
For the complete list of netxmsd.conf parameters, see Configuration File Reference.
| Parameter | Default | Description |
|---|---|---|
|
(none) |
Database driver to use ( |
|
|
Database server address |
|
|
Database name |
|
|
Database login name |
|
(empty) |
Database password, plain text or obfuscated with |
|
(default) |
Database schema (PostgreSQL and Oracle) |
|
|
Path to the server log file; special values: |
|
4 |
Number of rotated log files to keep |
|
2 |
Log rotation mode: 0=no rotation, 1=daily, 2=by size |
|
16M |
Maximum log file size before rotation (when mode=2) |
|
0 |
Debug level (0-9); higher values produce more verbose output |
|
(platform-dependent) |
Path to server data directory |
|
(platform-dependent) |
Path to server library directory (database drivers, device drivers) |
|
|
IP address to listen on for client connections ( |
|
|
Directory for crash dumps |
DBDriver = pgsql.ddr
DBServer = localhost
DBName = netxms_db
DBLogin = netxms
DBPassword = secret
LogFile = /var/log/netxmsd
LogRotationMode = 1
LogHistorySize = 7
DBDriver = pgsql.ddr
DBServer = db-server.example.com
DBName = netxms_db
DBLogin = netxms
DBPassword = secret
LogFile = C:\NetXMS\log\netxmsd.log
Obfuscated Database Password
To avoid storing the database password in plain text, use the nxencpasswd utility:
nxencpasswd <login> [<password>]
Where <login> is the database login name and <password> is the database password. If <password> is omitted, you will be prompted to enter it.
The utility outputs an obfuscated string.
Put the obfuscated string into the regular DBPassword parameter — the server detects obfuscated values and decodes them automatically:
DBPassword = <obfuscated_string>
Server Configuration Variables
In addition to the configuration file, NetXMS maintains a set of server configuration variables stored in the database.
These can be modified at runtime through the management client (Configuration > Server Configuration) or via the nxdbmgr command-line tool (see Modifying Variables via CLI).
Commonly Used Variables
| Variable | Default | Description |
|---|---|---|
|
300 |
Minimum refresh interval for client views (ms) |
|
60 |
Default DCI polling interval (seconds) |
|
30 |
Default DCI data retention time (days) |
|
1 |
Number of event processor threads |
|
1 |
Collect ICMP poll statistics for nodes |
|
46 |
ICMP ping packet size (bytes) |
|
1500 |
ICMP ping timeout (ms) |
|
60 |
ICMP poll interval (seconds) |
|
1 |
Algorithm for status calculation (1=most critical, 2=single threshold, 3=multiple thresholds) |
|
0 |
Failed login attempts before lockout (0=disabled) |
|
30 |
Account lockout time (minutes) |
|
250 |
Maximum threads in data collector pool |
|
256 |
Maximum threads in main server pool |
|
250 |
Maximum threads in poller pool |
See Server Configuration Variables Reference for the complete list. Each variable has a description, data type, and restart requirement indicator.
Polling Intervals
Each poll type runs on its own interval, controlled by a server configuration variable. Changes take effect without a server restart.
| Poll Type | Variable | Default | Units |
|---|---|---|---|
Status |
|
60 |
seconds |
Configuration |
|
3600 |
seconds |
Topology |
|
1800 |
seconds |
Routing table |
|
300 |
seconds |
ICMP |
|
60 |
seconds |
Instance discovery |
|
600 |
seconds |
Automatic binding |
|
3600 |
seconds |
Passive network discovery |
|
900 |
seconds |
Any of these intervals can be overridden for an individual object by setting a custom attribute named SysConfig:<variable> on it — for example, setting SysConfig:Objects.ConfigurationPollingInterval to 900 makes the server run configuration polls of that object every 15 minutes regardless of the global setting.
See Server Configuration Overrides for the full list of supported override attributes.
The default polling interval and retention time for DCIs are separate settings (DataCollection.DefaultDCIPollingInterval and DataCollection.DefaultDCIRetentionTime, see above).
They apply to every DCI whose collection schedule or history retention is set to Server default.
This is the initial setting for DCIs created in the Data Collection view; DCIs created from the MIB Explorer get a custom interval and retention time instead.
Changes take effect without a server restart: the new polling interval is used from the next scheduling check, and the new retention time at the next housekeeper run.
DCIs with a custom interval, an advanced schedule, a custom retention time, or Do not save to the database are not affected.
Beacon Hosts
In a monitoring system, when the server loses network connectivity, every monitored node appears to go down simultaneously. Without a way to distinguish between "everything on the network failed" and "the server itself lost connectivity," the system would generate a flood of false node-down alerts and change node statuses incorrectly.
Beacon hosts solve this problem by giving the server a way to check its own network connectivity. The server periodically sends ICMP pings to a configured list of well-known, stable hosts. If at least one beacon host responds, the server knows its own network link is healthy and any node-down events are genuine. If all beacon hosts become unreachable at the same time, the server concludes that it has lost connectivity rather than that every monitored host has failed simultaneously.
When the server detects connectivity loss, it generates a SYS_NETWORK_CONN_LOST event with CRITICAL severity on the management node (in an HA cluster, on the server cluster object).
While connectivity is down, the event correlation engine treats all node-down and access-point-down events as consequences of the server’s own connectivity loss rather than independent failures — provided topology-based event correlation is enabled (Events.Correlation.TopologyBased).
This prevents a cascade of false alarms in the Event Processing Policy.
When any beacon host becomes reachable again, the flag is cleared and a SYS_NETWORK_CONN_RESTORED event (NORMAL severity) is generated.
Normal event correlation resumes, and genuine node-down conditions are processed as usual.
Good beacon host candidates are infrastructure devices that are highly available and unlikely to all fail at once — for example, the default gateway, a core router, or a well-known public DNS server. Using two or three hosts from different network segments provides reliable detection without unnecessary traffic.
| Beacon host configuration requires a server restart to take effect. |
For the full list of beacon variables (Beacon.Hosts, Beacon.PollingInterval, Beacon.Timeout), see Beacon variables reference.
Audit Log Forwarding
NetXMS can forward audit log entries to external systems via syslog or LEEF (Log Event Extended Format) for integration with SIEM solutions.
Syslog Forwarding
| Variable | Default | Description |
|---|---|---|
|
13 |
Syslog facility code (default 13 = log audit) |
|
514 |
Target syslog server UDP port |
|
5 |
Syslog severity code (default 5 = notice) |
|
|
Syslog server address; forwarding is disabled while the value is |
|
|
Syslog message tag |
|
0 |
Set to 1 to encode forwarded messages in UTF-8 |
Set AuditLog.External.Server to the IP address or hostname of your syslog server.
Once set, all audit log entries (login/logout, configuration changes, object modifications) are forwarded as syslog messages.
Changes to AuditLog.External.* variables require a server restart to take effect, except AuditLog.External.UseUTF8, which is applied immediately.
|
LEEF Forwarding
Forwarding of audit log records in LEEF (Log Event Extended Format), used by IBM QRadar and other SIEM systems, is provided by a separate loadable server module.
To enable it, load the module and add a [LEEF] section in netxmsd.conf:
Module = leef.nxm
[LEEF]
Server = qradar.example.com
The [LEEF] section supports the following parameters:
| Parameter | Default | Description |
|---|---|---|
Server |
127.0.0.1 |
Destination server address |
Port |
514 |
Destination UDP port |
Vendor |
Raden Solutions |
Vendor name in the LEEF header |
Product |
NetXMS |
Product name in the LEEF header |
ProductVersion |
(server version) |
Product version in the LEEF header |
EventCode |
0 |
Event code (EventID) in the LEEF header |
Facility |
13 |
Syslog facility code |
Severity |
5 |
Syslog severity code |
Separator |
|
Attribute separator character; a literal character or |
RFC5424Timestamp |
true |
Use RFC 5424 timestamp format in the syslog header |
An optional ExtraData subsection within [LEEF] defines additional static name=value attributes appended to every record:
[LEEF/ExtraData]
site = HQ
Each forwarded audit record carries the LEEF attributes devTimeFormat, devTime, result, description, usrName, identSrc, and object (when the record is associated with an object), followed by any configured extra data attributes.
Housekeeping Variables
| Variable | Default | Description |
|---|---|---|
|
0 |
Set to 1 to skip cleanup of expired collected DCI data |
|
02:00 |
Time to run the housekeeping process (HH:MM format) |
|
250000 |
Database writer queue length at which the housekeeper pauses deletions |
|
50000 |
Database writer queue length at which a paused housekeeper resumes |
For schedule tuning instructions, see Adjusting the Housekeeping Schedule.
Thread Pool Variables
| Variable | Default | Description |
|---|---|---|
|
32 |
Base agent connection pool threads |
|
256 |
Maximum agent connection pool threads |
|
4 |
Base AI operator threads |
|
16 |
Maximum AI operator threads |
|
4 |
Base AI task threads |
|
16 |
Maximum AI task threads |
|
10 |
Base data collector threads |
|
250 |
Maximum data collector threads |
|
8 |
Base network discovery threads |
|
64 |
Maximum network discovery threads |
|
2 |
Base file transfer threads |
|
16 |
Maximum file transfer threads |
|
8 |
Base main pool threads |
|
256 |
Maximum main pool threads |
|
10 |
Base poller threads |
|
250 |
Maximum poller threads |
|
1 |
Base scheduler threads |
|
64 |
Maximum scheduler threads |
|
1 |
Base syncer threads |
|
1 |
Maximum syncer threads (1 disables pool creation) |
All ThreadPool.* variables take effect only after a server restart.
For tuning guidance, see Thread Pool Tuning.
Inter-Server Communication (ISC) Variables
NetXMS provides an Inter-Server Communication (ISC) protocol for server-to-server interaction on TCP port 4702. It is disabled by default.
| Variable | Default | Description |
|---|---|---|
|
|
Enable the ISC listener on port 4702 (requires server restart) |
|
|
Accept and process events forwarded by remote servers |
For setup instructions, see Setting Up ISC.
See Server Hooks for automated responses to server events.