NetSaint: una soluzione OpenSource per il network
monitoring
Paolo Lo Re [[email protected]]
Giuseppe Sava [[email protected]]
Gennaro Tortone [[email protected]]
Padova – Dicembre 2001
IntroNetSaint è un’applicazione OpenSource scritta in C per il network monitoring
Supporta “ufficialmente” Linux anche se esistono porting per *BSD, Compaq True64, AIX, SCO, Solaris, IRIX, HP-UX
last stable release: 0.0.6
last beta release: 0.0.7b7
Ottobre 2001: NetSaint cambia nome in Nagios (www.nagios.org)
Caratteristiche monitoraggio dei servizi di rete
(SMTP, POP3, NNTP, HTTP, ecc.) monitoraggio delle risorse degli host
(CPU load, spazio disco, ecc.) possibiltà di creare “gerarchie di host” definendo dei
“parent host” in modo da rilevare eventuali “host irrangiungibili”
possibilità di definire dei “contacts” da notificare (via email, SMS, etc.) in caso di problemi con host e/o servizi
possibilità di definire degli “event handlers” da eseguire su host remoti in caso di problemi con dei servizi
interfaccia web per monitorare lo status degli host e dei servizi, cronologia dei problemi e delle notifiche, ecc.
Caratteristiche monitoraggio tramite l’esecuzione di plugin possibilità di definire degli account abilitati alla
consultazione di alcune sezioni dell’interfaccia web per il controllo selettivo di host e/o servizi
Novita’ nella versione 0.0.7 supporto per il logging degli eventi in database tramite
PostgreSQL interprete Perl integrato
ArchitetturaPlugins
NetSaint non include all’interno del suo codice i meccanismi di controllo dei servizi e degli host
esistono dei programmi esterni (chiamati plugins) che svolgono questo compito
NetSaint esegue un plugin specificato nella definizione di un host o di un servizio, interpreta i valori di ritorno e intraprende le azioni opportune (notifiche, event handler, ecc.)
Architettura
Architettura Pro
questa architettura estremamente modulare rende possibile il monitoraggio di qualsiasi servizio o risorsa incoraggiando lo sviluppo di routine personalizzate che restituiscano valori di controllo appropriati alla logica di NetSaint (es. controllo della temperatura in un locale, ecc.)
Control’unico svantaggio e’ che NetSaint non ha assolutamente idea di cosa stiamo monitorando; non e’ possibile produrre dei grafici relativi alle “misure” effettuate dai plugins; tali rappresentazioni possono prendere in considerazione solo i “cambiamenti di stato” effettuati dal servizio o dalla risorsa nel tempo.
ArchitetturaEvent handlers
Un event handler e’ un comando che viene eseguito da NetSaint quando avviene un cambiamento di stato per un host o un servizio. Esistono due tipi di event handlers:
event handlers per servizi event handlers per host
Inoltre e’ anche possibile definire degli event handlers globali che vengono eseguiti da NetSaint per ogni cambiamento di stato relativo ad un host o ad un servizio.
ArchitetturaControllo “indiretto” di host e servizi
ci sono diverse risorse da monitorare che non sono “pubbliche” come i servizi di rete, come ad esempio lo spazio libero su un hard disk, il carico della CPU, ecc. Queste risorse non possono essere monitorate senza l’installazione di un “agente” sull’host da controllare.
i checks che richiedono l’utilizzo di un agente remoto sulla macchina da monitorare vengono chiamati “controlli indiretti”.
Essi sono utili per: monitorare risorse “locali” (utilizzo del disco, numero di utenti
collegati) di un host remoto monitorare servizi e host localizzati dietro un firewall
ArchitetturaL’immagine seguente mostra il funzionamento di un check indiretto mediante l’utilizzo di un addon chiamato NRPE (NetSaint Remote Plugin Executor)
L’host NetSaint esegue un plugin chiamato check_nrpe che si interfaccia via rete con l’agente NRPE il quale lancia il plugin direttamente sull’host remoto e comunica i risultati ottenuti.
Esiste anche NRPEP che possiede le stesse funzionalità di NRPE, ma e’ scritto in Perl e utilizza le librerie Crypt-TripleDES 0.24 e Digest-MD5 2.09 per crittografare lo scambio di informazioni tra host NetSaint e host remoto.
ArchitetturaControllo “passivo” di host e servizi
A partire dalla versione 0.0.6 NetSaint e’ in grado di raccogliere i risultati dei check provenienti dai plugins che vengono eseguiti su host remoti.
I check “passivi” sono utili per: monitorare servizi e host localizzati dietro un firewall monitorare servizi “asincroni” (SNMP traps, security alerts,
ecc.);
Quando un’applicazione esterna compie un check scrive (in un determinato formato) i risultati dell’esecuzione nel file netsaint.cmd. Periodicamente NetSaint effettua la raccolta dei risultati presenti nel file e li elabora secondo la logica di controllo.
Architettura
Se l’applicazione che invia i risultati dei controlli “passivi” risiede sullo stesso host di NetSaint, allora puo’ scrivere direttamente nel file netsaint.cmd. Viceversa, se l’applicazione risiede su un host remoto, esiste un addon, chiamato NSCA (NetSaint Service Check Acceptor), che viene installato sulla macchina NetSaint e sull’host remoto. Il daemon presente sull’host NetSaint autentica le connessioni provenienti dai client remoti, accetta i risultati che vengono trasmessi e li scrive direttamente nel file netsaint.cmd
Addons disponibili NEAT (NetSaint Easy Administration Tool)
Neat è un interfaccia web per l’amministrazione di NetSaint. Consente di aggiungere, modificare ed eliminare, in maniera semplice ed intuitiva, host e servizi dai file di configurazione di NetSaint
NRPE (NetSaint Remote Plugin Executor)Nrpe è un agente che permette di eseguire plugin su host remoti. Può essere eseguito sull’host da monitorare sia in daemon-mode che mediante inetd. E’ anche disponibile la versione in Perl che crittografa il traffico in transito (NRPEP)
NSCANsca consente di inviare, da un host remoto, i risultati dell’esecuzione locale dei plugin al server NetSaint
Proposte di utilizzo
NetSaint come possibile tool di network monitoring della GRID
raggiungibilità host risoluzione automatica fault servizi tramite event-handler disponibilità dei servizi Globus (GRIS, GIIS, GSIFTP,
Gatekeeper) notifiche sullo stato delle risorse
NetSaint come possibile tool di LAN monitoring di host e servizi all’interno delle sezioni INFN
Riferimenti
http://netsaint.sourceforge.nethome page del progetto NetSaint
http://netsaintplug.sourceforge.nethome page del progetto di sviluppo dei plugins
http://www.na.infn.it/compreso/netsaint/netsaint.pdfguida all’installazione in italiano (alpha release)