Nagios è un'applicazione popolare e open source utilizzata per il monitoraggio continuo di sistemi, reti, servizi e applicazioni. Monitora costantemente lo stato delle macchine e dei vari servizi. In caso di problemi, fornisce un avviso anticipato in modo che l'amministratore possa intraprendere le azioni necessarie. Nagios esegue tutti i controlli sulle macchine locali e host utilizzando i programmi esterni noti come plug-in. Fornisce inoltre un'interfaccia Web che consente di visualizzare lo stato di host e servizi, la cronologia, i registri e la generazione di report.
In questo post, spiegheremo come installare e configurare Nagios su Linux e monitorare lo stato di salute di altri server Linux. Useremo i due server Debian 10 (Buster); entrambi sulla stessa rete. Sul server di monitoraggio, installeremo il core di Nagios, il plug-in Nagios e il plug-in check_nrpe. Sull'host remoto, installeremo il plug-in Nagios e NRPE.
Terminologie
Comprendiamo alcune terminologie che ti aiutano a capire le configurazioni:
Ospite :è un dispositivo che deve essere monitorato come una macchina fisica, una workstation o un dispositivo di rete.
Servizio :è il servizio o la risorsa monitorata sull'host come HTTP, SMTP, POP, DNS, numero di utenti che hanno effettuato l'accesso, utilizzo della memoria, ecc.
Plugin Nagios: Si tratta di script che controllano lo stato di un host o di un servizio e ne verificano il corretto funzionamento. Esistono alcuni plug-in predefiniti che possono controllare le risorse di base come il carico del processore, l'utilizzo del disco, le velocità di ping, ecc. I plug-in si trovano solitamente in /usr/local/nagios/libexec directory.
Componente aggiuntivo NRPE (Nagios Remote Plugin Executor): Il componente aggiuntivo NRPE esegue i plug-in sugli host Linux remoti che quindi consente a Nagios di tenere d'occhio le risorse locali (spazio su disco, utilizzo della memoria, ecc.). Il componente aggiuntivo NRPE comprende:
- Demone NRPE – Funziona su host Linux/Unix remoti che devono essere monitorati
- plug-in check_nrpe – Viene utilizzato dal server di monitoraggio Nagios
Devi disporre dei privilegi sudo su entrambi i server. I dettagli delle nostre macchine sono i seguenti:
Server di monitoraggio Nagios:
- Nome host:nagios-server,
- Indirizzo IP:192.168.72.158
Ospite di Nagios:
- Nome host:cliente
- Indirizzo IP:192.168.72.159
Passaggio 1:installazione di Nagios Core su Monitoring Server
Sul server di monitoraggio di Nagios, segui i passaggi seguenti per scaricare e installare il core di Nagios.
1. Installazione dei prerequisiti
Innanzitutto, dovremo installare i Prerequisiti sul server di monitoraggio di Nagios. Per fare ciò, aggiorna l'elenco dei pacchetti usando il comando seguente in Terminale:
$ sudo apt update
Quindi installa i pacchetti richiesti:
$ sudo apt install -y autoconf gcc libc6 make wget unzip apache2 php libapache2-mod-php7.4 libgd-dev openssl libssl-dev
2. Scarica la fonte di Nagios
Vai a /tmp directory:
$ cd /tmp
Quindi scarica il codice sorgente di Nagios usando wget comando. Scaricheremo l'ultima versione attualmente disponibile di Nagios che è 4.4.6 . Puoi visitare i download di Nagios per cercare la versione stabile corrente.
$ wget -O nagios.tar.gz https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.6.tar.gz
Il file scaricato verrà salvato come nagios.tar.gz nel /tmp directory.
3. Sorgente di compilazione
Estrai l'archivio scaricato nagios.tar.gz utilizzando il comando seguente:
$ tar -xzf nagios.tar.gz
Sposta nella cartella estratta utilizzando il cd comando:
$ cd nagioscore-nagios-4.4.6/
Esegui la configura script e specifica il percorso della directory di configurazione del server Apache:
$ ./configure --with-httpd-conf=/etc/apache2/sites-enabled
Una volta eseguito lo script di configurazione, vedrai il seguente riepilogo alla fine dell'output:
La tua configurazione lo script potrebbe non riuscire in caso di mancanza di un prerequisito. In tal caso, installa i prerequisiti mancanti ed esegui di nuovo lo script.
Ora compila Nagios usando il comando seguente:
$ fai tutto
4. Crea utente e gruppo
Ora crea utente e gruppo per Nagios.
$ sudo make install-groups-users
Il comando precedente creerà un utente di sistema e un gruppo Nagios.
Dovremo anche aggiungere l'utente "www-data ” ai nagios gruppo.
$ sudo usermod -a -G nagios www-data
5. Installazione di binari
Quindi per installare i binari, usa il comando seguente:
$ sudo make install
6. Installa servizio/daemon
Per installare i file di servizio, usa il comando seguente:
$ sudo make install-daemoninit
7. Installa la modalità di comando
Per installare e configurare il file di comando esterno, utilizzare il comando seguente:
$ sudo make install-commandmode
8. Installa i file di configurazione
Quindi, per installare la configurazione di esempio di Nagios, utilizzare il comando seguente:
$ sudo make install-config
9. Installa i file di configurazione di Apache
Questo installa i file di configurazione di Apache, usa il comando seguente:
$ sudo make install-webconf
Ora abilita i moduli Apache usando i comandi seguenti:
$ sudo a2enmod riscrivi
sudo a2enmod cgi
Crea un account utente Nagiosadmin per l'interfaccia web:
Ora creeremo un account utente Apache che può accedere all'interfaccia web di Nagios.
$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Ora imposta la password per nagiosadmin account utente. Questa password verrà utilizzata per accedere all'interfaccia web di Nagios.
Quindi riavvia Apache per rendere effettive le modifiche alla configurazione:
$ sudo systemctl riavvia apache2
Ora abbiamo installato con successo il core engine di Nagios.
Fase 2:installazione del plug-in Nagios su Monitoring Server
Affinché il core di Nagios funzioni correttamente, dovrai installare il plug-in Nagios.
Scarica il plug-in Nagios
Sul server Nagios, vai a /tmp directory:
$ cd /tmp
Quindi scarica il codice sorgente del plug-in Nagios utilizzando wget comando. Scaricheremo l'ultima versione attualmente disponibile del plug-in Nagios che è 2.3.3. Puoi visitare la pagina Github per trovare la versione stabile recente.
$ wget -O Nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.3.3/nagios-plugins-2.3.3.tar. gz
Il file scaricato verrà salvato come Nagios-plugins.tar.gz nel /tmp directory.
Compila
Estrai l'archivio scaricato Nagios-plugins.tar.gz utilizzando il comando seguente:
$ tar zxf nagios-plugins.tar.gz
Passa alla cartella estratta utilizzando il cd comando:
$ cd nagios-plugins-2.3.3/
Esegui la configura sceneggiatura:
$ sudo ./configure
Ora compila il plug-in Nagios usando il comando seguente:
$ sudo make
$ sudo make install
Fase 3 – Installazione del plug-in check_nrpe su Monitoring Server
Ora installeremo check_nrpe plug-in sul nostro server Nagios.
Scarica sorgente plug-in
Sul server Nagios, vai a /tmp directory:
$ cd /tmp
Quindi scarica il codice sorgente check_nrpe usando il comando wget. Scaricheremo la recente versione disponibile di check_nrpe che è 4.0.3. Puoi visitare la pagina Github per trovare la versione stabile recente.
$ wget -O Nagios-nrpe.tar.gz https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz
Il file scaricato verrà salvato come Nagios-nrpe.tar.gz nel /tmp directory.
Compilazione della fonte
Estrai l'archivio scaricato nagios.tar.gz utilizzando il comando seguente:
$ tar -xzf Nagios-nrpe.tar.gz
Passa alla cartella estratta utilizzando il cd comando:
$ cd nrpe-4.0.3/
Esegui la configura sceneggiatura:
$ sudo ./configure
Ora compila il check_nrpe utilizzando il comando seguente:
$ sudo make check_nrpe
$ sudo make install-plugin
Fase 4 – Configurazione di Nagios
Ora configureremo il file di configurazione principale di Nagios. Modifica il file di configurazione di Nagios nagios.cfg utilizzando il comando seguente:
$ sudo nano /usr/local/nagios/etc/nagios.cfg
Ora trova la riga sottostante nel file e decommenta rimuovendo il # carattere dall'inizio della riga.
#cfg_dir=/usr/local/nagios/etc/servers
La riga sopra specifica la directory che contiene un file di configurazione per tutti gli host che il server Nagios controllerà. Ora salva e chiudi il file di configurazione.
Ora creeremo la directory nel percorso sopra definito:
$ sudo mkdir /usr/local/nagios/etc/servers
Configura contatti e-mail
Ora configureremo i contatti che dovrebbero essere notificati in caso di eventi. Modifica la configurazione dei contatti di Nagios utilizzando il comando seguente:
Per ricevere avvisi dal server di monitoraggio di Nagios, dovrai configurare i contatti. Apri i contatti file di configurazione e specifica l'indirizzo email a cui desideri ricevere le email da Nagios:
$ sudo nano /usr/local/nagios/etc/objects/contacts.cfg
Nella direttiva email, sostituisci [email protected]localhost con il tuo indirizzo email, quindi salva e chiudi il file.
Configura check_nrpe
Ora per utilizzare check_nrpe plug-in, aggiungeremo un nuovo comando nel comando file di configurazione. Modifica il file di configurazione del comando commands.cfg utilizzando il comando seguente:
$ sudo nano /usr/local/nagios/etc/objects/commands.cfg
Aggiungi le seguenti righe alla fine di commands.cfg file, quindi salvalo e chiudilo:
definisci comando{
nome_comando check_nrpe
riga_comando $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
Ora avvia il servizio Nagios:
$ sudo systemctl avvia Nagios.service
Fase 5 – Accesso all'interfaccia web di Nagios
Ora accedi all'interfaccia web di Nagios visitando il seguente indirizzo in qualsiasi browser web:
http://nagios-server-ip/nagios
Nel nostro scenario, sarebbe:
http://192.168.72.158/nagios
Nella sezione Autenticazione richiesta finestra di dialogo, digita nagiosadmin come nome utente e password impostati in precedenza.
Una volta effettuato l'accesso all'interfaccia web, vedrai la pagina web predefinita di Nagios. Vai a Host scheda dalla barra laterale sinistra per visualizzare gli host monitorati.
Al momento, vedrai solo un host "localhost ” che è il server Nagios stesso. Per monitorare altri host, dovrai installare NRPE demone su di loro.
Fase 6 – Configurazione host remoto
Ora dovrai installare il plug-in Nagios e NRPE sugli host che devono essere monitorati sul server Nagios.
1. Installa il plug-in Nagios sull'host remoto
Nell'host remoto (client) che deve essere monitorato, segui i passaggi seguenti per installare il plug-in Nagios.
1. Innanzitutto, aggiorna l'apt:
$ sudo apt update
2. Quindi emettere il comando seguente per installare i pacchetti richiesti:
$ sudo apt install autoconf gcc libmcrypt-dev make libssl-dev dc build-essential gettext
3. Ora vai a /tmp e scarica il plugin Nagios.
$ cd /tmp
$ wget -O Nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.3.3/nagios-plugins-2.3.3.tar. gz
4. Estrarre l'archivio scaricato:
$ tar -zxf nagios-plugins.tar.gz
5. Spostarsi nella cartella estratta ed eseguire la configura sceneggiatura:
$ cd nagios-plugins-2.3.3//
$ sudo ./configure
6. Compila il plugin:
$ sudo make
$ sudo make install
2. Installa il demone NRPE sull'host remoto
Segui i passaggi seguenti per installare NRPE sull'host remoto.
1. Innanzitutto, aggiorna l'apt:
$ sudo apt update
2. Immettere il comando seguente per installare i prerequisiti:
$ sudo apt install -y autoconf automake gcc libc6 libmcrypt-dev make libssl-dev
3. Ora vai a /tmp e scarica NRPE.
$ cd /tmp
$ wget -O nrpe.tar.gz https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar. gz
4. Estrarre l'archivio scaricato:
$ tar xzf nrpe.tar.gz
5. Sposta nella cartella estratta ed esegui lo script di configurazione:
$ sudo ./configure --enable-command-args
6. Compilare l'NRPE con i seguenti comandi:
$ sudo fai tutto
$ make install-groups-users
$ sudo make install
$ sudo make install-config
$ sudo make install-init
3. Configura Firewall
Ora se un firewall è in esecuzione sul tuo host remoto, dovrai aprire la porta 5666 (usata da NRPE) attraverso di esso.
$ sudo ufw allow 5666/tcp
4. Aggiorna configurazione NRPE
Ora apri il file di configurazione NRPE nell'host remoto:
$ sudo nano /usr/local/nagios/etc/nrpe.cfg
Dovrai trovare e modificare le voci seguenti:
Aggiungi l'indirizzo IP del client:
server_address=192.168.72.159
Aggiungi indirizzo IP del server Nagios:
allowed_hosts=127.0.0.1,192.168.72.158
Inoltre, sostituisci /dev/vda1 con il tuo file system di root:
comando[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1
Quindi avvia il servizio NRPE:
$ sudo systemctl start nrpe.service
Ora controlla se il servizio NRPE funziona correttamente:
$ sudo systemctl status nrpe.service
L'attivo (in esecuzione) nell'output seguente mostra che il servizio viene eseguito correttamente senza problemi. Puoi anche vedere che NRPE consente la connessione da 192.168.72.158 che è l'indirizzo IP del server Nagios.
Ora per verificare se il check_nrpe sul server Nagios può comunicare con NRPE sull'host remoto , emetti questo comando sul server Nagios :
$ /usr/local/nagios/libexec/check_nrpe -H ip_host_remoto
Dovresti ricevere il seguente output simile (numero di versione NRPE).
Passaggio 7:aggiungi la configurazione dell'host al server Nagios
Ora nel server di monitoraggio di Nagios, dovrai creare file di configurazione separati in /usr/local/nagios/etc/servers / per tutti gli host remoti che devi monitorare.
Per la nostra macchina host, creeremo un nuovo file di configurazione client.cfg :
$ sudo nano /usr/local/nagios/etc/servers/client.cfg
Sostituisci cliente con il nome del tuo host:
Ora aggiungi la definizione host al nuovo file di configurazione sostituendo il valore di nome_host con il nome host remoto, alias con una breve descrizione e l'indirizzo con l'indirizzo IP dell'host remoto.
Questa configurazione verificherà se la macchina host è attiva o inattiva.
define host {
use linux-server
host_name client
alias client machine
indirizzo 192.168 .72.159
max_check_attempts 5
}
Ora aggiungi la definizione del servizio al file di configurazione per il monitoraggio dell'host remoto. Sostituisci il valore di nome_host con il nome host remoto.
Nota: Queste definizioni di servizio utilizzeranno i comandi preconfigurati in /usr/local/nagios/etc/nrpe.cfg file sull'host remoto.
Aggiungi il seguente blocco di servizi per monitorare il carico della CPU sull'host remoto
definisci servizio {
usa generic-service
host_name client
service_description Carico CPU
check_command check_nrpe! check_load
}
c sull'host remoto:
definisci servizio{
usa generic-service
host_name client
service_description Processi totali
check_command check_nrpe! check_total_procs
}
Aggiungi il seguente blocco di servizi per monitorare l'utilizzo del disco sull'host remoto:
define service {
use generic-service
host_name client
service_description Check Disk
check_command check_nrpe!check_disk
}
Aggiungi il seguente blocco di servizi per monitorare il numero di utenti acceso attualmente sull'host remoto:
define service {
use generic-service
nome_host client
service_description Utenti correnti
check_command check_nrpe!checkbr_ }/>Ora salva e chiudi il file di configurazione.
Riavvia il servizio Nagios per applicare le modifiche alla configurazione:
$ sudo systemctl riavvia NagiosOra accedi all'interfaccia web usando http://nagios-server-ip/nagios. Attendi qualche istante e il tuo host remoto verrà aggiunto all'interfaccia web di Nagios.
Vai a Host dalla barra di navigazione a sinistra e vedrai il tuo host remoto elencato lì.
Quindi vai a i Servizi scheda e vedrai lo stato di tutti i servizi per un host che hai configurato per il monitoraggio.
In questo post abbiamo spiegato come installare e configurare la soluzione di monitoraggio Nagios su Linux. Abbiamo anche spiegato come configurare host remoti per il monitoraggio. Ora puoi monitorare facilmente lo stato di salute degli host Linux e dei servizi in esecuzione su di essi.
Fai clic qui se sei interessato a monitorare i tuoi server con Zabbix.