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.
Comments are closed.