Un post veramente lungo, dedicato agli amministratori di rete. Da leggere solo in caso di bisogno!
Nagios è un complesso sistema di monitoraggio di risorse informatiche, cioè un programma che interroga o riceve messaggi sullo stato dei computer e dispositivi sulla rete e le aggrega in un unico posto.
La sola visualizzazione sarebbe utile, ma insufficiente. La vera forza dei sistemi di monitoraggio è quella di avvisare il responsabile di sistema di eventuali malfunzionamenti o stress dei dispositivi monitorati, cosa che normalmente avviene tramite email.
Chiaramente è meglio avere il sistema di monitoraggio su una macchina diversa da quelle che si vogliono controllare, perché, normalmente, non si guastano contemporaneamente. Inoltre sarà improbabile che il monitoraggio interferisca con altri processi produttivi, ma rimarrà un "osservatore esterno", distaccato e imparziale.
Nagios è disponibile in versione a pagamento, denominata 'Nagios XI' e nella versione gratuita, 'Nagios Core', che è la versione di cui mi sto segnando alcuni appunti.
Premetto subito che, se installare Nagios Core non è complesso, questo non si può dire per la sua configurazione. Infatti, la semplicità di configurazione la potete avere in cambio della licenza della versione a pagamento.Nagios è pensato per essere installato su Linux, ma, evidentemente, è attrezzato per dialogare via rete con svariati dispositivi, usando protocolli e linguaggi diversi.
Nel 2016 ...
Nel 2016 avevo installato Nagios Core su Centos7 per monitorare dei server Windows, utilizzando NSClient++, un 'agente' gratuito per Windows, che vorrebbe parlare con Nagios attraverso il protocollo NRPE (Nagios Remote Plugin Executor).
Quattro anni dopo le cose sono abbastanza cambiate.
NSClient++ è ancora disponibile, ma l'ultima versione risale al 2018.
NRPE è sconsigliato o 'deprecated', e riceve solo aggiornamenti per la sicurezza. Nonostante questo troverete sul web diverse pagine recenti che vi guidano nell'installazione di NRPE e NSClient.
As of NRPE version 4.0.1, this project is deprecated.
Qual'è la strada attualmente consigliata per il monitoraggio di macchine Windows da Nagios Core?
Nel 2020
Dalle indicazioni di Nagios e dallo stato di sviluppo delle varie librerie su GitHub, ho capito che il sistema più aggiornato si chiama NCPA, o Nagios Cross-Platform Agent.
La documentazione Nagios è molto chiara:
NSClient++ is one of many agents that can be used to monitor Windows devices. [...] However, for ease of use and greater functionality, Nagios Enterprises recommends using a multi-platform agent called NCPA
Installando NCPA su Windows, Nagios ha due possibilità:
- interrogare direttamente le macchine in modalità 'attiva',
- ricevere in maniera 'passiva', dei bollettini periodici, utilizzando il protocollo NRDP, o Nagios Remote Data Processor.
Vediamo un po' in dettaglio alcuni passaggi e collegamenti a pagine web con istruzioni o specifiche dettagliate.
Lato Nagios: installazione Nagios
Lato Windows: installazione NCPA
Lato Nagios: installazione client/plugin NCPA
- portatevi nella cartella del plugin
- eseguite:
./check_ncpa.py -H <indirizzo server> -t <mytoken> -M 'system/agent_version'
Se funziona potete chiedere a NCPA l'elenco di tutte le voci che può inviare: ./check_ncpa.py -H <indirizzo server> -t mytoken --list
Lato Windows: configurazione NCPA attivo
Istruzioni per la configurazione di NCPA attivo: i default dovrebbero andare bene nella maggior parte dei casi. Segnatevi la chiave di sicurezza (API token) che vi servirà nella configurazione di Nagios.
Ricordatevi di riavviare i servizi NCPA a conclusione delle modifiche dei file di configurazione
Lato Nagios: configurazione Nagios + NCPA
Qui cominciano i dolori. Dovete armarvi di pazienza, e imparare a muovervi tra i file e le cartelle di Nagios. Dovete imparare cosa sono i 'template' o modelli, che vi faranno risparmiare un po' di ripetizioni (voce 'use' dei file di configurazione).
I passaggi, a grandi linee, sono:
- Configurazione generale di Nagios. File nagios.cfg. Abilitare il monitoraggio Windows.
- Configurazione dei comandi, in objects/commands.cfg. Aggiunta del comando ncpa
- Configurazione dei server (host) e delle voci di monitoraggio (services) per ciascun server. File objects/windows.cfg
Se tutto va bene, ad un certo punto, nella schermata di Nagios dovreste vedere delle bellissime righe verdi in corrispondenza del vostro host e relativi servizi, magari con delle informazioni realistiche sull'occupazione disco e carico CPU.
In bocca al lupo!
Lato Nagios: installazione NRDP
Lato Windows: configurazione NRDP passivo
- Istruzioni per la configurazione dei controlli passivi (in inglese).
- Cartella /etc
- Troverete un file preconfigurato e uno di esempio.
- Importante: impostare l'URL di destinazione dei messaggi (server Nagios/nrpd)
- vedi (in inglese) https://www.nagios.org/ncpa/help/2.2/passive.html
- Riavviate i servizi NCPA a conclusione delle modifiche dei file di configurazione
Lato Nagios: configurazione NRDP passivo
- un comando, che non è un comando ('dummy' o 'farlocco')
check_dummy
nel file commands.cfg . Il nome del comando è specifico. - dei modelli di host e service, nel file templates.cfg
- in windows.cfg le macchine (host) e le voci (service) da monitorare in modalità passiva
- vedi https://support.nagios.com/kb/article/nrdp-passive-host-and-service-definitions-762.html
Riferimenti
- Plugin di Nagios: https://github.com/nagios-plugins/nagios-plugins/releases
- eseguibili: https://www.nagios.org/ncpa/#docs
- il progetto NCPA su GitHub: https://github.com/NagiosEnterprises/ncpa
Per coloro che vogliono assolutamente continuare ad usare NSClient++, la documentazione:
- https://assets.nagios.com/downloads/nagiosxi/docs/Installing-The-Windows-Agent-NSClient++-for-Nagios-XI.pdf
- https://docs.nsclient.org/web/
- Consiglio vivamente di non utilizzare NRPE ma 'check_nt', semplice e insicuro, ma funzionale