J'ai activé les apache_
plugins sur un nœud munin:
ln -sv /usr/share/munin/plugins/apache_* /etc/munin/plugins/
Après avoir redémarré le nœud avec service munin-node restart
voici les erreurs que je reçois:
$ 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]
Cependant mod_status
est déjà activé:
$ a2enmod status
Module status already enabled
Et redémarrer apache ne fait aucune différence.
Si j'essaie d'exécuter les plugins manuellement, voici ce que j'obtiens (j'ai lu que l'obtention d'un U est une mauvaise nouvelle, donc au moins c'est cohérent).
$ 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
Est-ce que quelqu'un sait pourquoi je reçois toujours le server-status not found
message et comment je peux m'en débarrasser?
Réponse mise à jour 1
La suggestion de Shane était correcte sur la définition d'un gestionnaire de requêtes à l'aide de Location
et SetHandler
dans le site apache. Pour plus d'informations sur mod_status
s'il vous plaît se référer à cette page
Je pouvais vérifier que je munin
faisais effectivement les demandes appropriées en regardant /var/log/apache2/access.log
où j'obtenais ceci:
127.0.0.1 - - [10/Nov/2011:07:24:15 +0000] "GET /server-status?auto HTTP/1.1" 404 7774 "-" "libwww-perl/5.834
Dans mon cas, le réglage Location
n'était pas suffisant car je gère un Drupal
site et les .htaccess
combinés avec mod_rewrite
réécrivaient les demandes. Pour le réparer, j'ai dû ajouter la ligne suivante à mon.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]
Veuillez noter que cela ne représente pas un problème de sécurité car l'accès à /server-status
est limité au 127.0.0.1
site apache.
Réponse mise à jour 2
Il semble que l'ajout Location
de au site apache n'était pas nécessaire après tout, car cela est déjà défini dans /etc/apache2/mods-enabled/status.conf
. Btw, si vous voulez ajouter la ExtendedStatus On
directive, c'est dans ce fichier que vous devez le faire.
mod_rewrite
travail (voir question mise à jour avec réponse)