Mar 032011
 

collectd 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à

Modularità / Portabilitàcollectd

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

Plugin-cpu

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

Java_memory_eden_spaceGenericJMX

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:

Flattr this!

  2 Responses to “Collectd, statistiche di performance su sistemi Linux”

  1. 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 ?

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

*