Reporting
NetXMS includes a reporting engine that generates scheduled or on-demand reports from monitoring data. Reports are rendered as PDF or Excel files and can be automatically distributed via email.
Architecture
The reporting subsystem consists of:
-
Reporting server (
nxreportd) — a Java-based service, based on JasperReports, that processes report definitions and generates output -
Report definitions — report packages that define report layout and data queries; most are JasperReports templates, but a definition may instead use the Carbone renderer (see below)
-
NetXMS server integration — the NetXMS server connects to
nxreportdon port 4710 and pushes its configuration (database credentials, email settings); report scheduling and execution requests are relayed over this connection
The reporting server connects directly to the NetXMS database to query monitoring data, using the database credentials pushed by the NetXMS server.
Installation
On Linux, nxreportd is not part of the server package — install the separate netxms-reporting package (deb/rpm).
Prerequisites
-
Java Runtime Environment (JRE) 11 or later
-
Access to the NetXMS database from the host running
nxreportd
Enabling the Reporting Server
-
Set the server configuration variable
ReportingServer.Enabletotrue(requires server restart). The NetXMS server connects to the reporting server at the address defined byReportingServer.Hostname(default127.0.0.1) andReportingServer.Port(default4710). Related server configuration variables:ReportingServer.ResultsRetentionTimesets how long generated report results are kept (90 days by default), andReportingServer.JDBC.Propertiespasses additional JDBC driver properties for the reporting server’s database connection. -
Start the
netxms-reportingservice:
systemctl enable netxms-reporting
systemctl start netxms-reporting
The systemd unit is netxms-reporting.service; nxreportd exists only as an alias created when the service is enabled.
Configuration
The reporting server loads nxreportd.properties (Java properties format) from the classpath.
JVM system properties override values from the file; the service launcher passes -Dnxreportd.workspace and -Dnxreportd.bindir.
| Parameter | Description |
|---|---|
|
Hostname of the NetXMS server to connect to as a client |
|
Login for the NetXMS server connection |
|
Password for the NetXMS server connection |
|
Directory for report definitions, output, and temporary files. Default: |
|
Address the reporting server listens on for connections from the NetXMS server (default: |
|
Log file location |
|
How long generated report results are kept, in days; overrides the value pushed by the NetXMS server |
|
Path to the external launcher executable used to render Carbone reports |
|
Directory where the Carbone launcher is looked up when |
The listener port is fixed at 4710 and cannot be changed. Database credentials do not need to be configured — they are pushed by the NetXMS server when it connects.
Managing Reports
Report Library
Reports are executed and scheduled through the Reporting perspective in the management console, which lists all reports deployed on the reporting server.
Uploading Report Definitions
Report definitions are deployed as report packages (.jar or .zip files) containing the compiled report and its metadata:
-
Open the Report Definitions view in the Configuration perspective
-
Select Upload… and choose the report package file
The report name and parameters are read from the package — no additional metadata needs to be entered.
Running a Report
-
Open the Reporting perspective
-
Select a report from the library
-
Configure report parameters (date range, objects, filters)
-
Execute the report
-
The generated result appears in the Results section of the report view
The available parameter types are described in Reports in the User Guide.
Scheduling Reports
Reports can be scheduled for automatic generation:
-
Select a report in the Reporting perspective
-
Fill in the report parameters in the report form — scheduled executions use the parameter values as they are set at the moment of scheduling
-
Select Schedule report execution…
-
On the General page, choose One time or Recurrent execution; recurrence presets include every N minutes, hourly, daily, weekly, monthly, and a custom cron expression
-
On the Notifications page, configure email recipients for completed reports
-
Save the schedule
Scheduled reports are processed by the reporting server and results are stored for download or emailed to configured recipients.
Report Definitions
NetXMS does not ship with any report definitions. Report bundles are provided separately and are uploaded through the management console as described above.
Custom Reports
Creating Custom Report Definitions
Custom reports are built using JasperReports:
-
Design the report in Jaspersoft Studio or a compatible IDE
-
Use SQL queries against the NetXMS database schema
-
Use the NetXMS database schema documentation for table and column references
-
Package the compiled report as a report package and upload it through the management console
Carbone Reports
A report definition may use the Carbone renderer instead of the standard JasperReports renderer: setting the org.netxms.reporting.useCarbone property in the report definition marks it as Carbone-based.
Carbone reports are rendered as XLSX only, by an external launcher process: its path is set with the nxreportd.carbone.launcher property, or the launcher is located automatically in the directory given by nxreportd.bindir.
Common Database Tables for Reports
| Table | Content |
|---|---|
|
Node objects and properties |
|
Interface objects |
|
Historical DCI values (one table per node in the classic storage layout; TimescaleDB uses one hypertable per storage class: |
|
Alarm records |
|
Event history |
|
SNMP trap history |
Report Design Tips
-
Use parameterized queries to limit data by date range and object scope
-
Include the report generation timestamp and parameter values in the header
-
Use subreports for complex layouts with multiple data sections
-
Test queries against the NetXMS database before embedding in report definitions
Email Distribution
Reports can be automatically emailed to recipients when generation completes.
Email settings are not configured on the reporting server: the NetXMS server reads the configuration of its SMTP notification channel (the channel named by the DefaultNotificationChannel.SMTP.Text server configuration variable, SMTP-Text by default) and pushes it to nxreportd.
-
Ensure the SMTP notification channel is configured on the NetXMS server
-
When scheduling a report, add email recipients in the notification settings
-
Generated reports are attached as PDF or Excel files
Troubleshooting
Reporting Server Not Connecting
-
Verify the reporting server is running:
systemctl status netxms-reporting -
Verify
ReportingServer.Enableis set totrueand the server was restarted afterwards -
Check
ReportingServer.HostnameandReportingServer.Port— they must point to the host runningnxreportd -
If
nxreportdruns on a different host, setnxreportd.bindAddressso the listener accepts remote connections (default islocalhost) -
Check the reporting server log for connection errors
Next Steps
-
Reports — running and scheduling reports in the management console
-
Grafana Integration — alternative visualization for monitoring data
-
Data Collection Concepts — understanding the data available for reports