munin plugin for nginx
basti
black.fledermaus at arcor.de
Tue Jun 18 14:29:11 UTC 2013
Replace
[nginx*]
env.url http://localhost/nginx_status
with
[nginx_*]
user root
my nginx default file
egrep -v "(^$|^#)" /etc/nginx/sites-enabled/default
server {
listen 80; ## listen for ipv4
listen [::]:80 default ipv6only=on; ## listen for ipv6
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
location / {
root /var/www;
index index.html index.htm;
}
location /doc {
root /usr/share;
autoindex on;
allow 127.0.0.1;
deny all;
}
location /images {
root /usr/share;
autoindex on;
}
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root /var/www/nginx-default;
#}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
#proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000;
#fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
#includefastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
#deny all;
#}
}
Am 18.06.2013 16:10, schrieb Grant:
>> My config looks like:
>>
>> /etc/munin/plugin-conf.d/munin-node
>>
>> ...
>> [nginx_*]
>> user root
>>
>> /etc/nginx/sites-enabled/default
> I don't have /etc/nginx/sites-enabled/ at all. What kind of stuff is
> in the default file? I'm on Gentoo.
>
> - Grant
>
>
>> ...
>> ## munin nginx status (request/ connections handeled)
>> location /nginx_status {
>> stub_status on;
>> access_log off;
>> allow 127.0.0.1;
>> deny all;
>> }
>> ...
>> This runs for me very well, so try to edit your
>> /etc/munin/plugin-conf.d/munin-node.
>> You can also Debug by
>>
>> munin-configure --suggest
>>
>> Am 18.06.2013 15:42, schrieb Grant:
>>>>>> 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
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
More information about the nginx
mailing list