Una volta installato Icinga, è possibile monitorare il sistema tramite interfaccia web; per impostazione predefinita è limitato al monitoraggio della macchina locale su cui è installato Icinga. Se desideri monitorare il box remoto Linux o il box Windows, devi avere il plug-in Nagios e il componente aggiuntivo NRPE installati sul box remoto. Una volta installato il plugin e il componente aggiuntivo, è necessario configurare il server Icinga per raccogliere le informazioni dalla macchina remota e visualizzarle sull'interfaccia web.
Se devi ancora installare Icinga; visita il post di Installazione di Icinga su Ubuntu 14.10, con icinga puoi monitorare i servizi remoti in due modi.
- Monitoraggio dei servizi pubblici,
- Monitoraggio utilizzando il componente aggiuntivo NRPE.
Monitoraggio dei servizi pubblici:
Icinga supporta il monitoraggio di servizi pubblici come HTTP, POP3, IMAP, FTP e SSH, poiché questi servizi non richiedono requisiti di accesso speciali. Per servizi pubblici si intende che sono accessibili tramite intra-rete o Internet, questi servizi sono utilizzati principalmente da noi su base giornaliera.
Con l'uso di plugin, possiamo estendere le possibilità di monitoraggio ad applicazioni e protocolli specifici delle nostre esigenze. In questo tutorial, monitoreremo sia il servizio http che ssh del server web. Iniziamo con la creazione del file di configurazione, tutti i nuovi file di configurazione dovrebbero essere creati in /etc/icinga/objects.
Puoi sostituire il nome del file (itzgeek.cfg) con il nome del file a tua scelta, deve terminare con .cfg.
$ sudo nano /etc/icinga/objects/itzgeek.cfg
Sostituisci host_name e indirizzo in base alle tue esigenze, inserisci il tuo hostname e indirizzo IP rispettivamente nei campi host_name e address.
define host{ use generic-host ; Name of host template to use host_name itzgeek.com alias My Web Server address 23.229.xxx.xxx } define service { host_name itzgeek.com service_description HTTP check_command check_http use generic-service } # check that ssh services are running define service { host_name itzgeek.com service_description SSH check_command check_ssh use generic-service }
Al termine, riavvia il servizio icinga.
$ sudo service icinga restart
Controlla lo stato del servizio nell'interfaccia web, dovresti vedere l'host appena aggiunto nel portale.
Monitoraggio utilizzando il componente aggiuntivo NRPE:
Icinga non raccoglie da solo statistiche private dell'host remoto, per superare questo; l'host remoto deve avere il componente aggiuntivo installato. Il componente aggiuntivo NRPE raccoglierà i dati e il server icinga li raccoglierà. Per fare ciò, installeremo il componente aggiuntivo NRPE sull'host remoto e configureremo il server icinga per raccogliere i dati.
Aggiorna i repository apt.
$ sudo apt update
Installa i plugin NRPE e nagios.
$ sudo apt install nagios-plugins nagios-nrpe-server
Modifica il /etc/nagios/nrpe.cfg sull'host remoto, contiene l'argomento del comando per controllare il servizio sull'host remoto. Il file nrpe.cfg contiene i comandi di base per controllare i servizi remoti, di seguito sono riportate le righe di comando per controllare il carico della cpu e il processo in esecuzione. Check_hda1 e check_total_procs devono essere inseriti nel file modello sull'host del server per consentire il monitoraggio.
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1 command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200
Nota: Durante la configurazione di check_hda1, modificarlo in base al layout del disco dell'host remoto. Nel mio caso, è necessario monitorare / montare il punto che è /dev/sda6; la voce seguente dovrà essere impostata in /etc/nagios/nrpe.cfg sull'host remoto.
command[check_sda6]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda6
Nel comando precedente -w sta per avviso mentre -c sta per avviso critico. Ad esempio, se esegui il secondo comando sul terminale, verificherà il processo in esecuzione; avviserà quando il processo è superiore a 150 o segnalerà critico quando il processo è superiore a 200 e allo stesso tempo dirà OK se il processo è inferiore a 150.
$ /usr/lib/nagios/plugins/check_procs -w 150 -c 200 PROCS OK: 17 processes | procs=17;150;200;0;
Modificare l'avviso su 15 e critico su 150 a scopo di test, poiché il processo in esecuzione sul server è molto inferiore. Ora puoi vedere il messaggio di avviso, in base alle tue esigenze puoi modificarlo.
$ /usr/lib/nagios/plugins/check_procs -w 15 -c 200 PROCS WARNING: 17 processes | procs=17;15;200;0;
Non dimenticare di controllare il seguente parametro nel file, questo per garantire che il servizio funzioni sulla porta corretta.
server_port=5666
Se hai più schede di rete, configuralo per fare in modo che un servizio sia in ascolto su una particolare scheda di rete.
server_address=192.168.12.9
Aggiungi l'ip dei server icinga in allowed_hosts, se questo parametro è impostato; solo i server icinga elencati possono connettersi a questo host.
allowed_hosts=192.168.12.6
Il server Icinga deve poter passare gli argomenti della riga di comando, quindi imposta dont_blame_nrpe su 1.
dont_blame_nrpe=1
Una volta modificato, riavvia il server NRPE.
$ sudo /etc/init.d/nagios-nrpe-server restart
Conferma che l'ascolto NRPE.
$ sudo netstat -antup | grep 5666 tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 7333/nrpe tcp6 0 0 :::5666 :::* LISTEN 7333/nrpe
Configura server Icinga:
Ora è il momento di configurare il server Icinga per monitorare il client remoto, dovrai installare nrpe-plugin.
$ sudo apt-get install nagios-nrpe-plugin
Verifica la versione del server NRPE dell'host remoto.
$ sudo /usr/lib/nagios/plugins/check_nrpe -H 192.168.12.9 NRPE v2.15
Crea il nuovo file di configurazione (/usr/local/icinga/etc/objects/remote.cfg) per definire l'host e la definizione del servizio.
sudo nano /etc/icinga/objects/remote.cfg
È possibile utilizzare il seguente modello, modificare in base alle proprie esigenze, quanto segue è configurato per visualizzare il carico della CPU, lo spazio su disco, gli utenti correnti.
define host{ use generic-host host_name remote.itzgeek.com alias My Remote Ubuntu Server address 192.168.12.9 } define service{ use generic-service host_name remote.itzgeek.com service_description Root Partition check_command check_nrpe_1arg!check_sda6 } define service{ use generic-service host_name remote.itzgeek.com service_description Current Users check_command check_nrpe_1arg!check_users } define service{ use generic-service host_name remote.itzgeek.com service_description Total Processes check_command check_nrpe_1arg!check_total_procs } define service{ use generic-service host_name remote.itzgeek.com service_description Current Load check_command check_nrpe_1arg!check_load }
Riavvia il server icinga.
$ sudo /etc/init.d/icinga restart
Monitoraggio della macchina remota:
Ora accedi all'interfaccia web e inizia a monitorare. Lo screenshot seguente mostra il server Linux remoto con il servizio predefinito disponibile.
È tutto. Ora puoi monitorare facilmente la macchina remota con Icinga.