Ricerca nel sito web

Come monitorare il carico del server Web Apache e le statistiche delle pagine


In questo articolo imparerai come monitorare il carico e le richieste del server web Apache utilizzando il modulo mod_status nelle tue distribuzioni Linux come CentOS, RHEL e Fedora.

Cos'è mod_status?

mod_status è un modulo Apache che aiuta a monitorare il carico del server web e le connessioni httpd correnti con un'interfaccia HTML a cui è possibile accedere tramite un browser web.

Il mod_status di Apache mostra una semplice pagina HTML contenente le informazioni sulle statistiche attuali del server web, incluso.

  • Numero totale di richieste in arrivo
  • Numero totale di byte e conteggi del server
  • L'utilizzo della CPU del server Web
  • Carico del server
  • Tempo di attività del server
  • Traffico totale
  • Numero totale di lavoratori inattivi
  • PID con i rispettivi clienti e molti altri.

Il progetto Apache predefinito ha abilitato la pagina delle statistiche del server al pubblico in generale. Per avere una demo della pagina di stato del sito Web occupato, visitare.

  • https://status.apache.org/
Ambiente di test

Abbiamo utilizzato il seguente ambiente di test per questo articolo per esplorare di più su mod_status con alcuni esempi pratici e schermate.

  1. Sistema operativo: CentOS 8/7
  2. Applicazione: server Web Apache
  3. Indirizzo IP – 5.175.142.66
  4. DocumentRoot – /var/www/html
  5. File di configurazione di Apache – /etc/httpd/conf/httpd.conf
  6. Porta HTTP predefinita – 80 TCP
  7. Impostazioni di configurazione di prova – httpd -t

I prerequisiti per questo tutorial sono che tu sia già a conoscenza di come installare e configurare un server Apache di base. Se non sai come configurare Apache, leggi il seguente articolo che potrebbe aiutarti a configurare il tuo server Web Apache.

  1. Crea il tuo server web e ospita un sito web in Linux

Come abilitare mod_status in Apache

L'installazione predefinita di Apache viene fornita con mod_status abilitato. In caso contrario, assicurati di abilitarlo nel file di configurazione di Apache.

[root@tecmint ~]# vi /etc/httpd/conf/httpd.conf

Cerca la parola "mod_status" o continua a scorrere verso il basso finché non trovi una riga contenente.

#LoadModule status_module modules/mod_status.so

Se vedi un carattere '#' all'inizio di "LoadModule", significa che mod_status è disabilitato. Rimuovi "#" per abilitare mod_status.

LoadModule status_module modules/mod_status.so

Configura mod_status

Ora cerca nuovamente la parola "Posizione" o scorri verso il basso fino a trovare una sezione per mod_status che dovrebbe essere simile alla seguente.

Allow server status reports generated by mod_status,
with the URL of http://servername/server-status
Change the ".example.com" to match your domain to enable.
#
#<Location /server-status>
   SetHandler server-status
   Order deny,allow
   Deny from all
   Allow from .example.com
#</Location>

Nella sezione precedente, decommenta le righe per Direttiva posizione, SetHandler, e le restrizioni directory in base alle tue esigenze. Ad esempio, semplifico le cose con Ordina consenti, nega ed è consentito per tutti.

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

Nota: la configurazione precedente è la configurazione predefinita per il sito Web Apache predefinito (sito Web singolo). Se hai creato uno o più Apache Virtual Host, la configurazione di cui sopra non funzionerà.

Quindi, in sostanza, devi definire la stessa configurazione per ciascun host virtuale per qualsiasi dominio che hai configurato in Apache. Ad esempio, la configurazione dell'host virtuale per mod_status sarà simile a questa.

<VirtualHost *:80>
    ServerAdmin [email 
    DocumentRoot /var/www/html/example.com
    ServerName example.com
    ErrorLog logs/example.com-error_log
    CustomLog logs/example.com-access_log common
<Location /server-status>
   SetHandler server-status
   Order allow,deny
   Deny from all
   Allow from example.com 
</Location>
</VirtualHost>

Abilita stato esteso

Le impostazioni "ExtendedStatus" aggiungono ulteriori informazioni alla pagina delle statistiche come utilizzo della CPU, richiesta al secondo, traffico totale , ecc. Per abilitarlo, modifica lo stesso file httpd.conf e cerca la parola “Esteso” e rimuovi il commento dalla riga e imposta lo stato “On< " per la direttiva ExtendedStatus.

ExtendedStatus controls whether Apache will generate "full" status
information (ExtendedStatus On) or just basic information (ExtendedStatus
Off) when the "server-status" handler is called. The default is Off.
#
ExtendedStatus On

Riavvia Apache

Ora assicurati di aver abilitato e configurato correttamente la pagina di stato del server Apache. Puoi anche verificare la presenza di errori nella configurazione httpd.conf utilizzando il seguente comando.

[root@tecmint ~]# httpd -t

Syntax OK

Una volta che la sintassi è OK, puoi riavviare il servizio httpd.

[root@tecmint ~]# service httpd restart
OR
[root@tecmint ~]# systemctl restart httpd
Stopping httpd:                                          [  OK  ]
Starting httpd:                                          [  OK  ]

Accedi alla pagina mod_status

La pagina di stato di Apache sarà accessibile tramite il tuo nome di dominio con "/server-status" al seguente URL.

http://serveripaddress/server-status

OR

http://serev-hostname/server-status

Vedrai qualcosa di simile alla pagina seguente con ExtendedStatus abilitato.

Nell'istantanea sopra, puoi vedere un'interfaccia HTML, che mostra tutte le informazioni sul tempo di attività del server, l'ID processo con il suo rispettivo client, la pagina a cui stanno tentando di accedere.

Mostra anche il significato e l'utilizzo di tutte le abbreviazioni utilizzate per visualizzare lo stato che ci aiutano a comprendere meglio la situazione.

Puoi anche aggiornare la pagina ogni secondo (diciamo 5 secondi) per vedere le statistiche aggiornate. Per impostare l'aggiornamento automatico, aggiungi "?refresh=N" alla fine dell'URL. Dove N può essere sostituito con il numero di secondi in cui desideri che la tua pagina venga aggiornata.

http://serveripaddress/server-status/?refresh=5

Visualizzazione della pagina di stato della riga di comando

Puoi anche visualizzare la pagina di stato di Apache dall'interfaccia della riga di comando utilizzando gli speciali browser della riga di comando chiamati links o lynx. Puoi installarli utilizzando l'utilità di gestione dei pacchetti predefinita chiamata yum come mostrato di seguito.

yum install links

OR

yum install lynx

Una volta installato, puoi ottenere le stesse statistiche sul tuo terminale utilizzando il seguente comando.

[root@tecmint ~]# links http://serveripaddress/server-status
OR
[root@tecmint ~]# lynx http://serveripaddress/server-status
OR
[root@tecmint ~]#  /etc/init.d/httpd fullstatus
Uscita del campione
                     Apache Server Status for localhost
   Server Version: Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3
   Server Built: Aug 13 2013 17:29:28

   --------------------------------------------------------------------------
   Current Time: Tuesday, 14-Jan-2014 04:34:13 EST
   Restart Time: Tuesday, 14-Jan-2014 00:33:05 EST
   Parent Server Generation: 0
   Server uptime: 4 hours 1 minute 7 seconds
   Total accesses: 2748 - Total Traffic: 9.6 MB
   CPU Usage: u.9 s1.06 cu0 cs0 - .0135% CPU load
   .19 requests/sec - 695 B/second - 3658 B/request
   1 requests currently being processed, 4 idle workers
 .__.__W...

   Scoreboard Key:
   "_" Waiting for Connection, "S" Starting up, "R" Reading Request,
   "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
   "C" Closing connection, "L" Logging, "G" Gracefully finishing,
   "I" Idle cleanup of a worker, "." Open slot with no current process

Srv PID     Acc    M CPU   SS  Req Conn Child Slot     Client        VHost             Request
0-0 -    0/0/428   . 0.30 5572 0   0.0  0.00  1.34 127.0.0.1      5.175.142.66 OPTIONS * HTTP/1.0
                                                                               GET
1-0 5606 0/639/639 _ 0.46 4    0   0.0  2.18  2.18 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
                                                                               GET
2-0 5607 0/603/603 _ 0.43 0    0   0.0  2.09  2.09 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
3-0 -    0/0/337   . 0.23 5573 0   0.0  0.00  1.09 127.0.0.1      5.175.142.66 OPTIONS * HTTP/1.0
                                                                               GET
4-0 5701 0/317/317 _ 0.23 9    0   0.0  1.21  1.21 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
                                                                               GET
5-0 5708 0/212/213 _ 0.15 6    0   0.0  0.85  0.85 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
6-0 5709 0/210/210 W 0.16 0    0   0.0  0.84  0.84 127.0.0.1      5.175.142.66 GET /server-status
                                                                               HTTP/1.1
7-0 -    0/0/1     . 0.00 5574 0   0.0  0.00  0.00 127.0.0.1      5.175.142.66 OPTIONS * HTTP/1.0

   --------------------------------------------------------------------------

    Srv  Child Server number - generation
    PID  OS process ID
    Acc  Number of accesses this connection / this child / this slot
     M   Mode of operation
    CPU  CPU usage, number of seconds
    SS   Seconds since the beginning of the most recent request
    Req  Milliseconds required to process most recent request
   Conn  Kilobytes transferred this connection
   Child Megabytes transferred this child
   Slot  Total megabytes transferred this slot
   --------------------------------------------------------------------------

    Apache/2.2.15 (CentOS) Server at localhost Port 80

Conclusione

Il modulo mod_status di Apache è uno strumento di monitoraggio molto utile per monitorare le prestazioni dell'attività di un server web e può evidenziare autonomamente i problemi. Per ulteriori informazioni leggi la pagina di stato che può aiutarti a diventare un amministratore di server web di maggior successo.

  1. Pagina iniziale di Apache mod_status

Per ora è tutto per mod_status, nei futuri tutorial forniremo altri trucchi e suggerimenti su Apache. Fino ad allora restate Geeky e sintonizzati su linux-console.net e non dimenticate di aggiungere i vostri preziosi commenti.