26 novembre 2020

Nagios e monitoraggio Windows

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

  1. interrogare direttamente le macchine in modalità 'attiva', 
  2. 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

E' tutto abbastanza regolare, la cosa importante è seguire una guida specifica per la salsa e revisone di Linux che avete scelto. Molti scelgono Centos o Debian, nel mio caso ho usato Ubuntu 18 LTS.
 
Vedi:
Dopo Nagios è necessario installare i suoi plugin.
Vedi:   

Lato Windows: installazione NCPA

Nulla di più semplice. Scaricate l'ultimo installer e seguite il 'wizard'. 
Segnatevi la chiave di sicurezza (il 'token') che avete scelto per far comunicare le due parti, dovrete usarla nella configurazione di Nagios.

Lato Nagios: installazione client/plugin NCPA

Dovrete aggiungere a Nagios il plugin o client, in python, per parlare in NCPA.  
Si chiama 'check_ncpa.py' e si scarica a parte.
 
Dopo l'installazione, verificate il funzionamento del plugin:
  1. portatevi nella cartella del plugin
  2. 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:
  3. ./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:

  1. Configurazione generale di Nagios. File nagios.cfg. Abilitare il monitoraggio Windows.
  2. Configurazione dei comandi, in objects/commands.cfg. Aggiunta del comando ncpa
  3. 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!  

ISS control center

Lato Nagios: installazione NRDP

Se volete il monitoraggio passivo, dovrete scaricare anche il plugin per NRDP. Si scarica e si installa a parte. 
 
Sorgenti e istruzioni di installazione: https://github.com/NagiosEnterprises/nrdp
 
Segnatevi la chiave di sicurezza (token) utilizzata. Vi servirà per la configurazione in Windows.

Verificate che la pagina web di NRDP sia attiva, e che il token sia corretto.

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

Se è andato tutto bene finora,  i messaggi di Windows dovrebbero arrivare a Nagios. Ma Nagios non sa cosa farsene.
Per verificare, controllate il log di Nagios per vedere se segnala i messaggi di provenienza ignota:

grep 'Error: Got' /usr/local/nagios/var/nagios.log 
 
Se trovate le segnalazioni, siamo a cavallo.
Per far 'digerire' questi messaggi, dobbiamo aggiungere alla configurazione di Nagios:

Riferimenti 

Sorgenti ed eseguibili per Nagios:
Sorgenti ed eseguibili di NCPA. Alla data del post, la versione era la 2.2.2 di giugno 2020.
Descrizione del plugin NCPA per i controlli in modalità attiva, in particolare per Windows:
Spiegazione complessiva dell'utilizzo di NCPA in modalità passiva:
Traccia dettagliata di alcune operazioni di configurazione descritte sopra:

Per coloro che vogliono assolutamente continuare ad usare NSClient++, la documentazione:

2 commenti:

  1. è possibile con nagios monitorare dispositivi remoti che non sono sulla stessa rete ma geolocalizzati in posti differenti. Per esempio un IT deve monitorare diversi device sia in sede che fuori (senza vpn)
    Grazie.

    RispondiElimina
  2. Assolutamente sì. Però valuta bene le implicazioni di sicurezza nella comunicazione via internet. I rischi sono vari e ramificati, tra apertura di porte, validazione degli attori, possibili attacchi per buchi non documentati o non rappezzati e caduta dei collegamenti. Vedi questa domanda su SO: https://serverfault.com/questions/353098/is-nagios-monitoring-over-wan-ideal

    RispondiElimina