Guida Configurare Nagios con Nconf
Nagios
Nagios è uno dei sistemi di monitoraggio (NMS o network monitoring system) più famosi, nasce nel 1999 e ha licenza open source.
La configurazione a linea di comando rende l'integrazione abbastanza complessa, per questo motivo sono state ideate molte interfacce web per la configurazione.
Prima su tutte Nconf, che permette di definire la maggior parte dei check normalmente necessari.
Struttura directory
La configurazione di Nagios nei sistemi “Debian like” è posizionata in /etc/nagios3
o /etc/nagios4
.
In questo esempio utilizzeremo per comodità Nagios3, le configurazioni sono comunque compatibili con la versione superiore.
Nella /etc/nagios3/conf.d/
possiamo trovare gli host di esempio.
Le configurazioni dei plugin di monitoraggio proprie di Nagios in /etc/nagios-plugins/config
.
Tutto questo è definito nel file principale: /etc/nagios3/nagios.cfg
.
Nagios carica le definizioni nelle directory in modo ricorsivo di host, commands, timeperiod ecc. presenti.
Feature disponibili
Parte delle feature disponibili in Nagios Core includono:
- Monitoring dei servizi di rete (SMTP, POP3, HTTP, NNTP, PING, etc.)
- Monitoring delle risorse degli host (load, CPU usage, disk usage, etc.)
- Plugin di monitoraggio
- Abilità di definire una gerarchia di usando i parent
- Notifiche
- Interfaccia web opzionale per vedere gli stati e i problemi
Nconf
Nconf è un'interfaccia web dedicata alla creazione delle configurazioni di Nagios.
Tramite Nconf possiamo definire host, servizi, gruppi, periodi di notifica, utenti, check e template, testare eventuali errori di configurazione ed effettuare il deploy della configurazione su un server Nagios in maniera sicura e senza il bisogno di riavviare il servizio.
È inoltre possibile visualizzare uno storico delle modifiche effettuate.
Tramite l’utilizzo e l’applicazione di template e gruppi di host è possibile applicare in maniera automatica tutte le proprietà dei template a tutti i membri del gruppo.
Aggiungere un host
Tramite Nconf possiamo visualizzare gli host presenti e aggiungerne di nuovi. Proviamo ad esempio ad aggiungere google.com con l’indirizzo 8.8.8.8.
Clicchiamo Host add, definiamo l’hostname (in questo caso google.com), l’address (8.8.8.8), utilizziamo l’host preset generic-switch
e il max check attempts che definisce quanti check effettuare prima di cambiare lo stato dell’host.
A questo punto possiamo fare il submit dell’host.
Ci verrà richiesto se aggiungere dei servizi collegati che per ora non utilizzeremo.
L’host è pronto e necessita di essere caricato nella configurazione di Nagios.
Deploy
Si occupa di verificare la configurazione e di fare il reload nel nostro server Nagios.
Per prima cosa generiamo la configurazione tramite l’apposito link sulla barra principale.
Nella pagina che si aprirà vedremo un box nel quale è presente il syntax check che ci riporta eventuali errori e warning.
Controllati questi errori e warning, potremo rendere operativa la configurazione e visualizzare gli host e i servizi sul nostro server di monitoraggio.
Priorità applicazione template
La seguente sequenza illustra l’ordine di precedenza degli attributi applicati agli host (lo stesso ordine si applica ai servizi):
- La priorità più alta si ha negli attributi definiti nel host o nel servizio direttamente
- Attributi definiti in template:
- Direttamente collegata a un host o a un servizio
- Collegata a un servizio tramite il
checkcommand
- Collegata a un host o servizio tramite il
notification_period
- Collegata a un host o servizio tramite il
check_period
- Collegata a un host o servizio tramite un collector / monitor, (in situazioni di monitoraggio distribuito)
Template
Tramite le template possiamo definire degli “standard” da applicare agli host con caratteristiche simili come ad esempio linux-server
, che applica un intervallo di check ogni 5 minuti, la notifica durante le workhours
e il check-host-alive
.
Checkcommands
In questa sezione troviamo i plugin di monitoraggio, che si occuperanno di effettuare fisicamente il test sull’host specificato nella configurazione.
Sono presenti alcuni già specificati, in questo caso 19, ed è possibile definirne altri tramite l’interfaccia.
In Debian e Ubuntu sono situati in: /usr/lib/nagios/plugins
.
I plugin utilizzati vengono richiamati da questa cartella dalle impostazioni di Nagios.
Services
I servizi ci permettono di definire il tipo di check da utilizzare, dargli un nome, definire l’intervallo fra un test e l’altro e i parametri del check. Questo poi sarà applicato a un host da monitorare.
Servicegroups
Sono unità logiche nelle quali suddividere gli host, ad esempio web-services
tutti quegli host che hanno un check_http
.
Contacts e Contactgroups
In questa sezione possiamo definire contatti e gruppi di contatti a cui notificare i failure di servizi e host.
Parents
Per evitare notificazioni doppie o multiple, è possibile definire dei parent (genitori) in modo da avere la notifica solo del nodo superiore nel caso questo impedisca di raggiungere il sottostante in una struttura ad albero.