Skip to main content

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.

  1. 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
  1. 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
}
}
  1. Reload Nginx

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

Enable 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
  1. 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
}
}
}
  1. Reload Nginx

nginx -s reload
  1. 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