Ho abilitato i apache_
plugin su un nodo munin:
ln -sv /usr/share/munin/plugins/apache_* /etc/munin/plugins/
Dopo aver riavviato il nodo con service munin-node restart
qui ci sono gli errori che ottengo:
$ munin-node-configure --suggest 2>/dev/null | grep "apache\|Plugin\|------"
Plugin | Used | Suggestions
------ | ---- | -----------
apache_accesses | yes | no [apache server-status not found. check if mod_status is enabled]
apache_processes | yes | no [apache server-status not found. check if mod_status is enabled]
apache_volume | yes | no [apache server-status not found. check if mod_status is enabled]
Tuttavia mod_status
è già abilitato:
$ a2enmod status
Module status already enabled
E riavviare apache non fa differenza.
Se provo a eseguire manualmente i plug-in qui è quello che ottengo (leggo che ottenere una U è una cattiva notizia quindi almeno coerente).
$ munin-run apache_accesses --debug
# Processing plugin configuration from /etc/munin/plugin-conf.d/munin-node
# Set /rgid/ruid/egid/euid/ to /110/65534/110 110 /65534/
# Setting up environment
# About to run '/etc/munin/plugins/apache_accesses'
accesses80.value U
$ munin-run apache_processes --debug
# Processing plugin configuration from /etc/munin/plugin-conf.d/munin-node
# Set /rgid/ruid/egid/euid/ to /110/65534/110 110 /65534/
# Setting up environment
# About to run '/etc/munin/plugins/apache_processes'
busy80.value U
idle80.value U
free80.value U
$ munin-run apache_volume --debug
# Processing plugin configuration from /etc/munin/plugin-conf.d/munin-node
# Set /rgid/ruid/egid/euid/ to /110/65534/110 110 /65534/
# Setting up environment
# About to run '/etc/munin/plugins/apache_volume'
volume80.value U
Qualcuno sa perché sto ancora ricevendo il server-status not found
messaggio e come posso liberarmene?
Risposta aggiornata 1
Il suggerimento di Shane era corretto sull'impostazione di un gestore richieste usando Location
e SetHandler
nel sito apache. Per ulteriori informazioni su mod_status
, consultare questa pagina
Ho potuto verificare che munin
stavano effettivamente facendo le richieste appropriate osservando /var/log/apache2/access.log
dove stavo ottenendo questo:
127.0.0.1 - - [10/Nov/2011:07:24:15 +0000] "GET /server-status?auto HTTP/1.1" 404 7774 "-" "libwww-perl/5.834
Nel mio caso, l'impostazione Location
non è stata sufficiente poiché sto gestendo un Drupal
sito e il .htaccess
combinato con mod_rewrite
stava riscrivendo le richieste. Per risolvere il problema, ho dovuto aggiungere la seguente riga alla mia.htaccess
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteCond %{REQUEST_URI} !=/server-status # <= added this line
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Si noti che ciò non rappresenta un problema di sicurezza poiché l'accesso /server-status
è limitato al 127.0.0.1
sito apache.
Risposta aggiornata 2
Sembra che Location
dopo tutto non sia stato necessario aggiungere il sito apache poiché questo è già definito in /etc/apache2/mods-enabled/status.conf
. A proposito, se vuoi aggiungere la ExtendedStatus On
direttiva, è in quel file che dovresti farlo.
mod_rewrite
lavoro (vedi domanda aggiornata con risposta)