nginx: See Active connections / Connections Per Seconds

by on February 25, 2013 · 3 comments· LAST UPDATED February 25, 2013

in , ,

How do I monitor my nginx server status and connections requests per seconds under Linux or Unix like operating systems?

Tutorial details
DifficultyEasy (rss)
Root privilegesYes
RequirementsNginx
Estimated completion timeN/A
nginx server has a module called HttpStubStatusModule. This module provides the ability to get some status from nginx. You will get the following information:

  1. Number of all open connections.
  2. Stats about accepted connections.
  3. Connections per second and so on.

Configuration

Edit nginx.conf file:
# vi nginx.conf
Add or append the following in context location:

 
   location /nginx_status {
        # Turn on stats
        stub_status on;
        access_log   off;
        # only allow access from 192.168.1.5 #
        allow 192.168.1.5;
        deny all;
   }
 

Save and close the file. Reload nginx server:
# service nginx reload
OR
# nginx -s reload

Test it

Open a web-browser and type the following url:
http://your-domain-name-here/nginx_status
OR
http://ip.address.here/nginx_status
Sample outputs:

Fig.01: nginx Status Monitor with HttpStubStatusModule

Fig.01: nginx Status Monitor with HttpStubStatusModule


Where,

  1. 586 = Number of all open connections
  2. 9582571 = Accepted connections
  3. 9582571 = Handled connections
  4. 21897888 = Handles requests

How do I calculate connections per seconds?

Requests per connection = handles requests / handled connections
Requests per connection = 21897888/9582571 (pass this to bc -l using echo '21897888/9582571' | bc -l command)
Requests per connection = 2.28
TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 3 comments… read them below or add one }

1 Centreon March 3, 2013 at 3:42 pm

Very interesting tips !
Thank for that ;) I’ll test it soon

Reply

2 Julien March 9, 2013 at 9:31 pm

Have you tried logtop ?

logtop provide live statistics on a “tail -f any_log_file” :
For example, to get your top articles if your articles contains the pattern /article/ :
tail -f /var/log/*/access.log | grep –line-buffered /article/ | logtop

Or to get top IPs :
tail -f /var/log/*/access.log | cut -d’ ‘ -f1 | logtop
(You may prefer awk ‘{print $1; fflush();}’ if you have a very slow traffic cause cut is buffering)

logtop is in Debian testing and backports, or : https://github.com/JulienPalard/logtop

Reply

3 Paul September 17, 2013 at 4:28 pm

Works like a charm, thanks.

Any idea if it’s possible to Ajax / real-time this data?

Reply

Leave a Comment

Tagged as: , , , ,

Previous Faq:

Next Faq: