Questo post è stato originariamente pubblicato sul blog di Server Density, una società di monitoraggio delle infrastrutture che si è unita a StackPath nel 2018.
È un lavoro duro monitorare e debuggare i problemi di performance di Linux, ma è più facile con gli strumenti giusti al momento giusto. Ecco perché abbiamo deciso di fare la lista più completa di strumenti di monitoraggio di Linux su Internet.
Per aiutarti a trovare lo strumento giusto, abbiamo separato gli oltre 80 strumenti di questa lista in cinque categorie:
- Strumenti a linea di comando
- Strumenti di monitoraggio desktop
- Strumenti di monitoraggio dell’infrastruttura
- Strumenti di monitoraggio dei log
- Strumenti di monitoraggio della rete
Strumenti a linea di comando
Top
Questo è un piccolo strumento che è preinstallato su molti sistemi unix. Quando volete una panoramica di tutti i processi o thread in esecuzione nel sistema: top è un buon strumento. Ordina i processi in base a diversi criteri – il predefinito dei quali è la CPU.
htop
Htop è essenzialmente una versione migliorata di top. È più facile da ordinare per processi. È visivamente più facile da capire e ha comandi incorporati per le cose comuni che vorreste fare. Inoltre è completamente interattivo.
atop
Atop monitora tutti i processi proprio come top e htop, a differenza di top e htop però ha una registrazione giornaliera dei processi per un’analisi a lungo termine. Mostra anche il consumo di risorse da parte di tutti i processi. Evidenzia anche le risorse che hanno raggiunto un carico critico.
apachetop
Apachetop monitora le prestazioni complessive del tuo webserver apache. È in gran parte basato su mytop. Mostra il numero attuale di letture, scritture e il numero complessivo di richieste elaborate.
ftptop
ftptop ti dà informazioni di base su tutte le connessioni ftp correnti al tuo server, come il numero totale di sessioni, quanti stanno caricando e scaricando e chi è il client.
mytop
mytop è uno strumento pulito per monitorare i thread e le prestazioni di mysql. Ti dà uno sguardo dal vivo sul database e su quali query sta elaborando in tempo reale.
powertop
powertop ti aiuta a diagnosticare i problemi che hanno a che fare con il consumo e la gestione dell’energia. Può anche aiutarvi a sperimentare con le impostazioni di gestione dell’energia per ottenere le impostazioni più efficienti per il vostro server. Si passa da una scheda all’altra con il tasto tab.
iotop
iotop controlla le informazioni sull’utilizzo dell’I/O e vi offre un’interfaccia simile a quella di Top. Mostra le colonne di lettura e scrittura e ogni riga rappresenta un processo. Visualizza anche la percentuale di tempo che il processo ha trascorso durante lo swapping e durante l’attesa di I/O.
Monitoraggio desktop
ntopng
ntopng è la prossima generazione di ntop e lo strumento fornisce un’interfaccia utente grafica tramite il browser per il monitoraggio della rete. Può fare cose come: geolocalizzare gli host, ottenere il traffico di rete e mostrare la distribuzione del traffico ip e analizzarlo.
iftop
iftop è simile a top, ma invece di controllare principalmente l’uso della cpu ascolta il traffico di rete su interfacce di rete selezionate e mostra una tabella dell’uso corrente. Può essere utile per rispondere a domande come “Perché mai la mia connessione internet è così lenta?”.
jnettop
jnettop visualizza il traffico di rete in modo molto simile a iftop. Supporta anche un output di testo personalizzabile e una modalità machine-friendly per supportare ulteriori analisi.
bandwidthd
BandwidthD traccia l’utilizzo delle sottoreti di rete TCP/IP e lo visualizza nel browser costruendo una pagina html con grafici in png. C’è un sistema basato su database che supporta la ricerca, il filtraggio, sensori multipli e rapporti personalizzati.
EtherApe
EtherApe visualizza il traffico di rete graficamente, più parla più è grande il nodo. Cattura il traffico dal vivo o può leggerlo da un tcpdump. La visualizzazione può anche essere raffinata usando un filtro di rete con sintassi pcap.
ethtool
ethtool è usato per visualizzare e modificare alcuni parametri dei controller di interfaccia di rete. Può anche essere usato per diagnosticare i dispositivi Ethernet e ottenere più statistiche dai dispositivi.
NetHogs
NetHogs suddivide il traffico di rete per protocollo o per subnet. Poi raggruppa per processo. Così se c’è un picco nel traffico di rete puoi accendere NetHogs e vedere quale processo lo sta causando.
iptraf
iptraf raccoglie una varietà di metriche come il conteggio dei pacchetti e dei byte della connessione TCP, le statistiche di interfaccia e gli indicatori di attività, la suddivisione del traffico TCP/UDP e il conteggio dei pacchetti e dei byte della stazione.
ngrep
ngrep è grep ma per il livello di rete. È consapevole del pcap e permette di specificare espressioni regolari o esadecimali estese da confrontare con i pacchetti di .
MRTG
MRTG è stato originariamente sviluppato per monitorare il traffico dei router, ma ora è in grado di monitorare anche altre cose relative alla rete. Di solito raccoglie ogni cinque minuti e poi genera una pagina html. Ha anche la capacità di inviare email di avvertimento.
bmon
Bmon monitora e aiuta a fare il debug delle reti. Cattura le statistiche relative alla rete e le presenta in un modo facile da usare. Si può anche interagire con bmon tramite curses o tramite scripting.
traceroute
Traceroute è uno strumento integrato per visualizzare il percorso e misurare il ritardo dei pacchetti attraverso una rete.
IPTState
IPTState ti permette di guardare dove va il traffico che attraversa il tuo iptables e poi ordinarlo secondo diversi criteri a tuo piacimento. Lo strumento permette anche di eliminare gli stati dalla tabella.
darkstat
Darkstat cattura il traffico di rete e calcola le statistiche di utilizzo. I rapporti sono serviti su un semplice server HTTP e fornisce una bella interfaccia grafica dei grafici.
vnStat
vnStat è un monitor del traffico di rete che utilizza statistiche fornite dal kernel che assicura un uso leggero delle risorse di sistema. Le statistiche raccolte persistono attraverso i riavvii del sistema. Ha opzioni di colore per i sysadmin artistici.
netstat
Netstat è uno strumento integrato che visualizza connessioni di rete TCP, tabelle di routing e un certo numero di interfacce di rete. È usato per trovare problemi nella rete.
ss
Invece di usare netstat, è comunque preferibile usare ss. Il comando ss è in grado di mostrare più informazioni di netstat ed è effettivamente più veloce. Se volete una statistica riassuntiva potete usare il comando ss -s
.
nmap
Nmap vi permette di scansionare il vostro server per le porte aperte o rilevare quale sistema operativo è in uso. Ma potreste anche usarlo per le vulnerabilità di SQL injection, la scoperta della rete e altri mezzi relativi ai test di penetrazione.
MTR
MTR combina la funzionalità di traceroute e lo strumento ping in un unico strumento di diagnostica di rete. Quando si usa lo strumento, esso limiterà il numero di salti che i singoli pacchetti devono percorrere, ascoltando anche la loro scadenza. Ripete questo ogni secondo.
tcpdump
tcpdump mostrerà una descrizione del contenuto del pacchetto appena catturato che corrisponde all’espressione fornita nel comando. Puoi anche salvare questi dati per ulteriori analisi.
Justniffer
Justniffer è uno sniffer di pacchetti tcp. È possibile scegliere se si desidera raccogliere dati di basso livello o di alto livello con questo sniffer. Permette anche di generare log in modo personalizzabile. Potresti per esempio imitare il log di accesso che ha apache.
Monitoraggio dell’infrastruttura
Densità del server
Il nostro strumento di monitoraggio del server! Ha un’interfaccia web che permette di impostare avvisi e visualizzare grafici per tutte le metriche di sistema e di rete. È anche possibile impostare il monitoraggio dei siti web, sia che siano attivi o inattivi. Server Density ti permette di impostare i permessi per gli utenti e puoi estendere il monitoraggio con la nostra infrastruttura di plugin o api. Il servizio supporta già i plugin Nagios.
OpenNMS
OpenNMS ha quattro aree funzionali principali: gestione degli eventi e notifiche; discovery e provisioning; monitoraggio dei servizi e raccolta dati. È progettato per essere personalizzabile per lavorare in una varietà di ambienti di rete.
SysUsage
SysUsage monitora continuamente il vostro sistema tramite Sar e altri comandi di sistema. Permette anche notifiche per allarmarvi una volta raggiunta una soglia. SysUsage stesso può essere eseguito da un luogo centralizzato dove vengono anche memorizzate tutte le statistiche raccolte. Ha un’interfaccia web dove è possibile visualizzare tutte le statistiche.
brainypdm
brainypdm è uno strumento di gestione e monitoraggio dei dati che ha la capacità di raccogliere dati da nagios o da un’altra fonte generica per fare grafici. È multipiattaforma, ha grafici personalizzati ed è basato sul web.
PCP
PCP ha la capacità di raccogliere metriche da più host e lo fa in modo efficiente. Ha anche un framework per i plugin in modo da poter fargli raccogliere metriche specifiche che sono importanti per voi. È possibile accedere ai dati dei grafici attraverso un’interfaccia web o una GUI. Ottimo per monitorare grandi sistemi.
KDE system guard
Questo strumento è sia un monitor di sistema che un task manager. È possibile visualizzare le metriche del server da diverse macchine attraverso il foglio di lavoro e se un processo ha bisogno di essere ucciso o se è necessario avviare un processo può essere fatto all’interno di KDE system guard.
Munin
Munin è sia una rete che uno strumento di monitoraggio del sistema che offre avvisi per quando le metriche vanno oltre una determinata soglia. Utilizza RRDtool per creare i grafici e ha un’interfaccia web per visualizzare questi grafici. La sua enfasi è sulle capacità plug and play con un certo numero di plugin disponibili.
Nagios
Nagios è uno strumento di monitoraggio di sistema e di rete che aiuta a monitorare molti server. Ha il supporto per gli avvisi quando le cose vanno male. Ha anche molti plugin scritti per la piattaforma.
Zenoss
Zenoss fornisce un’interfaccia web che permette di monitorare tutte le metriche di sistema e di rete. Inoltre, scopre le risorse di rete e i cambiamenti nelle configurazioni di rete. Ha degli avvisi per poter agire e supporta i plugin Nagios.
Cacti
(E uno per fortuna!) Cacti è una soluzione di grafici di rete che utilizza l’archivio dati RRDtool. Permette all’utente di eseguire il polling dei servizi a intervalli prestabiliti e di tracciare un grafico del risultato. Cacti può essere esteso per monitorare una fonte di vostra scelta attraverso script di shell.
Zabbix
Zabbix è una soluzione open source per il monitoraggio delle infrastrutture. Può utilizzare la maggior parte dei database là fuori per memorizzare le statistiche di monitoraggio. Il nucleo è scritto in C e ha un frontend in PHP. Se non ti piace installare un agente, Zabbix potrebbe essere un’opzione per te.
nmon
nmon mostra i dati sullo schermo o li salva in un file separato da virgole. È possibile visualizzare CPU, memoria, rete, filesystem, processi superiori. I dati possono anche essere aggiunti a un database RRD per ulteriori analisi.
conky
Conky monitora una pletora di diverse statistiche del sistema operativo. Ha il supporto per IMAP e POP3 e persino il supporto per molti lettori musicali popolari! Per chi è pratico, si può estendere con i propri script o programmi usando Lua.
Glances
Glances controlla il vostro sistema e mira a presentare una quantità massima di informazioni in uno spazio minimo. Ha la capacità di funzionare in modalità client/server e di monitorare in remoto. Ha anche un’interfaccia web.
saidar
Saidar è uno strumento molto piccolo che fornisce informazioni di base sulle risorse del sistema. Mostra una schermata completa delle risorse di sistema standard. L’enfasi per saidar è essere il più semplice possibile.
RRDtool
RRDtool è uno strumento sviluppato per gestire database round-robin o RRD. RRD mira a gestire dati in serie temporali come il carico della CPU, le temperature, ecc. Questo strumento fornisce un modo per estrarre i dati RRD in un formato grafico.
monit
Monit ha la capacità di inviare avvisi e di riavviare i servizi se incontrano problemi. E’ possibile eseguire qualsiasi tipo di controllo per cui si potrebbe scrivere uno script con monit e ha un’interfaccia utente web per facilitare i vostri occhi.
Linux process explorer
Linux process explorer è simile all’activity monitor per OSX o l’equivalente per Windows. Mira ad essere più usabile di top o ps. È possibile visualizzare ogni processo e vedere quanta memoria o CPU usa.
df
df è un’abbreviazione di disk free ed è un programma preinstallato in tutti i sistemi unix usato per visualizzare la quantità di spazio disponibile su disco per i filesystem a cui l’utente ha accesso.
discus
Discus è simile a df tuttavia mira a migliorare df rendendolo più grazioso usando caratteristiche di fantasia come colori, grafici e formattazione intelligente dei numeri.
xosview
xosview è un classico strumento di monitoraggio del sistema e ti dà una semplice panoramica di tutte le diverse parti dell’IRQ incluso.
Dstat
Dstat vuole essere un sostituto di vmstat, iostat, netstat e ifstat. Consente di visualizzare tutte le risorse di sistema in tempo reale. I dati possono poi essere esportati in csv. La cosa più importante è che dstat permette l’inserimento di plugin e potrebbe quindi essere esteso in aree non ancora note all’umanità.
Net-SNMP
SNMP è il protocollo ‘simple network management protocol’ e la suite di strumenti Net-SNMP ti aiuta a raccogliere informazioni accurate sui tuoi server usando questo protocollo.
incron
Incron ti permette di monitorare un albero di directory e poi agire su quei cambiamenti. Se vuoi copiare i file nella directory ‘b’ una volta che nuovi file sono apparsi nella directory ‘a’, questo è esattamente ciò che fa incron.
monitorix
Monitorix è uno strumento leggero di monitoraggio del sistema. Ti aiuta a monitorare una singola macchina e ti dà una ricchezza di metriche. Ha anche un server HTTP integrato per visualizzare i grafici e un meccanismo di segnalazione di tutte le metriche.
vmstat
vmstat o statistiche della memoria virtuale è un piccolo strumento integrato che monitora e mostra un riassunto della memoria nella macchina.
uptime
Questo piccolo comando fornisce rapidamente informazioni su quanto tempo la macchina è stata in funzione, quanti utenti sono attualmente connessi e la media di carico del sistema negli ultimi 1, 5 e 15 minuti.
mpstat
mpstat è uno strumento integrato che controlla l’uso della cpu. Il comando più comune è usare mpstat -P ALL
che vi dà l’utilizzo di tutti i core. Si può anche ottenere un aggiornamento a intervalli dell’utilizzo della CPU.
pmap
pmap è uno strumento integrato che riporta la mappa della memoria di un processo. Potete usare questo comando per trovare le cause dei colli di bottiglia della memoria.
ps
Il comando ps vi darà una panoramica di tutti i processi correnti. Potete facilmente selezionare tutti i processi usando il comando ps -A
sar
sar è una parte del pacchetto sysstat e vi aiuta a raccogliere, riportare e salvare diverse metriche di sistema. Con diversi comandi vi darà l’utilizzo di CPU, memoria e I/O tra le altre cose.
collectl
Simile a sar collectl raccoglie le metriche delle prestazioni della vostra macchina. Per impostazione predefinita mostra statistiche di CPU, rete e disco, ma raccoglie molto di più. La differenza con sar è che collectl è in grado di gestire tempi inferiori a 1 secondo, può essere inserito direttamente in uno strumento di plotting e collectl monitora i processi in modo più esteso.
iostat
iostat fa anche parte del pacchetto sysstat. Questo comando è usato per monitorare l’input/output del sistema. I rapporti stessi possono essere usati per cambiare le configurazioni del sistema per bilanciare meglio il carico di input/output tra i dischi rigidi della vostra macchina.
free
Questo è un comando integrato che visualizza la quantità totale di memoria fisica libera e usata sulla vostra macchina. Mostra anche i buffer usati dal kernel in quel dato momento.
Proc file system
Il proc file system dà una sbirciatina alle statistiche del kernel. Da queste statistiche è possibile ottenere informazioni dettagliate sui diversi dispositivi hardware della vostra macchina. Date un’occhiata all’elenco completo delle statistiche del file proc
GKrellM
GKrellm è un’applicazione gui che monitora lo stato del vostro hardware come CPU, memoria principale, dischi rigidi, interfacce di rete e molte altre cose. Può anche monitorare e lanciare un lettore di posta elettronica a vostra scelta.
Gnome system monitor
Gnome system monitor è uno strumento di base per il monitoraggio del sistema che ha funzioni che guardano le dipendenze dei processi da una vista ad albero, processi kill o renice e grafici di tutte le metriche del server.
Strumenti di monitoraggio dei log
GoAccess
GoAccess è un analizzatore di log web in tempo reale che analizza i log di accesso da apache, nginx o amazon cloudfront. È anche possibile emettere i dati in HTML, JSON o CSV. Vi darà statistiche generali, top visitors, 404s, geolocalizzazione e molte altre cose.
Logwatch
Logwatch è un sistema di analisi dei log. Analizza i log del tuo sistema e crea un rapporto analizzando le aree che specifichi. Può darvi rapporti giornalieri con brevi digest delle attività che hanno luogo sulla vostra macchina.
Swatch
Più o meno come Logwatch anche Swatch monitora i vostri log, ma invece di dare rapporti guarda le espressioni regolari e vi notifica via mail o tramite la console quando c’è una corrispondenza. Potrebbe essere usato per rilevare intrusioni, per esempio.
MultiTail
MultiTail ti aiuta a monitorare i file di log in più finestre. È possibile unire due o più di questi file di log in uno solo. Userà anche i colori per visualizzare i file di log per una lettura più facile con l’aiuto di espressioni regolari.
Monitoraggio della rete
acct o psacct
acct o psacct (a seconda se usi apt-get o yum) ti permette di monitorare tutti i comandi che un utente esegue all’interno del sistema, incluso il tempo di CPU e memoria. Una volta installato si ottiene questo riassunto con il comando ‘sa’.
whowatch
Simile ad acct questo strumento monitora gli utenti sul tuo sistema e ti permette di vedere in tempo reale quali comandi e processi stanno usando. Ti dà una struttura ad albero di tutti i processi e così puoi vedere esattamente cosa sta succedendo.
strace
strace è usato per diagnosticare, fare il debug e monitorare le interazioni tra i processi. La cosa più comune da fare è far stampare a strace una lista di chiamate di sistema fatte dal programma che è utile se il programma non si comporta come previsto.
DTrace
DTrace è il fratello maggiore di strace. Rattoppa dinamicamente le istruzioni in esecuzione dal vivo con codice di strumentazione. Questo vi permette di fare un’analisi approfondita delle prestazioni e la risoluzione dei problemi. Tuttavia, non è per i deboli di cuore, dato che c’è un libro del 1200 scritto sull’argomento.
webmin
Webmin è uno strumento di amministrazione di sistema basato sul web. Rimuove la necessità di modificare manualmente i file di configurazione unix e consente di gestire il sistema in remoto, se necessario. Ha un paio di moduli di monitoraggio che si possono collegare.
stat
Stat è uno strumento integrato per visualizzare informazioni sullo stato di file e file system. Ti darà informazioni come quando il file è stato modificato, acceduto o cambiato.
ifconfig
ifconfig è uno strumento integrato usato per configurare le interfacce di rete. Dietro le quinte gli strumenti di monitoraggio della rete usano ifconfig per impostarlo in modalità promiscua per catturare tutti i pacchetti. Potete farlo voi stessi con ifconfig eth0 promisc
e tornare alla modalità normale con
.ifconfig eth0 -promisc
ulimit
ulimit è uno strumento integrato che monitora le risorse di sistema e mantiene un limite in modo che le risorse monitorate non vadano in eccesso. Per esempio, fare un fork bomb dove c’è un ulimit correttamente configurato andrebbe benissimo.
cpulimit
CPUlimit è un piccolo strumento che monitora e poi limita l’utilizzo della CPU di un processo. È particolarmente utile per fare in modo che i lavori batch non consumino troppi cicli di CPU.
lshw
lshw è un piccolo strumento integrato che estrae informazioni dettagliate sulla configurazione hardware della macchina. Può produrre tutto, dalla versione e velocità della CPU alla configurazione della scheda madre.
w
W è un comando integrato che visualizza informazioni sugli utenti che stanno usando la macchina e i loro processi.
lsof
lsof è uno strumento integrato che ti dà una lista di tutti i file aperti e le connessioni di rete. Da lì è possibile restringere il campo ai file aperti dai processi, in base al nome del processo, da un utente specifico o forse uccidere tutti i processi che appartengono a un utente specifico.
Grazie per i vostri suggerimenti. È una svista da parte nostra che dovremo tornare indietro e rinumerare tutte le voci. Alla luce di ciò, ecco una breve sezione alla fine per alcuni degli strumenti di monitoraggio Linux raccomandati da voi:
collectd
Collectd è un demone Unix che raccoglie tutte le statistiche di monitoraggio. Utilizza un design modulare e plugin per riempire qualsiasi nicchia di monitoraggio. In questo modo collectd rimane il più leggero e personalizzabile possibile.
Observium
Observium è una piattaforma di monitoraggio di rete a scoperta automatica che supporta una vasta gamma di piattaforme hardware e sistemi operativi. Observium si concentra sul fornire un’interfaccia bella e potente ma semplice e intuitiva per la salute e lo stato della vostra rete.
Nload
È uno strumento a riga di comando che monitora il throughput della rete. È pulito perché visualizza il traffico in entrata e in uscita utilizzando due grafici e alcuni dati utili aggiuntivi come la quantità totale di dati trasferiti. Potete installarlo con
yum install nload
o
sudo apt-get install nload
SmokePing
SmokePing tiene traccia delle latenze della vostra rete e le visualizza anche. C’è una vasta gamma di plugin di misurazione della latenza sviluppati per SmokePing. Se una GUI è importante per te, c’è uno sviluppo in corso per farlo accadere.
MobaXterm
Se stai lavorando in ambiente Windows giorno dopo giorno. Potresti sentirti limitato dal terminale che Windows fornisce. MobaXterm viene in soccorso e ti permette di utilizzare molti dei comandi di terminale che si trovano comunemente in Linux. Il che vi aiuterà enormemente nelle vostre esigenze di monitoraggio!
Shinken monitoring
Shinken è un framework di monitoraggio che è una totale riscrittura di Nagios in python. Ha lo scopo di migliorare la flessibilità e la gestione di un grande ambiente. Pur mantenendo tutte le configurazioni e i plugin di Nagios.