Just to share another script that I hacked together to monitor my sites. Nginx is a great web server software and since I last wrote about it more than 2 years ago, I have since pretty much converted all my sites to Nginx (sorry Lighttpd).
Nginx came with this HTTP stub status module that you can get the current server status in a HTML page. However it’s not pretty comparing to Lighttpd’s and Apache’s. Moreover, the information it provides is a bit cryptic.
For example, when you browse to the stub status page (please refer to the wiki document linked earlier on how to set it up), all you get is 4 lines of text:
$ curl http://myserver/nginx_status Active connections: 183 server accepts handled requests 914384 914384 2725561 Reading: 3 Writing: 2 Waiting: 178
Not very meaningful. Instead, I wrote a small Python script (download here: nginxstats.py (2.3kb)) that does something like this:
$ ./nginxstats.py http://myserver/nginx_status
Conn Conn/s Request/s Read Write Wait
-------- ---------- ---------- ----- ----- -----
157 9.57 31.07 0 2 155
140 10.20 36.13 0 1 139
147 9.33 33.60 0 4 143
189 12.60 40.07 1 4 184
164 13.07 41.53 5 2 157
Basically it fetches the data from the stub status page every 30 seconds (configurable in the script) and then do some calculation to find out how many connections have been established within the time frame, and what’s the average connections/second and requests/second. Similar to tools like vmstat, it basically runs continuously (until interrupted).
Very useful when you are getting slashdotted :)

4
There also are munin plugins for nginx:
http://muninexchange.projects.linpro.no/?search=&cid=54&pid=51
integrates very nicely and gives you a quick overview about what’s going on in case things go wrong
Hi, just set up nginx to replace apache and was looking for something simple and lightweight to monitor nginx requests.
I’ve set TIME_SLEEP to 5, is it ok or does it use more resources some how?
And, generally, speaking, does this + the nginx module use much resources?
Thanks
Well. I don’t think this module adds much more resource, and this script only does the fetching and parsing on your own box. As of 5 second interval — it might be a bit too short. Depending on how busy your Nginx instance is I guess.
Hello,
Could you point me to a good noob guide to replace apache with nginx on a centos VPS?
Thank you