Come monitorare da quanto tempo un server Linux è in funzione: il servizio Uptimed
Ci sono vari strumenti per monitorare il tempo di esecuzione di un server.
Possiamo, ad esempio, utilizzare il comando top: fornisce la lista dei processi attivi, ed in testa, nella prima riga, indica anche da quanto tempo il server è acceso.
top - 10:26:27 up 216 days, 23:50, 1 user, load average: 0.53, 1.15, 1.81
..........................
"up 216 days": indica quanto tempo il sistema è stato avviato, nel nostro esempio 216 giorni.
La stessa informazione la otteniamo utilizzando il comando "uptime". A differenza di "top" presenterà solo questa informazione, cioè la prima riga visualizzata dal comando top.
Tuttavia, quando si lavora su un server, si utilizzano strumenti più specifici, in grado di fornire maggiori informazioni relative all'uptime e downtime del server.
Il servizio che andiamo a presentare si chiama "Uptimed".
Installazione di Uptimed
Per i nostri test utilizziamo una distruzione CentOS. Uptimed non è disponibile nei repository predefiniti di CentOS. Pertanto è necessario abilitare il repository EPEL per poterlo installare
yum install epel-release
Abilitato il repository EPEL, possiamo procedere con l'installazione di uptimed
yum install uptimed
Ultimata l'installazione abilitiamo il servizio ad avviarsi automaticamente nel caso di riavvio del server
systemctl enable uptimed
Infine avviamo il servizio
systemctl start uptimed
Verifichiamo che il servizio sia effettivamente attivo
systemctl status uptimed
Il risultato sarà il seguente
uptimed.service - Uptime record tracking daemon
Loaded: loaded (/usr/lib/systemd/system/uptimed.service; enabled; vendor preset: disabled)
Active: active (running) since mer 2020-02-26 15:13:02 CET; 4s ago
Docs: man:uptimed(8)
man:uprecords(1)
Main PID: 563 (uptimed)
Status: "Next milestone (250 days) at Tue Mar 31 15:04:22 2020"
CGroup: /system.slice/uptimed.service
ââ563 /usr/sbin/uptimed -f
feb 26 15:13:02 se14 systemd[1]: Starting Uptime record tracking daemon...
feb 26 15:13:02 se14 systemd[1]: Started Uptime record tracking daemon.
Bene, adesso possiamo utilizzare il servizio uptimed. Vi consiglio di riavviare il server, per fare in modo che venga registato un riavvio.
Monitorare l'uptime del server Linux
Lanciamo il servizio con il comando "uprecords"
uprecords
Il risultato sarà, ad esempio, il seguente
# Uptime | System Boot up
----------------------------+---------------------------------------------------
1 216 days, 01:09:18 | Linux 3.10.0-957.21.3.el Thu Jul 25 15:04:21 2019
-> 2 0 days, 00:00:28 | Linux 3.10.0-957.21.3.el Wed Feb 26 15:14:23 2020
3 0 days, 00:00:08 | Linux 3.10.0-957.21.3.el Wed Feb 26 15:14:21 2020
----------------------------+---------------------------------------------------
no1 in 216 days, 01:08:51 | at Tue Sep 29 17:23:41 2020
up 216 days, 01:09:54 | since Thu Jul 25 15:04:21 2019
down 0 days, 00:00:36 | since Thu Jul 25 15:04:21 2019
%up 100.000 | since Thu Jul 25 15:04:21 2019
La riga evidenziata con una freccia, nella prima colonna, indica il riavvio più recente.
Nota: per esigenze di spazio, uprecords non visualizza interamente il nome del System, bensì lo tronca. Nel nostro esempio appare "Linux 3.10.0-957.21.3.el" mentre il nome completo dovrebbe essere "Linux 3.10.0-957.21.3.el7.x86_64". Per visualizzare il nome completo utilizziamo l'opzione "-w"
uprecords -w
Ordinare il risultato per data di boot
Ordiniamo adesso per data di avvio o riavvio del server, dal più vecchio al più recente. Dobbiamo utilizzare l'opzione "-b".
uprecords -b
Il risultato sarà il seguente
# Uptime | System Boot up
----------------------------+---------------------------------------------------
1 216 days, 01:09:18 | Linux 3.10.0-957.21.3.el Thu Jul 25 15:04:21 2019
2 0 days, 00:04:08 | Linux 3.10.0-957.21.3.el Wed Feb 26 15:14:21 2020
-> 3 0 days, 00:04:31 | Linux 3.10.0-957.21.3.el Wed Feb 26 15:14:23 2020
Se vogliamo invetire l'odine utilizziamo l'opzione "-B", maiuscolo anzichè minuscolo
uprecords -B
# Uptime | System Boot up
----------------------------+---------------------------------------------------
-> 1 0 days, 00:06:05 | Linux 3.10.0-957.21.3.el Wed Feb 26 15:14:23 2020
2 0 days, 00:05:08 | Linux 3.10.0-957.21.3.el Wed Feb 26 15:14:21 2020
3 216 days, 01:09:18 | Linux 3.10.0-957.21.3.el Thu Jul 25 15:04:21 2019
Visualizzare il numero di riavvii (uptime) del server
Quando si esegue il comando uprecords, senza alcuna opzione, verrà visualizzato il riepilogo dei primi 10 riavvii.
E' possibile tuttavia cambiare questa impostazione di default utilizzando l'opzione "-m" seguito dal numero di riavvii che vogliamo visualizzare. Ad esempio, per visualizzare i primi 20 record digitiamo:
uprecords -m 20
Visualizzare il tempo di inattività (downtime) del server
Di defatult, uprecords visualizzata l'uptime. Per visualizzare il downtime utilizziamo l'opzione "-d"
uprecords -d
Il risultato sarà il seguente.
# Uptime | Last downtime Boot up
----------------------------+---------------------------------------------------
1 216 days, 01:09:18 | 0 days, 00:00:00 Thu Jul 25 15:04:21 2019
-> 2 0 days, 00:18:35 | 0 days, 00:-18:-06 Wed Feb 26 15:14:23 2020
3 0 days, 00:18:08 | 0 days, 00:00:42 Wed Feb 26 15:14:21 2020
----------------------------+---------------------------------------------------
no1 in 216 days, 00:50:44 | at Tue Sep 29 17:23:41 2020
up 216 days, 01:46:01 | since Thu Jul 25 15:04:21 2019
down 0 days, 00:-17:-24 | since Thu Jul 25 15:04:21 2019
%up 100.006 | since Thu Jul 25 15:04:21 2019
Altre opzioni
Il servizio Uptimed presenta molte altre opzioni. Possiamo visualizzarle con il comando "man" che, come sicuramente sapete, visualizza le "manual pages".
man uprecords