Monitoraggio IT · 20 min read · Nov 09, 2025
Come installare e configurare Nagios su Rocky Linux 9

Nagios è uno dei sistemi di monitoraggio open-source più popolari e potenti. Monitora la tua infrastruttura IT e mantiene le tue reti, server, applicazioni e processi in funzione senza problemi. Con un sistema di monitoraggio, puoi rilevare i problemi prima che si verifichino e risolverli rapidamente per risparmiare costi e tempi di inattività.
Questo tutorial ti insegna come installare e configurare Nagios su un server Rocky Linux 9. Faremo anche alcune configurazioni di base e installeremo il Nagios Remote Plugin Executor (NPRE), che ci consente di monitorare host remoti.
Prerequisiti
- Un server che esegue Rocky Linux 9.
- Un utente non sudo con privilegi di root.
- SELinux è disabilitato. Per questo tutorial, anche se mantieni SELinux abilitato, funzionerebbe senza problemi. Ma a seconda dei monitor Nagios che utilizzi, dovrai configurare SELinux o sarà meglio tenerlo disabilitato.
- Un altro server che esegue Rocky Linux 9 che desideri monitorare.
- Assicurati che tutto sia aggiornato.
$ sudo dnf update
Passo 1 - Configurare il Firewall
Il primo passo è configurare il firewall. Il server Rocky Linux viene fornito con il firewall Firewalld.
Controlla se il firewall è in esecuzione.
$ sudo firewall-cmd --state
Dovresti ottenere il seguente output.
running
Controlla i servizi/porte attualmente consentiti.
$ sudo firewall-cmd --permanent --list-services
Dovrebbe mostrare il seguente output.
dhcpv6-client mdns ssh
Consenti le porte HTTP e HTTPS.
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
Controlla di nuovo lo stato del firewall.
$ sudo firewall-cmd --permanent --list-services
Dovresti vedere un output simile.
dhcpv6-client http https mdns ssh
Ricarica il Firewall.
$ sudo firewall-cmd --reload
Passo 2 - Installare Apache e PHP
Per eseguire Nagios, avrai bisogno di Apache insieme a PHP installato.
Installa e abilita il servizio Apache.
$ sudo dnf install httpd
$ sudo systemctl enable httpd
Per installare PHP, utilizzeremo il Remi Repository. Installa Remi Repo e abilita PHP 8.1.
$ sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.1 -y
Installa PHP e diversi moduli PHP comuni.
$ sudo dnf install -y php php-gd php-curl
Verifica l’installazione di PHP.
$ php --version
PHP 8.1.16 (cli) (built: Feb 14 2023 18:59:41) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.16, Copyright (c) Zend Technologies
with Zend OPcache v8.1.16, Copyright (c), by Zend Technologies
Abilita PHP e avvia il servizio.
$ sudo systemctl enable --now php-fpm
Riavvia il servizio Apache affinché la modifica abbia effetto.
$ sudo systemctl restart httpd
Puoi controllare l’installazione di Apache e PHP creando un file info.php nella directory /var/www/html che è stata creata dall’installatore di Apache.
$ sudo nano /var/www/html/info.php
Incolla il seguente codice nell’editor.
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Apri l’URL http:// nel tuo browser e dovresti essere accolto dalla seguente pagina.

Passo 3 - Installare Nagios
La maggior parte di questo tutorial richiederà di installare e lavorare sul tuo server principale.
Installa le Dipendenze
Questo tutorial richiederà che Nagios e i suoi plugin siano costruiti dalla sorgente. Pertanto, è necessario installare prima alcune librerie di sviluppo. Abbiamo bisogno anche del repository EPEL, ma è stato installato automaticamente con il repository Remi nel passaggio precedente, quindi possiamo saltarlo qui.
$ sudo dnf install gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel unzip wget gettext autoconf net-snmp-utils postfix automake perl-Net-SNMP
Scarica Nagios
Scarica l’ultima versione dalla pagina delle release di GitHub di Nagios. Al momento del tutorial, 4.4.10 è l’ultima versione disponibile. Modifica il comando nel caso tu voglia una versione diversa.
$ cd ~
$ sudo wget -O nagios.tar.gz https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-4.4.10/nagios-4.4.10.tar.gz
Estrai il file tar.
$ sudo tar zxf nagios.tar.gz
Sposta la directory estratta nella directory /usr/src.
sudo mv nagios-4.4.10 /usr/src/nagios
Passa alla directory /usr/src/nagios.
$ cd /usr/src/nagios
Compila Nagios
Il passo successivo è compilare Nagios dai suoi file sorgente. Esegui lo script configure per eseguire controlli per assicurarti che tutte le dipendenze siano presenti.
$ sudo ./configure
Dovresti ottenere un output simile dopo il completamento con successo dello script.
* Riepilogo della configurazione per nagios 4.4.10 2023-01-17 *:
Opzioni generali:
-------------------------
Eseguibile Nagios: nagios
Utente/gruppo Nagios: nagios,nagios
Utente/gruppo comando: nagios,nagios
Broker eventi: sì
Installa ${prefix}: /usr/local/nagios
Installa ${includedir}: /usr/local/nagios/include/nagios
File di blocco: /run/nagios.lock
Directory risultati di controllo: /usr/local/nagios/var/spool/checkresults
Directory Init: /lib/systemd/system
Directory conf.d di Apache: /etc/httpd/conf.d
Programma di posta: /usr/sbin/sendmail
OS host: linux-gnu
Metodo IOBroker: epoll
Opzioni interfaccia web:
------------------------
URL HTML: http://localhost/nagios/
URL CGI: http://localhost/nagios/cgi-bin/
Traceroute (utilizzato da WAP):
Controlla le opzioni sopra per accuratezza. Se sembrano a posto,
tipa 'make all' per compilare il programma principale e i CGI.
Inizia la compilazione.
$ sudo make all
Crea Utente e Gruppo Nagios
Crea un nuovo utente e gruppo che eseguirà il processo Nagios.
$ sudo make install-groups-users
Dovresti vedere il seguente output.
groupadd -r nagios
useradd -g nagios nagios
Aggiungi l’utente apache al gruppo nagios.
$ sudo usermod -a -G nagios apache
Installa i Binaries di Nagios
Esegui il seguente comando per installare i binaries di Nagios, i CGI e i file HTML.
$ sudo make install
Crea Directory per Comandi Esterni
Nagios può elaborare comandi da applicazioni esterne e per questo ha bisogno di una directory da impostare.
$ sudo make install-commandmode
/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/var/rw
chmod g+s /usr/local/nagios/var/rw
* Directory comandi esterni configurata *
Installa i File di Configurazione di Nagios
Installa i file di configurazione di esempio.
$ sudo make install-config
Installa i File di Configurazione di Apache
Esegui il seguente comando per installare i file di configurazione di Apache.
$ sudo make install-webconf
Riavvia il server web per attivare la configurazione.
$ sudo systemctl restart httpd
Crea un File di Servizio Systemd
Esegui il seguente comando per installare un file unit systemd.
$ sudo make install-daemoninit
Abilita l’Autenticazione HTTP
Puoi bloccare l’interfaccia web di Nagios tramite autenticazione HTTP. Esegui il seguente comando per utilizzare htpasswd per creare l’utente. Ti verrà chiesto di inserire una password.
$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Nuova password:
Re-inserisci la nuova password:
Aggiunta password per l'utente nagiosadmin
Il nome predefinito per l’utente è nagiosadmin. Puoi utilizzare un altro nome utente sostituendo tutte le istanze di nagiosadmin nel file /usr/local/nagios/etc/cgi.cfg con il nome utente preferito. Oppure puoi aggiungere il nome utente utilizzando una virgola come segue.
authorized_for_system_information=nagiosadmin, username1
authorized_for_configuration_information=nagiosadmin, username1
authorized_for_system_commands=nagiosadmin, username1
authorized_for_all_services=nagiosadmin, username1
authorized_for_all_hosts=nagiosadmin, username1
authorized_for_all_service_commands=nagiosadmin, username1
authorized_for_all_host_commands=nagiosadmin, username1
Puoi aggiungere utenti con accesso in sola lettura abilitando la seguente configurazione nel file rimuovendo l’hash (#) davanti ad essa. Quindi, esegui htpasswd con il nome utente.
authorized_for_read_only=username2
Riavvia il server affinché la configurazione abbia effetto.
$ sudo systemctl restart httpd
Passo 4 - Installare i Plugin di Nagios
Installa i prerequisiti richiesti per i plugin di Nagios.
$ sudo dnf install epel-release
$ sudo dnf install -y gcc glibc glibc-common make gettext automake autoconf wget openssl-devel net-snmp net-snmp-utils postgresql-devel openldap-devel bind-utils samba-client fping openssh-clients lm_sensors perl-Net-SNMP
Scarica l’ultima versione dalla pagina GitHub dei plugin di Nagios. Al momento del tutorial, 2.4.3 è l’ultima versione disponibile. Modifica il comando nel caso tu voglia una versione diversa.
$ cd ~
$ sudo wget -O nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.4.3/nagios-plugins-2.4.3.tar.gz
Estrai il file tar.
$ sudo tar zxf nagios-plugins.tar.gz
Sposta la directory estratta nella directory /usr/src.
$ sudo mv nagios-plugins-2.4.3 /usr/src/nagios-plugins
Torna alla directory /usr/src/nagios-plugins.
$ cd /usr/src/nagios-plugins
Esegui i seguenti comandi per compilare e installare i plugin.
$ sudo ./configure
$ sudo make
$ sudo make install
Passo 5 - Installare il Plugin check_nrpe
Scarica l’ultima versione dalla pagina delle release di NRPE su GitHub. Al momento della scrittura di questo tutorial, l’ultima versione disponibile è 4.1.0. Modifica il seguente comando nel caso tu voglia una versione diversa.
$ cd ~
$ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.1.0/nrpe-4.1.0.tar.gz
Estrai l’archivio.
$ tar zxf nrpe-*.tar.gz
Sposta la directory estratta nella directory /usr/src.
$ sudo mv nrpe-4.1.0 /usr/src/nrpe
Passa alla directory /usr/src/nrpe.
$ cd /usr/src/nrpe
Configura e installa il plugin.
$ sudo ./configure
$ sudo make check_nrpe
$ sudo make install-plugin
Questo posizionerà il plugin check_nrpe nella directory /usr/local/nagios/libexec/.
Passo 6 - Avviare Nagios
Con Nagios e i plugin installati, è tempo di avviare il servizio Nagios.
$ sudo systemctl start nagios
Controlla lo stato del servizio per vedere se è in esecuzione correttamente.
$ sudo systemctl status nagios
Interfaccia Web di Nagios
Apri l’URL http:// nel tuo browser. Dovresti vedere un prompt di accesso.
Inserisci le credenziali che hai creato durante il metodo di autenticazione HTTP e dovresti essere accolto dalla seguente schermata.

Passo 7 - Monitorare gli Host
Per monitorare un host, devi installare il demone NRPE e i plugin di Nagios sull’host. Monitoreremo un server Rocky Linux 9 dal nostro server Nagios.
Accedi al tuo host.
$ ssh user@monitored_server_ip
Installa i Plugin di Nagios
Installa i plugin di Nagios ripetendo il passaggio 4 di prima.
Installa NRPE
Installa i prerequisiti richiesti per il demone NRPE.
$ sudo dnf install -y gcc glibc glibc-common openssl openssl-devel perl wget
Scarica NRPE.
$ cd ~
$ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.1.0/nrpe-4.1.0.tar.gz
Estrai l’archivio.
$ tar zxf nrpe-*.tar.gz
Sposta la directory estratta nella directory /usr/src.
$ sudo mv nrpe-4.1.0 /usr/src/nrpe
Cambia nella directory NRPE.
$ cd /usr/src/nrpe
Configura e installa NRPE.
$ sudo ./configure --enable-command-args
$ sudo make all
Crea l’Utente e il gruppo.
$ sudo make install-groups-users
Installa i Binaries di NRPE, il demone NRPE e il plugin check_npre.
$ sudo make install
Installa i file di configurazione.
$ sudo make install-config
Aggiorna il file dei servizi. Il file /etc/services viene utilizzato per tradurre i nomi dei servizi in numeri di porta.
$ sudo sh -c "echo >> /etc/services"
$ sudo sh -c "sudo echo '# Servizi Nagios' >> /etc/services"
$ sudo sh -c "sudo echo 'nrpe 5666/tcp' >> /etc/services"
Installa il demone di servizio NPRE.
$ sudo make install-init
$ sudo systemctl enable nrpe
Devi aggiornare il file di configurazione NPRE situato in /usr/local/nagios/etc/nrpe.cfg.
Apri il file per la modifica.
$ sudo nano /usr/local/nagios/etc/nrpe.cfg
Per impostazione predefinita, NPRE ascolta le richieste solo dal localhost (127.0.0.1). Devi aggiungere l’indirizzo IP del tuo server Nagios al file.
allowed_hosts=127.0.0.1,10.25.5.2
L’opzione seguente determina se il demone NPRE consentirà ai client di specificare argomenti di comando. Consenti l’opzione inserendo il valore come 1 che abilita configurazioni avanzate di NPRE.
dont_blame_nrpe=1
Successivamente, mentre scorri verso il basso, troverai un elenco di comandi NRPE con le loro definizioni. Tutti sono commentati. Devi decommentarli affinché Nagios possa usarli.
Ogni comando può accettare argomenti. Alcuni dei comandi hanno argomenti hardcoded davanti a loro mentre alcuni possono accettare argomenti dall’utente. Ogni comando può avere le seguenti opzioni di notifica.
- W sta per stati di servizio di avviso
- C sta per stati di servizio critici
- R sta per notificare il recupero del servizio (stati OK)
Quindi, puoi specificare a quale livello quale tipo di notifica un comando può inviare. Non entreremo nella descrizione dettagliata e nella funzione di ciascuno dei comandi poiché sono al di fuori dello scopo di questo tutorial.
# I seguenti esempi utilizzano argomenti di comando hardcoded...
# Questo è di gran lunga il metodo più sicuro per utilizzare NRPE
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -r -w .15,.10,.05 -c .30,.25,.20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
# I seguenti esempi consentono argomenti forniti dall'utente e possono
# essere utilizzati solo se il demone NRPE è stato compilato con supporto per
# argomenti di comando *E* la direttiva dont_blame_nrpe in questo
# file di configurazione è impostata su '1'. Questo comporta un potenziale rischio per la sicurezza, quindi
# assicurati di leggere il file SECURITY prima di farlo.
### METRICHE DI SISTEMA MISC ###
command[check_users]=/usr/local/nagios/libexec/check_users $ARG1$
command[check_load]=/usr/local/nagios/libexec/check_load $ARG1$
command[check_disk]=/usr/local/nagios/libexec/check_disk $ARG1$
command[check_swap]=/usr/local/nagios/libexec/check_swap $ARG1$
command[check_cpu_stats]=/usr/local/nagios/libexec/check_cpu_stats.sh $ARG1$
command[check_mem]=/usr/local/nagios/libexec/custom_check_mem -n $ARG1$
### SERVIZI GENERICI ###
command[check_init_service]=sudo /usr/local/nagios/libexec/check_init_service $ARG1$
command[check_services]=/usr/local/nagios/libexec/check_services -p $ARG1$
### AGGIORNAMENTI DI SISTEMA ###
command[check_yum]=/usr/local/nagios/libexec/check_yum
#command[check_apt]=/usr/local/nagios/libexec/check_apt
### PROCESSI ###
command[check_all_procs]=/usr/local/nagios/libexec/custom_check_procs
command[check_procs]=/usr/local/nagios/libexec/check_procs $ARG1$
### FILE APERTI ###
command[check_open_files]=/usr/local/nagios/libexec/check_open_files.pl $ARG1$
### CONNESSIONI DI RETE ###
command[check_netstat]=/usr/local/nagios/libexec/check_netstat.pl -p $ARG1$ $ARG2$
Decommenta i comandi sopra rimuovendo il simbolo # davanti a loro. Puoi decommentare quanti più comandi desideri.
Aggiungi il seguente comando per controllare lo spazio su disco della root.
command[check_root]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /
Una volta terminato, salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Consenti la porta 5666 che viene utilizzata dal plugin NPRE.
$ sudo firewall-cmd --permanent --add-port=5666/tcp
Ricarica il firewall.
$ sudo firewall-cmd --reload
Avvia NPRE.
$ sudo systemctl start nrpe
Tutti i comandi da qui in poi verranno eseguiti sul server Nagios principale a meno che non sia specificato diversamente.
Controlla se NRPE sta funzionando eseguendo il seguente comando sul tuo server Nagios principale.
$ /usr/local/nagios/libexec/check_nrpe -H monitored_server_ip
Dovresti vedere il seguente output.
NRPE v4.1.0
Per monitorare gli host, dovrai creare file di configurazione per ogni host che desideri monitorare. Questi host diventeranno quindi accessibili tramite l’interfaccia web di Nagios.
Crea la directory per memorizzare i file di configurazione e dai le giuste autorizzazioni.
$ sudo mkdir /usr/local/nagios/etc/servers
$ sudo chown -R nagios:nagios /usr/local/nagios/etc/servers
$ sudo chmod g+w /usr/local/nagios/etc/servers
Apri il file di configurazione di Nagios /usr/local/nagios/etc/nagios.cfg per la modifica.
$ sudo nano /usr/local/nagios/etc/nagios.cfg
Trova il seguente file e decommenta rimuovendo il # davanti ad esso.
cfg_dir=/usr/local/nagios/etc/servers
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Il passo successivo è aggiungere il comando check_nrpe al file /usr/local/nagios/etc/objects/commands.cfg in modo che possa essere utilizzato per monitorare gli host.
Apri il file /usr/local/nagios/etc/objects/commands.cfg per la modifica.
$ sudo nano /usr/local/nagios/etc/objects/commands.cfg
Incolla il seguente codice alla fine del file.
define command {
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$ $ARG2$
}
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Crea un nuovo file di configurazione per l’host remoto nella directory /usr/local/nagios/etc/servers/.
$ sudo nano /usr/local/nagios/etc/servers/yourhost.cfg
Aggiungi il seguente codice sostituendo il valore host_name con il nome host remoto, il valore alias con la descrizione del tuo host e il valore address con l’indirizzo IP del tuo host remoto.
define host {
use linux-server
host_name monitored_server_host_name
alias My client server
address monitored_server_private_ip
max_check_attempts 5
check_period 24x7
notification_interval 30
notification_period 24x7
}
Con questa configurazione, Nagios ti informerà quando l’host è attivo o inattivo. Dovrai aggiungere più servizi per monitorare ulteriori cose.
Aggiungi il seguente blocco per controllare le statistiche di connessione per l’host.
define service {
use generic-service
host_name monitored_server_host_name
service_description PING
check_command check_ping!200.0,20%!400.0,90%
}
Aggiungi il seguente blocco per monitorare il carico medio del tuo server.
define service {
use generic-service
host_name monitored_server_host_name
service_description Load average
check_command check_nrpe!check_load!-a '-w 0.7,0.6,0.5 -c 0.9,0.8,0.7'
}
La direttiva use generic-service dice a Nagios di ereditare da un modello chiamato generic-service predefinito da Nagios.
Successivamente, aggiungi un blocco per monitorare l’uso del disco. Modifica il comando con le etichette del disco appropriate.
define service {
use generic-service
host_name monitored_server_host_name
service_description /dev/vda1 free space
check_command check_nrpe!check_disk!-a '-w 20% -c 10% -p /dev/vda1'
}
Monitora SSH utilizzando il seguente blocco. Il seguente blocco controllerà il server SSH e genererà un avviso se il server non risponde entro 5 secondi.
define service {
use generic-service
host_name monitored_server_host_name
service_description SSH Version Check
check_command check_ssh!-t 5
}
Controlliamo il numero totale di processi in esecuzione.
define service{
use generic-service
host_name monitored_server_host_name
service_description Total Processes
check_command check_nrpe!check_total_procs
}
Controlla gli utenti attualmente connessi.
define service{
use generic-service
host_name monitored_server_host_name
service_description Current Users
check_command check_nrpe!check_users!-a '-w 5 -c 10'
}
Controlla l’uso del disco SWAP.
define service{
use generic-service
host_name monitored_server_host_name
service_description SWAP Usage
check_command check_nrpe!check_swap!-a '-w 40% -c 20%'
}
Controlla la partizione root e il suo utilizzo del disco.
define service{
use generic-service
host_name nagiosclient
service_description Root / Partition
check_command check_nrpe!check_disk!-a '-w 20% -c 10% -p /'
}
Controlla se un server HTTP è installato.
define service {
use generic-service
host_name nagiosclient
service_description HTTP
check_command check_http
}
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Riavvia Nagios.
$ sudo systemctl restart nagios
Controlla i Monitor
Apri il tuo cruscotto Nagios e fai clic sull’opzione Hosts nella barra laterale sinistra. Dovresti vedere il nuovo host configurato insieme a localhost nella pagina.

Fai clic sul nuovo host configurato (nagiosclient) e se tutto è configurato correttamente, dovresti vedere il suo stato. Ci vorrà un minuto circa affinché lo stato appaia.

Per vedere i servizi o i monitor che abbiamo configurato, fai clic sull’opzione Visualizza Dettagli Stato per Questo Host e dovresti essere accolto dalla seguente pagina.

Questo dovrebbe darti un’idea chiara di come stanno funzionando i tuoi host.
Passo 8 - Installare Nginx
Puoi eseguire Nagios direttamente tramite l’IP del server o farlo ospitare sul tuo nome di dominio. Nagios viene già fornito con file di configurazione Apache, ma utilizzeremo Nginx per eseguirlo. Utilizzeremo Nginx come proxy inverso davanti al server web Apache.
Apache è già in esecuzione sulla porta 80. Pertanto, dobbiamo prima cambiare questo. E poi, possiamo eseguire Nginx come proxy.
Apri il file /etc/httpd/conf/httpd.conf per la modifica.
$ sudo nano /etc/httpd/conf/httpd.conf
Cambia la riga Listen 80 in Listen 8080. Salva il file premendo Ctrl + X e inserendo Y quando richiesto. Poiché utilizzeremo il nome di dominio per accedere a Nagios, non è necessario aprire la porta 8080 per l’accesso pubblico.
Riavvia il server Apache.
$ sudo systemctl restart httpd
Successivamente, installa Nginx.
Rocky Linux 9 viene fornito con una versione più vecchia di Nginx. Devi scaricare il repository ufficiale di Nginx per installare l’ultima versione.
Crea e apri il file /etc/yum.repos.d/nginx.repo per creare il repository ufficiale di Nginx.
$ sudo nano /etc/yum.repos.d/nginx.repo
Incolla il seguente codice in esso.
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Installa il server Nginx.
$ sudo dnf install nginx
Verifica l’installazione.
$ nginx -v
nginx version: nginx/1.22.1
Abilita e avvia il server Nginx.
$ sudo systemctl enable nginx --now
Passo 9 - Installare e Configurare SSL
Prima di configurare Nginx, configureremo e installeremo un certificato SSL per il dominio che utilizzeremo con Nagios. Nel nostro caso, utilizzeremo http://nagios.example.com.
Utilizzeremo l’installer di pacchetti Snapd per questo. Poiché Rocky Linux non viene fornito con esso, installa l’installer Snapd. Richiede il repository EPEL per funzionare, che abbiamo già installato in precedenza, quindi possiamo saltarlo.
Installa Snapd.
$ sudo dnf install -y snapd
Abilita e avvia il servizio Snap.
$ sudo systemctl enable snapd --now
Installa il pacchetto core di Snap e assicurati che la tua versione di Snapd sia aggiornata.
$ sudo snap install core && sudo snap refresh core
Crea i collegamenti necessari affinché Snapd funzioni.
$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh
Esegui il seguente comando per installare Certbot.
$ sudo snap install --classic certbot
Utilizza il seguente comando per assicurarti che il comando Certbot possa essere eseguito creando un collegamento simbolico alla directory /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Verifica l’installazione.
$ certbot --version
certbot 2.3.0
Esegui il seguente comando per generare un certificato SSL.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d nagios.example.com
Il comando sopra scaricherà un certificato nella directory /etc/letsencrypt/live/nagios.example.com sul tuo server.
Genera un certificato di gruppo Diffie-Hellman.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Fai una prova del processo per controllare se il rinnovo SSL funziona correttamente.
$ sudo certbot renew --dry-run
Se non vedi errori, sei a posto. Il tuo certificato si rinnoverà automaticamente.
Passo 10 - Configurare Nginx
Prima di configurare Nginx, c’è un’altra modifica che dovremmo fare. Per impostazione predefinita, Apache serve Nagios su http://. Ora, possiamo impostare un proxy direttamente su Nagios, ma sarà servito su https://nagios.example.com/nagios. Possiamo fare un reindirizzamento su Nginx all’URL radice, il che complica le cose. Per questo motivo, faremo una modifica direttamente su Apache e Nagios.
Prima di tutto, apri il file /usr/local/nagios/etc/cgi.cfg per la modifica.
$ sudo nano /usr/local/nagios/etc/cgi.cfg
Cambia url_html_path=/nagios in url_html_path=/. Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Successivamente, apri /etc/httpd/conf.d/nagios.conf per la modifica.
$ sudo nano /etc/httpd/conf.d/nagios.conf
Cambia ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" in ScriptAlias /cgi-bin "/usr/local/nagios/sbin".
Commenta la riga Alias /nagios "/usr/local/nagios/share" cambiandola in:
#Alias /nagios "/usr/local/nagios/share"
Aggiungi la seguente riga sotto di essa.
DocumentRoot /usr/local/nagios/share
Aggiungi la seguente riga in cima al file.
Aggiungi la seguente riga in fondo al file.
Una volta terminato, salva il file premendo Ctrl + X e inserendo Y quando richiesto.
E infine, apri il file /usr/local/nagios/share/config.inc.php per la modifica.
$ sudo nano /usr/local/nagios/share/config.inc.php
Cambia $cfg['cgi_base_url']='/nagios/cgi-bin'; in $cfg['cgi_base_url']='/cgi-bin';. Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Riavvia sia Apache che Nagios.
$ sudo systemctl restart httpd
$ sudo systemctl restart nagios
Per confermare che tutto funzioni correttamente, apri l’URL http:// nel tuo browser e dovresti vedere Nagios funzionare correttamente. Assicurati anche che i dati degli Host vengano ricevuti.
Una volta che tutto funziona, possiamo procedere a creare il nostro file di configurazione per Nginx.
Crea un file di configurazione per Nagios nella directory /etc/nginx/conf.d.
$ sudo nano /etc/nginx/conf.d/nagios.conf
Incolla il seguente codice in esso.
server {
listen 80; listen [::]:80;
server_name nagios.example.com;
return 301 https://$host$request_uri;
}
server {
server_name nagios.example.com;
listen 443 ssl http2;
listen [::]:443 ssl http2;
access_log /var/log/nginx/nagios.access.log;
error_log /var/log/nginx/nagios.error.log;
ssl_certificate /etc/letsencrypt/live/nagios.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/nagios.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/nagios.example.com/chain.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Una volta terminato, salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Valida il file di configurazione.
$ sudo nginx -t
Se ricevi il seguente errore, dovrai modificare il file /etc/nginx/nginx.conf per aggiungere/regolare la dimensione della variabile server_names_hash_bucket_size.
nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size
Apri il file /etc/nginx/nginx.conf per la modifica.
$ sudo nano /etc/nginx/nginx.conf
Aggiungi la seguente riga prima
server_names_hash_bucket_size 64;
Una volta terminato, salva il file premendo Ctrl + X e inserendo Y quando richiesto. Valida di nuovo Nginx.
Se non vedi problemi, riavvia il server Nginx.
$ sudo systemctl restart nginx
Configura SELinux
Se hai mantenuto SELinux abilitato, esegui il seguente comando per consentire a Nginx di connettersi alla rete.
$ sudo setsebool -P httpd_can_network_connect on
Lancia il dominio https://nagios.example.com nel tuo browser e dovresti essere accolto dalla homepage di Nagios.
Conclusione
Hai installato e configurato Nagios su un server Rocky Linux 9 per monitorare diversi servizi come il carico, l’uso del disco/swap, gli utenti, i processi totali, HTTP e SSH. Questo conclude il nostro tutorial. Per saperne di più, dovresti controllare la documentazione ufficiale di Nagios che copre il monitoraggio e vari comandi in dettaglio. Se hai domande, postale nei commenti qui sotto.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.