stato del server apache non trovato. controlla se mod_status è abilitato


9

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 restartqui 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 foundmessaggio e come posso liberarmene?

Risposta aggiornata 1

Il suggerimento di Shane era corretto sull'impostazione di un gestore richieste usando Locatione SetHandlernel sito apache. Per ulteriori informazioni su mod_status, consultare questa pagina

Ho potuto verificare che muninstavano effettivamente facendo le richieste appropriate osservando /var/log/apache2/access.logdove 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 Locationnon è stata sufficiente poiché sto gestendo un Drupalsito e il .htaccesscombinato con mod_rewritestava 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.1sito apache.

Risposta aggiornata 2

Sembra che Locationdopo 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 Ondirettiva, è in quel file che dovresti farlo.

Risposte:


5

Sembra che stia provando a fare effettivamente richieste al modulo di stato. Hai una configurazione corretta per la posizione dello stato nel tuo VirtualHost? Qualcosa come questo:

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

Punto valido in effetti anche se nel mio caso ho dovuto anche fare un po 'di mod_rewritelavoro (vedi domanda aggiornata con risposta)
Max

3

Ho scoperto che potevo correre

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

ma no

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

Il primo colpisce il server predefinito, il secondo un server virtuale.

Quindi ho aggiunto esplicitamente una sezione apache a /etc/munin/plugin-conf.d/munin-node

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

e ho ottenuto i miei grafici apache di munin.


2

Ho trovato una soluzione da molti Ayromlou su questo sito :

Il problema è che queste regole .htaccess in wordpress rilevano gli URL di informazioni sul server e di stato del server attivati ​​nella configurazione di apache e restituiscono un errore di pagina non trovata. Mi sono imbattuto in numerosi siti che hanno suggerito di aggiungere una regola come:

  RewriteCond %{REQUEST_URI} !=/server-status

Questo non ha funzionato per me. Non sono sicuro che la versione multisito di wordpress (che sto usando) stia causando questo. La regola che ha funzionato magnificamente è la seguente:

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

Questa regola arresta il motore di riscrittura ogni volta che le informazioni sul server o lo stato del server vengono analizzate come parte dell'URL.


1

mod_status integrato nel server Web Apache per ottenere lo stato del server da un browser web. Con questo modulo possiamo facilmente scoprire le prestazioni del server. Tutti i report sono generati in un formato html.

Passo 1. Controlla se il modulo di stato è abilitato o meno apache2ctl -M o ls / etc / apache2 / sites-enabled

Passo 2. Se non abilitato, abilitalo tramite il comando,

sudo stato a2enmod

step3. Configura accesso,

Apri /etc/apache2/mods-enabled/status.conf e commenta le righe,

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

E aggiungi la seguente riga,

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

Possiamo limitare l'accesso allo stato del server per determinati IP in questa configurazione modificando, Consenti dal nostro indirizzo_ipubblico invece di Consenti da tutti

Salva il file status.conf.

Fase 4. Riavvia apache con il comando,

/etc/init.d/apache2 restart

Step5. Controlla la pagina di stato del server nel browser

http: // server-ip / server-status

Spero che questo possa essere utile.


0

Avevo lo stesso problema. Ecco alcuni altri passaggi diagnostici. Prova a fare

munin-run apache_processes autoconf

Questo è un modo più diretto per vedere lo stesso errore " no (nessun stato del server apache sulle porte 80) "

Ora prova a fare

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

Per me è 403 Proibito .

Stavo anche vedendo "client negato dalla configurazione del server: / var / www / server-status" nel mio registro degli errori apache principale

Stai diventando lo stesso?

Per me, infatti, la risposta di Shane Madden l'ha risolta.


Ciao Harry, se hai lo stesso problema, per favore vota la domanda in quanto aumenta la probabilità di ottenere risposte.
Max

Lo farò, non appena avrò abbastanza reputazione per votare :-)
Harry Wood,

0

Se / server-status è proibito solo da 127.0.0.1, puoi creare la configurazione di VirtualHost per 127.0.0.1 con il seguente contenuto:

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

Ecco una spiegazione più dettagliata

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.