Nagios
# Nagios

In informatica Nagios (/ˈnɑːɡiːoʊs/) è un'applicazione open source per il monitoraggio di computer e risorse di rete. La sua funzione base è quella di controllare nodi, reti e servizi specificati, avvertendo con degli alert quando questi non garantiscono il loro servizio o quando ritornano attivi.

Inizialmente noto col nome di NetSaint, distribuito sotto la versione 2 della GNU General Public License, pubblicata dalla Free Software Foundation, è stato scritto ed è attualmente mantenuto da Ethan Galstad, in origine sviluppato per Linux, ma può funzionare correttamente anche su altre varianti di Unix.

## Caratteristiche

Alcune delle funzionalità di Nagios sono:

* monitoraggio di servizi di rete (SMTP, POP3, HTTP, NNTP, ICMP, SNMP, FTP, SSH);
* monitoraggio delle risorse di sistema (carico del processore, uso dell'hard disk, log di sistema sulla maggior parte dei sistemi operativi, anche per Microsoft Windows);
* monitoraggio remoto supportato attraverso tunnel SSH o SSL;
* semplici plugin che permettono agli utenti di sviluppare facilmente nuovi controlli per i servizi in base alle proprie esigenze, usando bash, C++, Perl, Ruby, Python, PHP, C#, ecc.;
* controlli paralleli sui servizi;
* capacità di definire gerarchie di nodi di rete usando nodi "parent", permettendo la distinzione tra nodi che sono down e nodi non raggiungibili;
* notifiche quando l'applicazione riscontra problemi o la loro risoluzione (via email, cercapersone, SMS, o con altri sistemi per mezzo di plugin aggiuntivi);
* capacità di definire "event handler", ovvero azioni automatiche che vengono attivate all'apparire o alla risoluzione di un problema;
* rotazione automatica dei file di log;
* supporto per l'implementazione di monitoring ridondante;
* interfaccia web opzionale per la visualizzazione dell'attuale stato, notifiche, storico dei problemi, file di log, ecc.

## Significato del nome

N.A.G.I.O.S. è un acronimo ricorsivo di "Nagios Ain't Gonna Insist On Sainthood". È un riferimento al nome originale del software, NetSaint, che fu cambiato per via di problemi di marchi.

## Agenti

Sul sistema remoto viene installato un agente che Nagios interroga periodicamente. Esistono diversi tipi di agenti.

### NRPE

Nrpe (Nagios Remote Plugin Executor) è un agente di Nagios per l'esecuzione di controlli remoti sui sistemi Unix-like, come per esempio l'uso dello spazio disco, il carico di sistema o il numero di utenti attualmente connessi. Il server interroga l'agente mediante lo specifico plugin (check_nrpe).

### NSClient++

Questo programma viene usato principalmente per monitorare macchine con sistema operativo Windows. Installato su un sistema remoto NSClient++ ascolta la porta TCP 12489. Il plugin Nagios che viene usato per raccogliere le informazioni da questo agente si chiama check_nt. Come per NRPE, NSClient++ permette di tenere sotto controllo i cosiddetti 'servizi privati' (uso della memoria, carico di CPU, uso del disco, processi in esecuzione, ecc.) e passarli all'host Nagios remoto che poi viene configurato per avvertire di eventuali problemi relativi ai parametri letti o della mancata connettività con l'agente.

