Important: NGINX Plus R33 requires NGINX Instance Manager 2.18 or later
To ensure uninterrupted traffic processing, upgrade to NGINX Instance Manager 2.18 or later if your NGINX data plane instances are running NGINX Plus R33. This upgrade is necessary to support usage reporting.
NGINX Plus R33 instances must send usage data to the F5 licensing endpoint or NGINX Instance Manager. If they don’t, they will stop processing user traffic.
For more information about usage reporting and enforcement, see About solution licenses.
Report usage data to F5
Overview
In environments where NGINX Instance Manager has internet access but NGINX Plus doesn’t, NGINX Plus sends usage data to NGINX Instance Manager. NGINX Instance Manager will automatically send the usage reports to F5 for verification, or you can choose to send them manually.
If usage reporting fails, NGINX Plus stops accepting new connections. There’s an exception for previously reported instances — refer to handling outages for more details.
See the steps below to configure NGINX Plus to report usage data to NGINX Instance Manager and how to submit the report to F5 for verification.
For network-restricted environments:
If your deployment of NGINX Instance Manager doesn’t allow internet access, follow the steps in Report usage data in network-restricted environments to report usage data to F5.
Before you begin
Before submitting usage data to F5, first ensure that the appropriate network ports are open for NGINX Instance Manager to report to F5, and then configure NGINX Plus to report telemetry data to NGINX Instance Manager.
Configure network ports for reporting usage
To allow NGINX Instance Manager to report usage data to F5, make sure port 443
is open for these URLs:
https://product.apis.f5.com/
https://product-s.apis.f5.com/ee
Configure NGINX Plus to report usage to NGINX Instance Manager
To configure NGINX Plus (R33 and later) to report usage data to NGINX Instance Manger:
-
Open port
443
for NGINX Instance Manager. -
On each NGINX Plus instance, update the
usage_report
directive in themgmt
block of the NGINX configuration (/etc/nginx/nginx.conf
) to point to your NGINX Instance Manager host:mgmt { usage_report endpoint=<NGINX-INSTANCE-MANAGER-FQDN>; }
Self-signed certificates
For details on using self-signed certificates, see Configure SSL verification for usage reporting with self-signed certificates. -
Reload NGINX:
nginx -s reload
Submit usage report to F5
Automatic reporting
When you add your JSON Web Token (JWT) to NGINX Instance Manager, usage reporting is enabled by default.
NGINX Instance Manager will automatically report subscription entitlement and usage data to F5 if internet access is available.
Manual reporting
Usage reporting requirement:
You need to report usage to F5 regularly. If usage isn’t reported for 180 days, NGINX Plus will stop accepting new connections. For more details about the usage reporting process, see About subscription licenses.
If you prefer submitting usage reports to F5 manually, follow these steps:
- Log in to the NGINX Instance Manager web interface (
https://<NIM-FQDN>/ui/
). - Select the Settings (gear) icon.
- On the Licenses > Overview page, turn off Enable Continuous Connection.
- To manually submit a usage report, select Send Usage to F5.
What’s reported
The following JSON example shows the NGINX Plus usage data sent to F5 in a POST
request, every hour by default.
{
"version": "<nginx_version>",
"uuid": "<nginx_uuid>",
"nap": "<active/inactive>", // status of NGINX App Protect
"http": {
"client": {
"received": 0, // bytes received
"sent": 0, // bytes sent
"requests": 0 // number of HTTP requests processed
},
"upstream": {
"received": 0, // bytes received
"sent": 0 // bytes sent
}
},
"stream": {
"client": {
"received": 0, // bytes received
"sent": 0 // bytes sent
},
"upstream": {
"received": 0, // bytes received
"sent": 0 // bytes sent
}
},
"workers": 0, // number of worker processes running
"uptime": 0, // number of seconds the instance has been running
"reloads": 0, // number of times the instance has been reloaded
"start_time": "epoch", // start time of data collection for the report
"end_time": "epoch" // end time of data collection for the report
}