Skip to main content
Version: v1.6.x

Monitoring Nginx

Collect and monitor the general performance Metrics of Nginx.

Protocol Use:Nginx

Need Enable ngx_http_stub_status_module And ngx_http_reqstat_module Module

If you want to monitor information in 'Nginx' with this monitoring type, you need to modify your nginx configure file for enable the module monitor.

Enable ngx_http_stub_status_module

  1. Check if ngx_http_stub_status_module has been added

    nginx -V

    View whether it contains --with-http_stub_status_module, if not, you need to recompile and install Nginx.

  2. Compile and install Nginx, add ngx_http_stub_status_module module

    Download Nginx and unzip it, execute the following command in the directory


    ./configure --prefix=/usr/local/nginx --with-http_stub_status_module

    make && make install
  3. Modify Nginx configure file

    Modify the nginx.conf file and add the monitoring module exposed endpoint, as follows:

    # modify nginx.conf
    server {
    listen 80; # port
    server_name localhost;
    location /nginx-status {
    stub_status on;
    access_log on;
    #allow 127.0.0.1; #only allow requests from localhost
    #deny all; #deny all other hosts
    }
    }
  4. Reload Nginx


    nginx -s reload
  5. Access http://localhost/nginx-status in the browser to view the Nginx monitoring status information.

Enable ngx_http_reqstat_module

  1. Install ngx_http_reqstat_module

     # install `ngx_http_reqstat_module`
    wget https://github.com/zls0424/ngx_req_status/archive/master.zip -O ngx_req_status.zip

    unzip ngx_req_status.zip

    patch -p1 < ../ngx_req_status-master/write_filter.patch

    ./configure --prefix=/usr/local/nginx --add-module=/path/to/ngx_req_status-master

    make -j2

    make install
  2. Modify Nginx configure file

    update nginx.conf file, add status module exposed endpoint, as follows:

    # modify nginx.conf
    http {
    req_status_zone server_name $server_name 256k;
    req_status_zone server_addr $server_addr 256k;

    req_status server_name server_addr;

    server {
    location /req-status {
    req_status_show on;
    #allow 127.0.0.1; #only allow requests from localhost
    #deny all; #deny all other hosts
    }
    }
    }
  3. Reload Nginx


    nginx -s reload
  4. Access http://localhost/req-status in the browser to view the Nginx monitoring status information.

Refer Doc: https://github.com/zls0424/ngx_req_status

⚠️Attention: The endpoint path of the monitoring module is /nginx-status /req-status

Configuration parameter

Parameter nameParameter help description
Monitoring HostMonitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://)
Monitoring nameIdentify the name of this monitoring. The name needs to be unique
PortPort provided by Nginx
TimeoutAllow collection response time
Collection intervalInterval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds
Whether to detectWhether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful
Description remarksFor more information about identifying and describing this monitoring, users can note information here

Collection Metrics

Metrics Set:nginx_status

Metric nameMetric unitMetric help description
acceptsAccepted connections
handledSuccessfully processed connections
activeCurrently active connections
droppedDiscarded connections
requestsClient requests
readingConnections performing read operations
writingConnections performing write operations
waitingWaiting connections

Metrics Set:req_status

Metric nameMetric unitMetric help description
zone_nameGroup category
keyGroup name
max_activeMaximum concurrent connections
max_bwkbMaximum bandwidth
traffickbTotal traffic
requestsTotal requests
activeCurrent concurrent connections
bandwidthkbCurrent bandwidth