Skip to content

A set of plugins for monitoring nginx with Munin

Notifications You must be signed in to change notification settings

paranojik/nginx-munin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nginx requests, memory usage and connections statistics with Munin

Introduction

These three perl scripts are Munin plugins for monitoring the nginx HTTP server.

nginx_status

Based on the one provided in the Debian munin-node package. Which is itself a modified version of the one available at the Munin Plugin Exchange. It shows the connection status for nginx.

Presents the values returned by nginx, using the http_stub_status module, are respectively, the number of:

connections initiated, connections handled, requests served

nginx_connection_request

Presents the number of requests served by connection handled by nginx. The requests-connection ratio handled by the server is the ratio:

requests served / connections handled

This is implemented as a RRDtool datasource of type GAUGE, the default type for Munin.

nginx_request

Based on the one provided in the Debian munin-node package. Which is itself a modified version of the one available at the Munin Plugin Exchange.

It uses a derivative (technically a finite difference) to compute the connection rate value.

nginx_memory

Based on a previous plugin by AkyRhO. It uses ps and awk to get the memory used by the master and worker processes of nginx.

Installation & Configuration

  1. Copy all the scripts to /etc/munin/plugins.
  2. Restart the munin-node daemon: /etc/init.d/munin-node restart.
  3. Done. You should now start to see a new section nginx in your Munin pages with the corresponding graphs.
  4. All scripts have POD documentation. Issue perldoc <script name> to read them.

Environment Settings

Both nginx_request and nginx_status accept two environment variables:

  • URL: the URL of the nginx status data. The default value is:

    http://hostname/nginx_status

  • UA: the User Agent that the plugin sends in the HTTP header. Since most sites block the libwww-* user agent to get rid of bad bots and mostly up to no good scanners, the scripts send a different User Agent to get around that.

Both variables can be specified in the /etc/munin/plugin-conf.d/munin-node file.

Something like this for altering the URL:

[nginx_status] env.url=http://hostname:8888/nginx-status nginx_status

[nginx_connection_request] env.url=http://hostname:8888/nginx-status nginx_status

[nginx_request] env.url=http://hostname:8888/nginx-status nginx_status

Add env.ua for altering the User Agent.

Don’t forget to restart the munin-node daemon as described in step 2 of the installation instructions above.

Note: the github handling of Org mode markup is broken. Therefore the [nginx_status] [nginx_connection_request] and [nginx_request] lines are separate from the lines specifying the environment variables.

It’s not github’s responsibility but rather a bug in Org-Ruby.

About

A set of plugins for monitoring nginx with Munin

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Perl 100.0%