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

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

Cos’è mod_status?

mod_status è un modulo per Apache che aiuta a monitorare il carico del server web e le connessioni httpd correnti attraverso un’interfaccia HTML accessibile tramite un browser web.

Il modulo mod_status di Apache mostra una semplice pagina HTML contenente le informazioni sulle statistiche correnti del server web, inclusi:

  • Numero totale di richieste in ingresso
  • Numero totale di byte e conteggi del server
  • Utilizzo CPU del server
  • Carico del server
  • Uptime del server
  • Traffico totale
  • Numero totale di worker inattivi
  • PID con i client corrispondenti e altro ancora.

Il progetto Apache ha abilitato per default la sua pagina statistiche del server al pubblico in generale. Per avere una demo della pagina di stato di un sito web impegato, visitate.

Ambiente di Test

Per questo articolo abbiamo usato il seguente Ambiente di Test per esplorare di più riguardo mod_status con alcuni esempi pratici e screenshot.

  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. Verifica impostazioni di configurazione – httpd -t

I prerequisiti per questo tutoriale sono che dovresti già sapere come installare e configurare un Server Apache di base. Se non sai come impostare Apache, leggi l’articolo seguente che potrebbe aiutarti ad impostare il tuo server web Apache.

  1. Creare il tuo server web e ospitare un sito web in Linux

Come abilitare mod_status in Apache

L’installazione predefinita di Apache include mod_status abilitato. Se non lo è, fai attenzione ad abilitarlo nel file di configurazione di Apache.

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

Cerca la parola “mod_status” o scorri giù finché non trovi una riga che contenga.

#LoadModule status_module modules/mod_status.so

Se vedi un carattere ‘#“ all’inizio di “LoadModule”, questo significa che mod_status è disabilitato. Rimuovi il ‘# per abilitare mod_status.

LoadModule status_module modules/mod_status.so

Configura mod_status

Adesso ancora cerca la parola “Location” o scorri giù finché non trovi una sezione per mod_status che dovrebbe apparire come segue.

# 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, sblocca le righe per la direttiva Location directive, SetHandler, e le restrizioni directory secondo le tue necessità. Per esempio, sto facendo semplice con l’Order Allow, deny e lo è 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 predefinito di Apache (sito web singolo). Se hai creato uno o più host virtuali Apache, la configurazione precedente non funzionerà.

Quindi, in sostanza, devi definire la stessa configurazione per ogni host virtuale per ogni dominio configurato in Apache. Per esempio, la configurazione dell’host virtuale per mod_status sarà simile a questo.

<VirtualHost *:80>
    ServerAdmin [email protected]
    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 ExtendedStatus

Le impostazioni “ExtendedStatus” aggiungono più informazioni alla pagina delle statistiche come utilizzo CPU, richieste al secondo, traffico totale, ecc. Per abilitarla, modifica lo stesso file httpd.conf e cerca la parola “Extended” e sblocca la 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 controllare gli errori nella configurazione httpd.conf utilizzando il seguente comando.

[root@tecmint ~]# httpd -t

Syntax OK

Una volta ricevuto il risultato OK, sarà possibile riavviare il servizio httpd.

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

Accesso alla pagina mod_status

La pagina di stato di Apache sarà accessibile tramite il tuo nome di dominio con “/server-status” all’URL seguente.

http://serveripaddress/server-status

OR

http://serev-hostname/server-status

Visualizzerai una pagina simile a quella seguente con l’opzione ExtendedStatus abilitata.

Apache mod_status View

Nella schermata precedente, puoi vedere che c’è una interfaccia HTML che mostra tutte le informazioni riguardanti tempo di attività del server, processo ID con il suo client corrispondente, la pagina che stanno cercando di accessare.

Mostra anche il significato e l’uso di tutte le abbreviazioni utilizzate per mostrare lo stato, che ci aiuta a capire la situazione meglio.

Puoi anche aggiornare le statistiche ogni qual volta secondi (diciamo 5 secondi) per vedere gli aggiornati dati. Per impostare l’aggiornamento automatico, aggiungi “?refresh=N” alla fine dell’URL. Dove N può essere sostituito con il numero di secondi per cui vuoi che la pagina venga aggiornata.

http://serveripaddress/server-status/?refresh=5
Apache mod_status Refresh

Visualizzazione della Pagina dello Stato dalla riga di comando

Puoi anche visualizzare la pagina dello stato di Apache dalla interfaccia di riga di comando usando browser specifici per la riga di comando come links o lynx. Puoi installarli usando il gestore di pacchetti predefinito chiamato yum, come mostrato qui sotto.

# yum install links

OR

# yum install lynx

Una volta installati, puoi ottenere le stesse statistiche sul tuo terminale usando il comando seguente.

[root@tecmint ~]# links http://serveripaddress/server-status
OR
[root@tecmint ~]# lynx http://serveripaddress/server-status
OR
[root@tecmint ~]#  /etc/init.d/httpd fullstatus
Esempio di Output
                     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 il controllo della performance delle attività del server web e è in grado di evidenziare i problemi da solo. Per maggiori informazioni, leggette la pagina di stato che vi può aiutare a diventare un amministratore di server web più successoso.

  1. Pagina iniziale mod_status di Apache

Questo è tutto per mod_status per adesso, in futuri tutoriali vi porterò a conoscere altre trick e consigli su Apache. Fino a allora rimanerete geeky e iscritti a Tecmint.com e non dimenticate di aggiungere i vostri preziosi commenti.

Source:
https://www.tecmint.com/monitor-apache-web-server-load-and-page-statistics/