munin plugin for nginx

Grant emailgrant at gmail.com
Tue Jun 18 13:42:14 UTC 2013


>> > I'm having some trouble getting the nginx plugin working for munin.
>> > I've added the following to nginx config and restarted:
>> >
>> > location /nginx_status {
>> > stub_status on;
>> > access_log off;
>> > allow 127.0.0.1;
>> > deny all;
>> > }
>> >
>> > I've added the following munin config:
>> >
>> > [nginx*]
>> > env.url http://localhost/nginx_status
>> >
>> > Unfortunately I still get:
>> >
>> > # munin-run nginx_request
>> > request.value U
>> > # munin-run nginx_status
>> > total.value U
>> > reading.value U
>> > writing.value U
>> > waiting.value U
>> >
>> > If I remove the allow/deny, I can browse to /nginx_status and I get:
>> >
>> > Active connections: 13
>> > server accepts handled requests
>> > 15 15 16
>> > Reading: 0 Writing: 1 Waiting: 12
>> >
>> > What could be the problem?
>>
>> the munin plugin is broken or not getting the status information.
>>
>> Try stracing the munin-run, network capature or turning on the access logs on /nginx_status just to be sure.
>>
>
> Well, I run it all over the place with no problem. I usually set it up
> only on localhost
>
> server {
>         listen 127.0.0.1:80 default;
>         server_name localhost;
>         root   /var/www;
>
>         access_log  /var/log/nginx/localhost.access.log;
>         error_log  /var/log/nginx/localhost.error.log;
>
>         location ~ /nginx_status {
>                 stub_status on;
>                 access_log   off;
>                 allow 127.0.0.1;
>                 deny all;
>         }
> }
>
> ( in /etc/nginx/conf.d/stub, or /etc/nginx/sites-available/stub,
> symlinked to ../sites-enabled/stub depending on preference ) and restart
> nginx.
>
> Then test this bit works...
>
> $ wget -O - http://localhost/nginx_status 2> /dev/null
> Active connections: 1
> server accepts handled requests
>  67892 67892 70215
> Reading: 0 Writing: 1 Waiting: 0
>
> Some os's seem to like
>
> [nginx*]
> env.url http://localhost/nginx_status
>
> added to /etc/munin/plugin-conf.d/munin_node
>
> then
>
> munin-run nginx_status
>
> should run just fine.

You fixed it!  Reducing it to the simplest config that still works, I
found that the location /nginx_status block doesn't work with munin
inside of any other server block.  It only works inside its own server
block like so:

server {
   location ~ ^/nginx_status$ {
      stub_status on;
      access_log off;
      allow 127.0.0.1;
      deny all;
   }
}

Is this a munin bug?

Thank you!

- Grant



More information about the nginx mailing list