NGINX Exporter Metrics
The NGINX Exporter metrics input plugin scrapes metrics from the NGINX stub status handler.
Configuration parameters
The plugin supports the following configuration parameters:
Host
Name of the target host or IP address.
localhost
Port
Port of the target Nginx service to connect to.
80
Status_URL
The URL of the stub status Handler.
/status
Nginx_Plus
Turn on NGINX plus mode.
true
Get started
NGINX must be configured with a location that invokes the stub status handler. Here is an example configuration with such a location:
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
// configure the stub status handler.
location /status {
stub_status;
}
}
Configuration with NGINX Plus REST API
Another metrics API is available with NGINX Plus. You must first configure a path in NGINX Plus.
server {
listen 80;
listen [::]:80;
server_name localhost;
# enable /api/ location with appropriate access control in order
# to make use of NGINX Plus API
#
location /api/ {
api write=on;
# configure to allow requests from the server running fluent-bit
allow 192.168.1.*;
deny all;
}
}
Command line
From the command line you can let Fluent Bit generate the checks with the following options:
fluent-bit -i nginx_metrics -p host=127.0.0.1 -p port=80 -p status_url=/status -p nginx_plus=off -o stdout
To gather metrics from the command line with the NGINX Plus REST API you need to turn on the nginx_plus
property:
fluent-bit -i nginx_metrics -p host=127.0.0.1 -p port=80 -p nginx_plus=on -p status_url=/api -o stdout
Configuration File
In your main configuration file append the following:
pipeline:
inputs:
- name: nginx_metrics
nginx_plus: off
host: 127.0.0.1
port: 80
status_URL: /status
outputs:
- name: stdout
match: '*'
And for NGINX Plus API:
pipeline:
inputs:
- name: nginx_metrics
nginx_plus: on
host: 127.0.0.1
port: 80
status_URL: /api
outputs:
- name: stdout
match: '*'
Test your configuration
You can test against the NGINX server running on localhost by invoking it directly from the command line:
fluent-bit -i nginx_metrics -p host=127.0.0.1 -p nginx_plus=off -o stdout -p match=* -f 1
Which should return something like the following:
...
2021-10-14T19:37:37.228691854Z nginx_connections_accepted = 788253884
2021-10-14T19:37:37.228691854Z nginx_connections_handled = 788253884
2021-10-14T19:37:37.228691854Z nginx_http_requests_total = 42045501
2021-10-14T19:37:37.228691854Z nginx_connections_active = 2009
2021-10-14T19:37:37.228691854Z nginx_connections_reading = 0
2021-10-14T19:37:37.228691854Z nginx_connections_writing = 1
2021-10-14T19:37:37.228691854Z nginx_connections_waiting = 2008
2021-10-14T19:37:35.229919621Z nginx_up = 1
...
Exported metrics
For a list of available metrics, see the NGINX Prometheus Exporter metrics documentation on GitHub.
Last updated
Was this helpful?