NGINX monitoring integration

Our NGINX integration collects and sends inventory and metrics from your NGINX server to our platform, where you can see data on connections and client requests so that you can more easily find the source of any problems.

Here we explain how to install and activate the NGINX integration, and what data can be collected.

Compatibility and requirements

Our integration is compatible with both NGINX Open Source and NGINX Plus.

Before installing the integration, make sure that you meet the following requirements:

This integration is released as open source under the MIT license on Github.

Install and activate the integration

To install the NGINX integration, follow the instructions for your environment:

ECS

See Monitor service running on ECS.

Kubernetes

See Monitor service running on Kubernetes.

Linux
  1. Follow the general instructions for installing an integration, using the file name nri-nginx. Then continue on to the steps below.

  2. Change the directory to the integrations configuration folder:

    cd /etc/newrelic-infra/integrations.d
    
  3. Copy the sample configuration file:

    sudo cp nginx-config.yml.sample nginx-config.yml
    
  4. Edit the configuration file nginx-config.yml.

  5. Restart the Infrastructure agent.

Additional notes:

Configure the integration

To capture data from the NGINX integration, you must first enable and configure the applicable extension module:

There are several ways to configure the integration, depending on how it was installed:

Config options include:

  • metrics: This command captures the metrics of a particular NGINX server. Arguments:

    • status_url: The URL set up to provide the metrics using the status module. If the default value of 127.0.0.1 is incorrect, substitute the address/FQDN/URL for your system. Example:

      status_url: http://127.0.0.1/status
  • inventory: This command captures the configuration parameters set in the NGINX config file as inventory data. Arguments:
    • config_path: The path to the NGINX configuration file.

    To disable inventory data collection, you would delete the inventory command.

  • labels: The env label controls the environment attribute. The default value is production.

Activate remote monitoring

You can use the remote_monitoring configuration parameter to enable remote monitoring and multi-tenancy for this integration. You must also have Infrastructure agent version 1.2.25 or higher to use remote_monitoring.

Activating remote_monitoring may change some attributes and/or affect your configured alerts. For more information, see remote monitoring in on-host integrations.

Environment variable passthroughs

Environment variables can be used to control config settings, and are then passed through to the Infrastructure agent. For instructions on how to use this feature, see Configure the Infrastructure agent.

STATUS_URL

The URL set up to provide the metrics using the status module.

Type String
Default http://127.0.0.1/status

Example:

STATUS_URL='http://your.ip.address:8080/status'
CONFIG_PATH

The path to the NGINX configuration file.

Type String
Default /etc/nginx/nginx.conf

Example:

CONFIG_PATH='/etc/nginx/custom/mynginx.conf'

Find and use data

Data from this service is reported to an integration dashboard.

Metrics are attached to the NginxSample event type. You can query this data for troubleshooting purposes or to create custom charts and dashboards.

For more on how to find and use your data, see Understand integration data.

Metrics

The NGINX integration collects the following metric data attributes. To find these attributes, query the NginxSample event type.

Metric Description
net.connectionsAcceptedPerSecond Number of accepted client connections per second.
net.connectionsActive Number of connections that are currently active.
net.connectionsDroppedPerSecond Number of connections per second that were accepted but could not he handled and hence dropped.
net.connectionsReading Current number of connections where NGINX is reading the request header.
net.connectionsWaiting Current number of idle client connections waiting for a request.
net.connectionsWriting Current number of connections where NGINX is writing the response back to the client.
net.requestsPerSecond Total number of client requests per second.
Metric Description
net.connectionsAcceptedPerSecond Accepted client connections as requests per second.
net.connectionsDroppedPerSecond Dropped client connections as requests per second.
net.connectionsActive Current number of active client connections.
net.connectionsIdle Current number of idle client connections.
net.requestsPerSecond Number of requests per second.

Inventory data

The integration captures configuration options defined in the NGINX master config file (usually nginx.conf).

The master NGINX config file can contain "include OTHER_FILE_NAME" commands for splitting the configuration into multiple files. The Infrastructure agent ignores (does not parse) configuration set via include commands.

System metadata

The integration collects these additional attributes about the NGINX service:

Name Description
software.edition

The NGINX edition: either "open source" or "plus".

software.version The version of NGINX.

For more help

Recommendations for learning more: