Frage Apache Server-Status nicht gefunden. Überprüfen Sie, ob mod_status aktiviert ist


Ich habe das aktiviert apache_ Plugins auf einem Munin-Knoten:
ln -sv /usr/share/munin/plugins/apache_* /etc/munin/plugins/

Nach dem Neustart des Knotens mit service munin-node restart Hier sind die Fehler, die ich bekomme:

$ 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]

jedoch mod_status ist bereits aktiviert:

$ a2enmod status
Module status already enabled

Und das Neustarten von Apache macht keinen Unterschied.

Wenn ich versuche, die Plugins manuell zu starten, ist das, was ich bekomme (ich habe gelesen, dass das Erhalten eines U schlechte Nachrichten sind, zumindest ist das konsistent).

$ 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

Weiß jemand, warum ich immer noch das bekomme? server-status not found Nachricht und wie kann ich es loswerden? 

Aktualisierte Antwort 1

Shanes Vorschlag war korrekt, einen Anforderungshandler mit zu setzen Location und SetHandler in der Apache-Site. Für weitere Informationen über mod_status bitte beziehen Sie sich auf diese Seite

Ich könnte das überprüfen munin machte effektiv die entsprechenden Anfragen, indem er sie betrachtete /var/log/apache2/access.log wo ich das bekommen habe:

127.0.0.1 - - [10/Nov/2011:07:24:15 +0000] "GET /server-status?auto HTTP/1.1" 404 7774 "-" "libwww-perl/5.834

In meinem Fall die Einstellung Location war nicht genug, da ich ein laufe Drupal Website und die .htaccess kombiniert mit mod_rewrite umschrieben die Anfragen. Um es zu beheben, musste ich die folgende Zeile zu meinem hinzufügen .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]

Bitte beachten Sie, dass dies kein Sicherheitsproblem darstellt, seit Zugriff auf /server-status ist beschränkt auf 127.0.0.1 in der Apache-Site.

Aktualisierte Antwort 2

Es scheint, dass das Hinzufügen der Location zur Apache Site wurde schließlich nicht benötigt, da dies bereits in definiert ist /etc/apache2/mods-enabled/status.conf. Übrigens, sollten Sie das hinzufügen möchten ExtendedStatus On Anweisung, das ist in dieser Datei, dass Sie es tun sollten.


8
2017-11-08 12:02


Ursprung




Antworten:


Scheint so, als würde es versuchen, Anfragen an das Statusmodul zu stellen. Haben Sie eine korrekte Konfiguration für den Statusstandort in Ihrem System? VirtualHost? Etwas wie das:

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Location>

5
2017-11-08 18:58



Gültiger Punkt in der Tat, obwohl ich in meinem Fall auch etwas tun musste mod_rewrite arbeiten (siehe aktualisierte Frage mit Antwort) - Max


Ich fand heraus, dass ich rennen konnte

$ wget http://localhost/server-status?auto

aber nicht

$ wget http://127.0.0.1/server-status?auto

Der erste trifft den Standardserver, der zweite einen virtuellen Server.

Also habe ich explizit einen Apache-Abschnitt hinzugefügt /etc/munin/plugin-conf.d/munin-node

[apache_*]
env.url   http://localhost:%d/server-status?auto
env.ports 80

und habe meine Munun Apache Graphen.


3
2018-05-23 14:32





Ich habe eine Lösung von Many Ayromlou gefunden auf dieser Seite:

Das Problem ist, dass diese .htaccess-Regeln in Wordpress Server-Info und Server-Status-URLs übernehmen, die in der Konfiguration von Apache aktiviert sind und den Fehler "Seite nicht gefunden" zurückgeben.   Ich stieß auf zahlreiche Websites, die vorgeschlagen haben, eine Regel wie folgt hinzuzufügen:

  RewriteCond %{REQUEST_URI} !=/server-status

Das hat nicht für mich funktioniert. Ich bin mir nicht sicher, ob die Multisite-Version von Wordpress (die ich verwende) dies verursacht. Die Regel, die wunderbar funktionierte, ist die folgende:

  RewriteRule ^(server-info|server-status) - [L]

Diese Regel stoppt die Rewrite-Engine, wenn Serverinformationen oder Serverstatus als Teil der URL analysiert werden.


2
2018-05-12 09:01





mod_status ist in den Apache Webserver integriert, um den Serverstatus von einem Webbrowser zu erhalten. Mit diesem Modul können wir leicht herausfinden, wie gut der Server funktioniert. Alle Berichte werden im HTML-Format erstellt.

Schritt 1. Überprüfen Sie, ob das Statusmodul aktiviert ist oder nicht apache2ctl -M oder ls / etc / apache2 / sites-enabled

Schritt 2. Wenn nicht aktiviert, aktivieren Sie es durch den Befehl,

Sudo a2enmod Status

Schritt 3. Zugriff konfigurieren,

Öffnen Sie /etc/apache2/mods-enabled/status.conf und kommentieren Sie die Zeilen,

        #<Location /server-status>
        #    SetHandler server-status
        #    Require local
        #Require ip 192.0.2.0/24
        #</Location>

Und füge folgende Zeile hinzu:

        <Location /server-status>
        SetHandler server-status
        Order deny,allow
        Allow from all
        </Location>

Wir können den Zugriff auf den Serverstatus für bestimmte IPs in dieser Konfiguration einschränken, indem Sie Erlaube von unserer_öffentlichen_Apadresse anstelle von Erlauben von allen

Speichern Sie die Datei status.conf.

Schritt 4. Starten Sie den Apache mit dem Befehl neu.

/etc/init.d/apache2 neustarten

Schritt 5. Überprüfen Sie die Serverstatusseite im Browser

http: // Server-IP / Server-Status

Ich hoffe, das wäre hilfreich.


1
2018-02-16 08:55





Ich hatte das gleiche Problem. Hier sind einige weitere diagnostische Schritte. Versuchen Sie es

munin-run apache_processes autoconf

Das ist ein direkterer Weg, denselben Fehler zu sehen "nein (kein Apache Server-Status an Ports 80)"

Versuche es jetzt

wget http://127.0.0.1/server-status?auto

Für mich ist das Geben 403 Verboten.

Ich habe auch gesehen 'Client nach Serverkonfiguration abgelehnt: / var / www / server-status' in meinem Haupt-Apache-Fehlerprotokoll

Du bekommst das gleiche?

Tatsächlich hat Shane Maddens Antwort das gelöst.


0
2017-11-08 14:29



Hallo Harry, wenn du das gleiche Problem hast, dann stimme bitte die Frage ab, da es die Wahrscheinlichkeit erhöht, Antworten zu bekommen. - Max
Werde tun, sobald ich genug Reputation habe um zu wählen :-) - Harry Wood


Wenn / server-status nur von 127.0.0.1 aus verboten ist, können Sie die VirtualHost-Konfiguration für 127.0.0.1 mit folgendem Inhalt erstellen:

<VirtualHost *:80>
    ServerAdmin superadmin@somemail.com
    ServerName 127.0.0.1
    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride All
    </Directory>
    <Directory /var/www>
      Options +FollowSymLinks
      AllowOverride None
      order allow,deny
      allow from all
    </Directory>
</VirtualHost>

Hier ist ausführlichere Erklärung


0
2017-12-02 22:20