Enable metrics

The NGINX One Console dashboard relies on APIs for NGINX Plus and NGINX Open Source Stub Status to report traffic and system metrics. The following sections show you how to enable those metrics.

Enable NGINX Plus API

To collect comprehensive metrics for NGINX Plus – including bytes streamed, information about upstream systems and caches, and counts of all HTTP status codes – add the following to your NGINX Plus configuration file (for example, /etc/nginx/nginx.conf or an included file):

# This block:
# - Enables the read-write NGINX Plus API under /api/
# - Serves the built-in dashboard at /dashboard.html
# - Restricts write methods (POST, PATCH, DELETE) to authenticated users
#   and a specified IP range
# Change the listen port if 9000 conflicts; 8080 is the conventional API port.
server {
    # Listen on port 9000 for API and dashboard traffic
    listen 9000 default_server;

    # Handle API calls under /api/
    location /api/ {
        # Enable write operations (POST, PATCH, DELETE)
        api write=on;

        # Allow GET requests from any IP
        allow 0.0.0.0/0;
        # Deny all other requests by default
        deny all;

        # For methods other than GET, require auth and restrict to a network
        limit_except GET {
            # Prompt for credentials with this realm
            auth_basic "NGINX Plus API";
            # Path to the file with usernames and passwords
            auth_basic_user_file /path/to/passwd/file;

            # Allow only this IP range (replace with your own)
            allow 192.0.2.0/24;
            # Deny all other IPs
            deny all;
        }
    }

    # Serve the dashboard page at /dashboard.html
    location = /dashboard.html {
        # Files are located under this directory
        root /usr/share/nginx/html;
    }

    # Redirect any request for / to the dashboard
    location / {
        return 301 /dashboard.html;
    }
}

For more details, see the NGINX Plus API module documentation and Configuring the NGINX Plus API.

After saving the changes, reload NGINX:

nginx -s reload

Enable NGINX Open Source Stub Status API

To collect basic metrics about server activity for NGINX Open Source, add the following to your NGINX configuration file:

server {
    listen 127.0.0.1:8080;
    location /api {
        stub_status;
        allow 127.0.0.1;
        deny all;
    }
}

This configuration:

  • Enables the stub status API.
  • Allows requests only from 127.0.0.1 (localhost).
  • Blocks all other requests for security.

For more details, see the NGINX Stub Status module documentation.

After saving the changes, reload NGINX to apply the new configuration:

nginx -s reload