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.
- Sistema Operativo – CentOS 8/7
- Applicazione – Server Web Apache
- Indirizzo IP – 5.175.142.66
- DocumentRoot – /var/www/html
- File di configurazione di Apache – /etc/httpd/conf/httpd.conf
- Porta HTTP predefinita – 80 TCP
- 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.
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.

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

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