Come controllare lo stato e il tempo di attività di Apache su CentOS/Ubuntu
In questo tutorial, spiegherò diversi modi per identificare lo stato di esecuzione di Apache sulle ultime distribuzioni CentOS 7.4 e Ubuntu 16.04 utilizzando varie utilità della riga di comando e altri metodi.
utilitaristico ps
ps è un programma che visualizza i processi attualmente in esecuzione. Questa utility mostra informazioni su una selezione di processi attivi in esecuzione su un sistema Linux, possiamo usarla con il comando grep per controllare il tempo di attività del servizio Apache come segue.
Su Ubuntu/Debian
L’output di esempio riportato di seguito mostra il servizio Apache2 in esecuzione per 8 ore, 30 minuti e 5 secondi, considerando quello in esecuzione come root.
# ps -eo comm,etime,user | grep apache2
apache2 08:30:05 root
apache2 08:13:59 www-data
apache2 08:13:59 www-data
# ps -eo comm,etime,user | grep root | grep apache2
apache2 08:30:18 root
Su CentOS/RHEL
L’output di esempio riportato di seguito mostra che il servizio Apache è in esecuzione da 2 giorni, 5 ore, 53 minuti e 17 secondi, considerando quello in esecuzione come root.
# ps -eo comm,etime,user | grep httpd
httpd 2-05:53:17 root
httpd 11:07:49 apache
httpd 11:07:49 apache
httpd 11:07:49 apache
httpd 11:07:49 apache
httpd 11:07:49 apache
httpd 09:19:24 apache
# ps -eo comm,etime,user | grep root | grep httpd
httpd 2-05:53:17 root
Ecco la bandiera:
-e: enables selection of every processes on the system.
-o: is used to specify output
comm: command
etime: mention process execution time
user: specifies the process owner
L’utilità Systemctl
Il comando systemctl è il comando di base utilizzato per gestire e controllare systemd, inclusi i servizi di sistema. Consente di abilitare, disabilitare, visualizzare, avviare, arrestare o riavviare i servizi di sistema. Possiamo usare questo sottocomando systemctl status per vedere lo stato del nostro servizio Apache come segue:
Su Ubuntu/Debian
Puoi utilizzare il comando seguente per ottenere il runtime di Apache2 su un server Ubuntu/Debian.
# systemctl status apache2 | grep -i active
Active: active (running) since Sun 2018-03-04 14:45:59 UTC; 19min ago
Su CentOS/RHEL
Puoi usare lo stesso comando “systemctl” per trovare lo stato httpd
# systemctl status httpd | grep -i active
Active: active (running) since Fri 2018-03-02 08:47:46 UTC; 2 days ago
Utilità Apachectl
Apachectl è un’interfaccia di controllo front-end per il server Apache HyperText Transfer Protocol (HTTP). È progettato per aiutare gli amministratori a controllare il funzionamento del demone Apache. Questo metodo richiede che il modulo mod_status sia installato e abilitato sul server affinché funzioni come richiesto. Sul browser viene presentata una pagina HTML che fornisce le statistiche correnti del server in un formato di facile lettura. È abilitato per impostazione predefinita su tutti i server. Per controllare lo stato di Apache utilizzando questa utility da riga di comando, dobbiamo abilitare il browser Web da riga di comando come lynx o elinks. Oppure, riporterà come segue:
# apachectl status
/usr/sbin/apachectl: 101: /usr/sbin/apachectl: www-browser: not found
'www-browser -dump http://localhost:80/server-status' failed.
Maybe you need to install a package providing www-browser or you
need to adjust the APACHE_LYNX variable in /etc/apache2/envvars
Quindi ho installato questi browser Web da riga di comando per farli funzionare dal terminale del server.
Su Ubuntu/Debian
Possiamo installare il browser della riga di comando Lynx per abilitare lo stato apachectl qui.
# apt install lynx
# apachectl status
Apache Server Status for localhost (via ::1)
Server Version: Apache/2.4.18 (Ubuntu)
Server MPM: event
Server Built: 2017-09-18T15:09:02
__________________________________________________________________
Current Time: Sunday, 04-Mar-2018 15:24:38 UTC
Restart Time: Sunday, 04-Mar-2018 14:45:58 UTC
Parent Server Config. Generation: 1
Parent Server MPM Generation: 0
Server uptime: 38 minutes 39 seconds
Server load: 0.00 0.00 0.00
Total accesses: 0 - Total Traffic: 0 kB
CPU Usage: u0 s0 cu0 cs0
0 requests/sec - 0 B/second -
1 requests currently being processed, 49 idle workers
PID Connections Threads Async connections
total accepting busy idle writing keep-alive closing
18424 0 yes 1 24 0 0 0
18425 0 yes 0 25 0 0 0
Sum 0 1 49 0 0 0
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 worker, "." Open slot with no current process
Su CentOS/RHEL
Possiamo installare il browser della riga di comando elinks per abilitare lo stato apachectl qui.
# yum install elinks
# apachectl status
* httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2018-03-04 15:28:20 UTC; 6min ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 21280 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
Process: 14448 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
Main PID: 21286 (httpd)
Status: "Total requests: 1; Current requests/sec: 0; Current traffic: 0 B/sec"
CGroup: /system.slice/httpd.service
|-21286 /usr/sbin/httpd -DFOREGROUND
|-21288 /usr/sbin/httpd -DFOREGROUND
|-21289 /usr/sbin/httpd -DFOREGROUND
|-21290 /usr/sbin/httpd -DFOREGROUND
|-21291 /usr/sbin/httpd -DFOREGROUND
|-21292 /usr/sbin/httpd -DFOREGROUND
`-21293 /usr/sbin/httpd -DFOREGROUND
Mar 04 15:28:20 li694-77.members.linode.com systemd[1]: Starting The Apache HTTP Server...
Mar 04 15:28:20 li694-77.members.linode.com systemd[1]: Started The Apache HTTP Server.
Attivazione del modulo Mod-Status
In alternativa, per visualizzare le informazioni sullo stato del server Web Apache da un browser Web grafico, è necessario abilitare il modulo di stato del server nella configurazione Apache.
Su CentOS/RHEL
Per abilitare il modulo dello stato del server, è necessario creare un file denominato /etc/httpd/conf.d/server-status.conf
sul nostro server con il seguente contenuto e riavviare Apache per rendere effettive le modifiche.
# cat /etc/httpd/conf.d/server-status.conf
<Location "/server-status">
SetHandler server-status
#Require host localhost #uncomment to only allow requests from localhost
</Location>
Ora puoi sfogliare l’URL http://server-IP/server-status
per vedere lo stato.
Su Ubuntu/Debian
Allo stesso modo, puoi commentare le seguenti voci in /etc/apache2/mods-enabled/status.conf
sui nostri server Debian/Ubuntu e ricaricare la configurazione di Apache2 per rendere effettive queste modifiche.
# cat /etc/apache2/mods-enabled/status.conf
<IfModule mod_status.c>
# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Uncomment and change the "192.0.2.0/24" to allow access from other hosts.
<Location /server-status>
SetHandler server-status
#Require local #uncomment to only allow requests from localhost
#Require ip 192.0.2.0/24 #uncomment and change the “192.0.2.0/24” to allow access from other hosts.
</Location>
# Keep track of extended status information for each request
ExtendedStatus On
# Determine if mod_status displays the first 63 characters of a request or
# the last 63, assuming the request itself is greater than 63 chars.
# Default: Off
#SeeRequestTail On
<IfModule mod_proxy.c>
# Show Proxy LoadBalancer status in mod_status
ProxyStatus On
</IfModule>
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Ora puoi sfogliare l’URL http://server-IP/server-status
per vedere lo stato. In alternativa, puoi eseguire il comando utilizzando un browser in modalità testo come elinks o lynx per vedere il runtime di Apache come
#elinks http://localhost/server-status
or
#lynx http://localhost/server-status
Monitoraggio del tempo di attività dai log di Apache
Sui server Ubuntu/Debian, puoi visualizzare i log di Apache su /var/log/apache2/error.log
per identificare i tentativi di riavvio di Apache più recenti utilizzando questo comando di seguito:
# tail -f /var/log/apache2/error.log | grep resuming
[Sun Mar 04 06:25:02.611615 2018] [mpm_event:notice] [pid 15230:tid 140159687124864] AH00489: Apache/2.4.18 (Ubuntu) configured -- resuming normal operations
[Sun Mar 04 14:45:58.950825 2018] [mpm_event:notice] [pid 18421:tid 139913481500544] AH00489: Apache/2.4.18 (Ubuntu) configured -- resuming normal operations
[Sun Mar 04 15:42:25.768467 2018] [mpm_event:notice] [pid 18421:tid 139913481500544] AH00489: Apache/2.4.18 (Ubuntu) configured -- resuming normal operations
Anche sui server CentOS/RHEL è possibile visualizzare i log di Apache che si trovano in /var/log/httpd/error_log
per identificare il recente tentativo di riavvio di Apache utilizzando questo comando di seguito:
# tail -f /var/log/httpd/error_log | grep resuming
[Sun Mar 04 15:28:20.579455 2018] [mpm_prefork:notice] [pid 21286] AH00163: Apache/2.4.6 (CentOS) configured -- resuming normal operations
Monitoraggio del tempo di attività dai pannelli di controllo del web hosting
Conosciamo vari pannelli di controllo di web hosting come WHM, DirectAdmin, Plesk, InterWorx, Webmin, Kloxo ecc. Ti guiderò attraverso i passaggi seguenti per visualizzare il tempo di attività di Apache su due dei dashboard di hosting Web ampiamente utilizzati, come WHM e Interworx. :
WHM
In un server WHM, possiamo visualizzare lo stato di Apache navigando attraverso il percorso WHM HOME >> Server Status >> Apache Status
dopo aver effettuato l’accesso al tuo pannello WHM all’URL >>https://serverIP or hostname:2087
come mostrato nello screenshot.
Interlavoro
InterWorx Web Control Panel è un pannello di controllo di web hosting basato su Linux per hosting dedicato e VPS. Può essere facilmente utilizzato sia dagli amministratori di sistema che dall’amministratore del sito web. In questo pannello, possiamo controllare l’uptime di Apache navigando attraverso i passaggi seguenti:
Accedi al pannello Nodeworx all’indirizzo >> https://hostname or ServerIP:2443
Naviga il Sentiero Nodeworx Home >> System Services >> Web Server
In quei pannelli che non hanno un’interfaccia facile da usare per controllare lo stato del server web, possiamo abilitare il modulo mod_status per vedere il suo tempo di attività dal browser.
Tutti questi metodi consentono a un amministratore del server di scoprire le prestazioni del suo server. Inoltre, può essere utilizzato anche per risolvere i problemi relativi ai tempi di inattività del dominio. Spero che questo articolo sia utile a tutti voi. Per favore fatemi sapere i vostri suggerimenti e pensieri da condividere su questo.