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

  1. Un server che esegue Rocky Linux 9.
  2. Un utente non sudo con privilegi di root.
  3. 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.
  4. Un altro server che esegue Rocky Linux 9 che desideri monitorare.
  5. 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:///info.php nel tuo browser e dovresti essere accolto dalla seguente pagina.

Pagina Info PHP

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:///nagios 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.

Homepage di Nagios

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.

Monitoraggio Host di Nagios

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.

Monitoraggio Servizi Host di Nagios

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.

Stato Monitor Servizi di Nagios

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://:8080/nagios. 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://:1080 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.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.