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 Event Processing Policy would raise a flood of false node-down alarms and notifications.
Beacon hosts give the server a way to check its own network connectivity.
The server pings a configured list of well-known, stable hosts. Each round tests the hosts in list order, sending one ICMP request and waiting up to Beacon.Timeout for the reply, and stops at the first host that responds; the poller then waits Beacon.PollingInterval before the next round.
As long as at least one beacon host responds, the server considers its own network link healthy.
If none of them responds in a polling round, the server concludes that it has lost connectivity rather than that every monitored host has failed simultaneously — there is no hysteresis, a single round with all beacons silent is enough.
When the server detects connectivity loss, it generates a SYS_NETWORK_CONN_LOST event with CRITICAL severity on the management node.
While connectivity is down, and provided topology-based event correlation is enabled (Events.Correlation.TopologyBased), the event correlation engine marks SYS_NODE_DOWN and SYS_AP_DOWN events as correlated to that event.
SYS_NODE_UNREACHABLE events caused by agent tunnel loss are not correlated to it (netxms#3753).
SYS_NODE_UNREACHABLE events for nodes behind a failed proxy, router, or switch are correlated to the down event of that intermediate node instead.
Correlation only sets the root event of these events; it does not stop status polling.
Node statuses still change, and the events are still generated and written to the event log.
Alarms and notifications are suppressed only because Event Processing Policy rules skip correlated events unless Accept correlated events is enabled in the rule.
Recovery events such as SYS_NODE_UP are not correlated, so rules matching them still fire for every node when connectivity returns.
When any beacon host becomes reachable again, the flag is cleared and a SYS_NETWORK_CONN_RESTORED event (NORMAL severity) is generated, and normal event correlation resumes for new events.
A node that went down during the outage and is still down does not generate a new down event — its only down event is the correlated one.
The default Event Processing Policy keeps an alarm with the key NET_CONN_LOST active between these two events.
Choose beacon hosts according to which connectivity loss should be detected: hosts that are highly available and unlikely to all fail at once, located beyond the link whose failure would otherwise make all monitored nodes appear down. The default gateway or a core router detects loss of the server’s local link; for a server that monitors remote sites over the internet, the beacons have to be beyond the internet uplink — for example, 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. Host names in Beacon.Hosts are resolved once, when the server starts.
|
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 |
Combined length of the database writer queues (general and collected-data writers) at which the housekeeper pauses deletions; 0 disables throttling |
|
50000 |
Combined database writer queue length at or below 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 task threads |
|
16 |
Maximum AI task threads |
|
16 |
Base client session request threads |
|
2048 |
Maximum client session request threads (default is 8 × |
|
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 |
|
12 |
Number of 5-second maintenance cycles between pool resize decisions, for all pools (1–24). Not listed in the server configuration — create it to change the value (netxms#3831) |
|
100 |
Average queue wait time above which a pool grows (milliseconds). Not listed in the server configuration — create it to change the value (netxms#3831) |
|
50 |
Average queue wait time below which a pool may shrink (milliseconds). Not listed in the server configuration — create it to change the value (netxms#3831) |
|
8 |
Base main pool threads |
|
256 |
Maximum main pool threads |
|
4 |
Base mobile device session threads |
|
256 |
Maximum mobile device session 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.