In questi giorni ho visto in maniera un po più approfondita collectd, un ottimo tool per collezionare dati statistici su vari aspetti del nostro server Linux.
Da Wikipedia : collectd è un demone UNIX che raccoglie, trasferisce e conserva i dati relativi alle prestazioni di computer ed apparecchiature di rete. I dati acquisiti servono agli amministratori di sistema di mantenere una visione d’insieme delle risorse disponibili al fine di individuare le strozzature esistenti o incombenti.
La prima versione del demone è stata scritta nel 2005 da Florian Forster ed è stata ulteriormente sviluppata come progetto free open-source. Altri sviluppatori hanno scritto miglioramenti ed estensioni per il software che sono stati poi inseriti nel progetto. La maggior parte dei file del codice sorgente sono rilasciati sotto i termini della GNU General Public License, versione 2 (GPLv2), i restanti file sono rilasciati sotto altre licenze open source ”
Perché collectd?
Ci sono altri progetti open source e liberi che sono simili a collectd – un po’ di link sono elencati alla fine dell’articolo. Allora perché si dovrebbe utilizzare collectd? Ci sono alcune differenze chiave in collectd. Uno, è scritto in C per prestazioni e portabilità, il suo funzionamento è garantito su sistemi privi di linguaggi di scripting o del demone cron, come i sistemi embedded. Allo stesso tempo, include ottimizzazioni e funzionalità per gestire centinaia di migliaia di set di dati. Viene fornito con oltre 90 plug-in che vanno da casi standard a temi molto specialistici ed avanzati. Fornisce funzionalità di rete potenti ed è estendibile in molti modi. Ultimo ma non meno importante: collectd è attivamente sviluppato e supportato e ben documentato.
Funzionalità
Tutto in collectd è fatto in plugins. Beh, tranne il parsing del configfile. Ciò significa che il demone principale non ha dipendenze esterne e dovrebbe funzionare su quasi tutto ciò che è vagamente POSIX. Il demone è stato segnalato come funzionate su Linux, Solaris, Mac OS X, FreeBSD, NetBSD, e OpenBSD. E’ probabile che funzioni anche in altre tipologie di UNIX®.
valori di default ragionevoli
La configurazione di collectd è mantenuta il più semplice possibile: oltre che i moduli da caricare non è necessario configurare nessuna altra cosa, ma è possibile personalizzare il demone a proprio piacimento se si vuole ..
Costruito per scalare
collectd è in grado di gestire qualsiasi numero di host, da uno a diverse centinaia (o forse migliaia, ma nessuno lo ha riferito ancora). Questo risultato è ottenuto utilizzando le risorse in maniera più efficiente possibile, e.g. facendo più aggiornamenti RRD in un’unica operazione di aggiornamento, unendo il maggior numero possibile di valori in ogni pacchetto di una rete e così via. Il layout multithreaded permette di interrogare più plugin simultaneamente – senza incorrere in problemi dovuti a latenze di IO.
supporto SNMP
Il Simple Network Management Protocol (SNMP) è largamente utilizzato con varie apparecchiature di rete, per esempio switch, router, sistemi di monitoraggio di rack, termometri, gruppi di continuità, e così via. Il plugin SNMP fornisce un’interfaccia generica al protocollo SNMP che è possibile utilizzare per ricercare i valori ed inviarli sui meccanismi di collectd, E.g. trasmetterli a un’istanza del server da qualche altra parte.
integrazione con soluzioni di monitoraggio
Con la versione 4.3 il concetto delle notifiche e delle soglie è stato aggiunto a collectd. Questo vi permette di inviare le notifiche attraverso il demone e permette semplici verifiche di soglie. Tuttavia, collectd non è una soluzione di monitoraggio. Ci sarà probabilmente da aggiungere alcune caratteristiche per rendere il sistema di notifica più fruibile, ma al momento collectd non può competere con una soluzione di monitoraggio sofisticata.
Per rendere possibile l’integrazione di collectd con Nagios, una popolare soluzione di monitoraggio, un “check” è stato scritto per questo. Si chiama collectd-nagios e consente di utilizzare Nagios per monitorare se certi valori sono stati raccolti e se sono in una gamma adeguata.
Esempi di plugins
CPU
Il CPU plugin raccoglie la quantità di tempo speso dalla CPU in vari stati, in particolare l’esecuzione di codice utente, l’esecuzione di codice di sistema, in attesa di IO-operazioni e di inattività.
Questo è diventata una FAQ: Il CPU plugin non raccoglie percentuali. Raccoglie “jiffies”, le unità di scheduling. Su molti sistemi Linux ci sono circa 100 jiffies in un secondo, ma questo non significa che finirà con una percentuale.
Apache
Il plugin Apache interroga la pagina generata da mod_status, il modulo di stato del server web Apache, lo analizza ed invia il numero di byte trasferiti, il numero di richieste ricevute, ed il numero di processi nei vari stati dello scoreboard.
Memoria
Il plugin sulla memoria raccoglie l’utilizzo della memoria fisica.
I valori riportatisono quelli dal loro uso da parte del sistema operativo. Sotto Linux, le categorie sono le seguenti:
* Used
* Buffered
* Cached
* Free
Il plugin GenericJMX legge i Managed Beans (MBeans) da un MBeanServer usando JMX. Il plugin è scritto in Java e richiede il plugin Java per funzionare.
Le Java Management Extensions (JMX) è un framework generico per fornire informazioni ed eseguire query di gestione. L’interfaccia viene utilizzata dalla Java Virtual Machine (JVM) per fornire informazioni circa la memoria usata, threads e così via. Questi valori di prestazioni di base possono quindi essere raccolti per ogni processo di Java senza alcun supporto dal processo di Java stesso.
MySQL
Il plugin MySQL si connette a un database MySQL e invia un comando SHOW STATUS periodicamente. Il comando restituisce le variabili di stato del server, molti dei quali sono raccolti. Il plugin è stato testato con successo con le versioni di MySQL 4 e 5.
Riferimenti:
Sito principale di Collectd
Progetti simili
Di seguito è riportato un elenco di progetti simili a collectd e una breve nota su come essi differiscono da collectd. Progetti che si concentrano sul monitoraggio e fanno un po’ di misurazione delle performance non sono in questa lista.
- Ganglia
Si focalizza sul supercalcolo e statistiche base dei sistemi. - Munin
I dati sono raccolti forkando/eseguendo i plugin (scripts). - eLuna Graph System
Scritto in Perl; funziona con cron; solo su sistema locale..
Popular Posts:
- None Found
This solution is really immature. it doesn’t have proper documentation alos… I am disappointed 🙁
Sorry, but i disagree with that collectd it’s a mature open source project, for documentation you can start from their homepage:
http://collectd.org/documentation.shtml
Every plugin has his own setup and documentation and you can easily have a standard configuration working in not much time. Where do you have found difficulties ?