Bei der Einrichtung von Munin auf einem Webserver mit Apache konnte munin nicht auf die von mod_status erzeugte Statusseite zugreifen. Ein Autoconftest für das Plugin apache_accesse ergab folgende Fehlermeldung

# /etc/munin/plugins/apache_accesses autoconf
no (apache server-status not found. check if mod_status is enabled)

Ein Test ob mod_status überhaupt aktiviert war ergab dass dieser aktiv war

# a2enmod status
Module status already enabled

Laut Apache accesslog hat Munin jedoch die richtige Adresse abgefragt

"GET /server-status?auto HTTP/1.1" 301 405 "-" "munin/2.0.19-3 (libwww-perl/6.05)"

Bei einem Aufruf von localhost/server-status mittels wget oder Lynx wurde jedoch immer der HTTP-Statuscode 404 Not Found ausgegben

HTTP-Anforderung gesendet, warte auf Antwort... 404 Not Found

Lösung

WordPress, bzw dessen .htaccess war schuld. Die hier standardmäßig definierten Regen führen dazu dass WordPress alle nicht vorhandenen Verzeichnisse selber verwalten will. D. h. es muss über die .htacces Datei im WordPress Rootverzeichniss folgende Zeile ergänzt werden, damit WordPress Zugriffe auf example.com/server-status nicht mehr umschreibt:

RewriteCond %{REQUEST_URI} !=/server-status

so dass die .htaccess etwa so aussieht:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_URI} !=/server-status
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

nach einem

# sudo service apache2 restart

kann die Statusseite aufgerufen und von Munin verarbeitet werden.


Dieser Artikel ist lizenziert unter einer Creative Commons Namensnennung 3.0 Deutschland Lizenz.

Comments are closed.