Live Activity Monitoring of NGINX Plus in 3 Simple Steps
Join the DZone community and get the full member experience.
Join For Free[This article was written by Nick Shadrin]
One of the most popular features in NGINX Plus is live activity monitoring, also known as extended status reporting. The live activity monitor reports real-time statistics for your NGINX Plus installation, which is essential for troubleshooting, error reporting, monitoring new installations and updates to a production environment, and cache management.
We often get questions from DevOps engineers – experienced and new to NGINX Plus alike – about the best way to configure live activity monitoring. In this post, we’ll describe a sample configuration file that will have you viewing real-time statistics on the NGINX Plus dashboard in just a few minutes.
The file is a preview of the set of sample configuration files that we’re introducing in NGINX Plus R6 to make it even easier to set up many of NGINX Plus’ advanced features in your environment. The set of examples will grow over time, and the NGINX Plus packages available at cs.nginx.com will include the latest versions available when the packages are created.
You can download the first sample configuration file, for live activity monitoring, in advance of the release of NGINX Plus R6 next week (the file works with NGINX Plus R5 too). Here we’ll review the instructions for installing and customizing the file.
Note: These instructions assume that you use the conventional NGINX Plus configuration scheme (in which configuration files are stored in the /etc/nginx/conf.d directory), which is set up automatically when you install an NGINX Plus package. If you use a different scheme, adjust the commands accordingly.
Installating the Configuration File
The commands do not include prompts or other extraneous characters, so you can cut and paste them directly into your terminal window.
- Download the sample configuration file and rename it to status.conf.
cd /etc/nginx/conf.d/ curl http://nginx.com/resources/conf/status.txt > /etc/nginx/conf.d/status.conf
- Customize your configuration files as instructed in Customizing the Configuration.
- Test the configuration file for syntactic validity and reload NGINX Plus.
nginx -t && nginx -s reload
The NGINX Plus status dashboard is available immediately at http://nginx-server-address:8080/ (or the alternate port number you configure as described in Changing the Port for the Status Dashboard.).
Customizing the Configuration
To get the most out of live activity monitoring, make the changes described in this section to both the sample configuration file and your existing configuration files.
Monitoring Servers and Upstream Server Groups
For statistics about virtual servers and upstream groups to appear on the dashboard, you must enable a shared memory zone in the configuration block for each server and group. The shared memory is used to store configuration and run-time state information referenced by the NGINX Plus worker processes.
If you don’t configure shared memory, the dashboard reports only basic information about the number of connections and requests, plus caching statistics. In the figure in Preview of the NGINX Plus R6 Dashboard, this corresponds to the first line (to the right of the NGINX+ logo) and the finalCaches section.
Edit your existing configuration files to add the status_zone
directive to the server
configuration block for each server you want to appear on the dashboard. (You can specify the same zone name in multiple server
blocks, in which case the statistics for those servers are aggregated together in the dashboard.)
server { listen 80; status_zone backend-servers; location / { proxy_pass http://backend; } }
Similarly, you must add the zone
directive to the upstream
configuration block for each upstream group you want to appear on the dashboard. The following example allocates 64 KB of shared memory for the two servers in the upstream-backend group. The zone name for each upstream group must be unique.
upstream backend { zone upstream-backend 64k; server 10.2.3.5; server 10.2.3.6; }
Restricting Access to the Dashboard
The default settings in the sample configuration file allow anyone on any network to access the dashboard. We strongly recommend that you configure at least one of the following security measures:
- IP address-based access control lists (ACLs). In the sample configuration file, uncomment the
allow
anddeny
directives, and substitute the address of your administrative network for10.0.0.0/8. Only users on the specified network can access the status page.
allow 10.0.0.0/8; deny all;
- HTTP basic authentication. In the sample configuration file, uncomment the
auth_basic
andauth_basic_user_file
directives and add user entries to the /etc/nginx/users file (for example, by using an htpasswd generator). If you have an Apache installation, another option is to reuse an existing htpasswd file.
auth_basic on; auth_basic_user_file /etc/nginx/users;
- Client certificates, which are part of a complete configuration of SSL or TLS. For more information, see NGINX SSL Termination in the NGINX Plus Admin Guide and the documentation for the HTTP SSL module.
- Firewall. Configure your firewall to disallow outside access to the port for the dashboard (8080 in the sample configuration file).
Changing the Port for the Status Dashboard
To set the port number for the dashboard to a value other than the default 8080, edit the followinglisten
directive in the sample configuration file.
listen 8080;
Limiting the Monitored IP Addresses
If your NGINX Plus server has several IP addresses and you want the dashboard to display tatistics for only some of them, create a listen
directive for each one that specifies its address and port. The sample configuration script includes the following example that you can uncomment and change to set the correct IP address. You also need to comment out the listen
directive (with a port number only) discussed in Changing the Port for the Status Dashboard.
listen 10.2.3.4:8080;
Preview of the NGINX Plus R6 Dashboard
Here’s a sneak peek at the new NGINX Plus dashboard, which we’re unveiling next week in NGINX Plus R6.
More Information about Live Activity Monitoring
Live Activity Monitoring of NGINX Plus in the NGINX Plus Admin Guide
HTTP Status module documentation
Published at DZone with permission of Patrick Nommensen, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments