La maggior parte di questo articolo si basa sulle informazioni che si trovano nel blog di Nicolargo , l’autore di questo strumento.
Glances è un software libero (sotto licenza LGPL) per monitorare sistemi GNU/Linux o sistemi operativi BSD da un’interfaccia di testo. Glances usa la libreria libstatgrab per recuperare le informazioni dal sistema ed è sviluppato in Python.
Quindi un’altro clone di top/htop?
Sì e no, una cosa unica di Glances
che ho notato subito è che si possono configurare delle soglie nel suo file di configurazione e vedere lo stato delle risorse di sistema con dei colori che indicano se tutto va bene oppure no , a colpo d’occhio.
Installazione
Glances è disponibile per alcune distribuzioni: Debian (SID), Arch, Fedora, RedHat, FreeBSD ma non per Ubuntu o Mint (almeno per quello che ho trovato) quindi per installare l’ultima versione (1.6 al momento) il mio suggerimento è quello di utilizzare PyPI, un gestore di pacchetti di Python.
$ sudo apt-get update $ sudo apt-get install python-pip build-essential python-dev |
Quindi installare la versione più recente di Glances:
$ sudo pip install Glances Downloading/unpacking Glances Downloading glances-1.6.tar.gz (674Kb): 674Kb downloaded Running setup.py egg_info for package Glances Downloading/unpacking psutil>=0.4.1 (from Glances) Downloading psutil-0.6.1.tar.gz (138Kb): 138Kb downloaded Running setup.py egg_info for package psutil Installing collected packages: Glances, psutil Running setup.py install for Glances Installing glances script to /usr/local/bin Running setup.py install for psutil building '_psutil_linux' extension gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c psutil/_psutil_linux.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_linux.o gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/psutil/_psutil_linux.o -o build/lib.linux-x86_64-2.7/_psutil_linux.so building '_psutil_posix' extension gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c psutil/_psutil_posix.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_posix.o gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/psutil/_psutil_posix.o -o build/lib.linux-x86_64-2.7/_psutil_posix.so Successfully installed Glances psutil Cleaning up... |
Provatelo scrivendo in un terminale: glances
dovreste vedere qualcosa simile a questo:
In glances
vedrete un sacco di informazioni in merito alle risorse del sistema: CPU, carico, memoria, rete Swap, Disk I/O e Processi, tutto mostrato in una pagina, per impostazione predefinita utilizza questo codice colore:
- GREEN : La statistica è “OK”
- BLUE : La statistica è in stato di “ATTENZIONE” (to watch)
- VIOLET : La statistica è in stato “PRE-ALLARME” (alert)
- RED : La statistica è in stato “CRITICO” (critical)
Quando glances
è in esecuzione, è possibile premere alcuni tasti speciali per dare alcuni comandi :
a Ordina i processi automaticamente, ciò significa che:
- Se CPU IoWait > 60% ordina per “lettura e scrittura IO”
- Se CPU > 70%, ordina per “Utilizzo di CPU”
- Se MEM > 70%, ordina per “Utilizzo della memoria”
c Ordina i processi per CPU%
m Ordina i processi per MEM%
p Ordina i processi per nome
i Ordina i processi per IO Rate
d Mostra/Nasconde statistiche su disk I/O
f Mostra/Nascondefile statistiche di sistema
n Mostra/Nasconde statistiche di rete
s Mostra/Nasconde statistiche dei sensori
b Bit/s o Byte/s per l’I/O di rete
w Cancella i log sui warning
x Cancella i log sui warning e cristical
1 CPU globale or status Per Core
h Mostra/Nasconde l’aiuto
q Quit (funzionano anche Esc o Ctrl-C)
l Mostra/Nasconde li messaggi dei log
h3>File di configurazione
È possibile impostare le soglie nel file di configurazione di Glances, su GNU/Linux, il file di configurazione di default si trova in /etc/glances/glances.conf.
Attenzione, se è stato installato il pacchetto tramite PyPy non avrete la directory o il file, quindi per iniziare potete scaricare il file da https://gist.github.com/4647457 , questo è un buon modello che è possibile modificare per mettere i vostri valori.
Come si può vedere nel file è definita una sezione per ogni statistica (CPU, LOAD, MEM …) scrivete i vostri limiti per gli stati Careful (per il monitoraggio), Warning (da trattare), Critical (da trattare in caso di emergenza).
I limiti utilizzati sono disponibili nella finestra di aiuto nella forma di una tabella, come nell’immagine mostrata
Modalità Client/server
Un’altra caratteristica interessante di questo strumento di monitoraggio è che è possibile avviarlo in modalità server digitando semplicemente glances -s
, questo darà un output del tipo Glances server is running on 0.0.0.0:61209
ed ora è possibile connettersi ad esso da un altro computer utilizzando glances -c @server
dove @server è l’indirizzo IP o il nome host del server.
Glances usa un server XML/RPC che puà essere utilizzato anche da altri programmi.
In modalità server, è possibile scegliere l’indirizzo su cui ascoltare (-B INDIRIZZO) ed anche la porta TCP (-p PORTA), l’indirizzo di default su cui ascolta è 0.0.0.0 (Glances ascolterà su tutte le interfaccie di rete) e come porta TCP la 61209.
In modalità client, è possibile configurare la porta TCP del server (-p port).
Nelal modalità client/server, i limiti sono configurati sul server.
Dalla versione 1.6 è possibile anche configurare opzionalmente una password per accedere al server (-P password) che, se impostata sul server deve essere utilizzata anche sul client.
Conclusioni
Glances è davvero un progetto interessante, aggiunge agli strumenti simili a top
il concetto di soglia, che può essere utile quando si gestisce una grande quantità di server e si desidera impostare diversi punti di vista (forse è normale che il server DB utilizzi il 95% di la CPU, ma non va bene se questo accade sul server web), e anche il concetto di client/server, questo apre nuove opportunità come avere un punto centrale che raccoglie tutte le informazioni dal server, o costruire una interfaccia web che analizza questi dati e li inserisce in alcune pagine web.
Alcuni suggerimenti? Aggiungere una vista a Thread per i processi, e la possibilità di eseguirlo tramite cron jobs che producano un output in un file (CSV, XML o solo testo, come nmon)
Popular Posts:
- None Found
Goodness, Text?. I thought we were trying to move away from this old school stuff. Slap a simple, intuitive GUI on that sucker and call it a day.
Who is trying to move away from terminal ?
Not servers for sure 🙂
Looks like a cross between top and topas (AIX)