Come installare e configurare Nagios su CentOS 8
Su questa pagina
- Prerequisiti
- Passaggio 1: configurazione del firewall
- Passaggio 2 - Installa Apache e PHP
- Passaggio 3 - Installa Nagios
- Installa dipendenze
- Scarica Nagios
- Compila Nagios
- Crea utente e gruppo Nagios
- Installa i binari di Nagios
- Crea una directory dei comandi esterna
- Installa i file di configurazione di Nagios
- Installa i file di configurazione di Apache
- Crea un file di servizio Systemd
- Abilita l'autenticazione HTTP
- Interfaccia web di Nagios
- Installa i plugin Nagios
- Installa NRPE
- Controlla i monitor
- Passaggio 8a - Installa e configura SSL
Nagios è un popolare e uno dei più potenti sistemi di monitoraggio del computer open source. Tiene traccia della tua infrastruttura IT e garantisce che reti, server, applicazioni e processi funzionino senza problemi. L'utilizzo di un sistema di monitoraggio consente di identificare i problemi prima che si verifichino e di distribuire rapidamente le correzioni con conseguente risparmio di costi e tempi di inattività.
In questo tutorial imparerai come installare e configurare Nagios su un server basato su CentOS 8. Faremo anche alcune configurazioni di base e installeremo Nagios Remote Plugin Executor (NPRE), che ci consentirà di monitorare gli host remoti.
Prerequisiti
- A server running CentOS 8
- A non-sudo user with root privileges.
- SELinux Disabled
- Another server running CentOS 8 that you want to monitor.
- Ensure that everything is updated.
$ sudo dnf update
Passaggio 1: configurare il firewall
Il primo passo è configurare il firewall. Il server Fedora viene fornito con il firewall Firewalld.
Controlla se il firewall è in esecuzione.
$ sudo firewall-cmd --state
Dovresti ottenere il seguente output.
running
Controlla gli attuali servizi/porte consentiti.
$ sudo firewall-cmd --permanent --list-services
Dovrebbe mostrare il seguente output.
dhcpv6-client mdns ssh
Consenti porte HTTP e HTTPS.
$ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https
Ricontrolla 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 systemctl reload firewalld
Passo 2 - Installa 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 --now httpd
Per installare PHP, utilizzeremo il repository Remi. Installa Remi Repo e abilita PHP 7.4.
$ sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm $ sudo dnf module reset php $ sudo dnf module enable php:remi-7.4
Installa PHP e diversi moduli PHP comuni.
$ sudo dnf install php php-gd php-curl
Abilita PHP e avvia il servizio.
$ sudo systemctl enable --now php-fpm
Riavvia il servizio Apache per rendere effettive le modifiche.
$ 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'installer di Apache.$ sudo nano /var/www/html/info.php
Incolla il seguente codice nell'editor.
<?php phpinfo();
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./info.php Passo 3 - Installa Nagios
La maggior parte di questo tutorial richiederà l'installazione e il funzionamento sul server principale.
Installa dipendenze
Questo tutorial richiederà che Nagios e i suoi plugin siano compilati dal sorgente. Pertanto, è necessario installare prima alcune librerie di sviluppo.
$ sudo dnf install gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel xinetd unzip wget gettext autoconf net-snmp-utils epel-release postfix automake $ sudo dnf config-manager --enable powertools $ sudo dnf install perl-Net-SNMP
Scarica Nagios
Passa alla directory
/usr/src
dove posizioneremo i file sorgente di Nagios scaricati.$ cd /usr/src
Scarica l'ultima versione di Nagios dalla sua pagina Github. Al momento del tutorial, 4.4.6 è l'ultima versione disponibile. Modificare il comando nel caso si desideri una versione diversa.
$ sudo wget https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.6.tar.gz
Estrarre il file tar.
$ sudo tar zxf nagios-*.tar.gz
Passa alla directory dei sorgenti di Nagios.
$ cd nagioscore-nagios-*/
Compila Nagios
Il prossimo passo è 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.
*** Configuration summary for nagios 4.4.6 2020-04-28 ***: General Options: ------------------------- Nagios executable: nagios Nagios user/group: nagios,nagios Command user/group: nagios,nagios Event Broker: yes Install ${prefix}: /usr/local/nagios Install ${includedir}: /usr/local/nagios/include/nagios Lock file: /run/nagios.lock Check result directory: /usr/local/nagios/var/spool/checkresults Init directory: /lib/systemd/system Apache conf.d directory: /etc/httpd/conf.d Mail program: /sbin/sendmail Host OS: linux-gnu IOBroker Method: epoll Web Interface Options: ------------------------ HTML URL: http://localhost/nagios/ CGI URL: http://localhost/nagios/cgi-bin/ Traceroute (used by WAP): Review the options above for accuracy. If they look okay, type 'make all' to compile the main program and CGIs.
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 grupponagios
.$ sudo usermod -a -G nagios apache
Installa i binari di Nagios
Esegui il comando seguente per installare i file binari, CGI e HTML di Nagios.
$ sudo make install
Crea una directory di comando esterna
Nagios può elaborare comandi da applicazioni esterne e per questo necessita di una directory da configurare.
$ 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 *** External command directory configured ***
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
Eseguire il seguente comando per installare i file di configurazione di Apache.
$ sudo make install-webconf
Riavviare il server web per attivare la configurazione.
$ sudo systemctl restart httpd
Crea un file di servizio Systemd
Eseguire 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 l'autenticazione HTTP. Per questo, crea un utente amministratore chiamato
nagiosadmin
.Esegui il seguente comando per utilizzare
htpasswd
per creare l'utente. Ti verrà richiesta una password.$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin New password: Re-type new password: Adding password for user nagiosadmin
Riavviare il server per rendere effettiva la configurazione.
$ sudo systemctl restart httpd
Passaggio 4: installa i plug-in Nagios
Installa i prerequisiti richiesti per i plugin Nagios.
$ sudo dnf install -y gcc glibc glibc-common make gettext automake autoconf wget openssl-devel net-snmp net-snmp-utils epel-release postgresql-devel libdbi-devel openldap-devel mysql-devel mysql-libs bind-utils samba-client fping openssh-clients lm_sensors $ sudo dnf config-manager --enable powertools $ sudo dnf install -y perl-Net-SNMP
Torna alla directory
/usr/src
.$ cd /usr/src
Scarica l'ultima versione di Nagios dalla sua pagina Github. Al momento del tutorial, 2.3.3 è l'ultima versione disponibile. Modificare il comando nel caso si desideri una versione diversa.
$ sudo 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
Estrarre il file tar.
$ sudo tar zxf nagios-plugins.tar.gz
Passare alla directory dei plugin.
$ cd nagios-plugins-*
Esegui i seguenti comandi per compilare e installare i plugin.
$ sudo ./configure $ sudo make $ sudo make install
Passaggio 5: installa il plug-in check_nrpe
Passa alla directory
/usr/src
.$ cd /usr/src
Scarica l'ultima versione di NPRE dalla sua pagina Github. Al momento della stesura di questo tutorial, l'ultima versione disponibile è la 4.0.3. Modifica il seguente comando nel caso in cui desideri una versione diversa.
$ sudo wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz
Estrai l'archivio.
$ sudo tar zxf nrpe-*.tar.gz
Passare alla directory NPRE.
$ cd nrpe-4.0.3
Configura e installa il plug-in.
$ sudo ./configure $ sudo make check_nrpe $ sudo make install-plugin
Questo collocherà il plugin
check_nrpe
nella directory/usr/local/nagios/libexec/
.Passaggio 6: avviare Nagios
Con Nagios e i plugin installati, è ora di avviare il servizio Nagios.
$ sudo systemctl start nagios
Controlla lo stato del servizio per vedere se funziona correttamente.
$ sudo systemctl status nagios
Interfaccia Web di Nagios
Apri l'URL
http://
nel tuo browser. Dovresti vedere una richiesta di accesso./nagios Inserisci le credenziali che hai creato durante il metodo di autenticazione HTTP e dovresti essere accolto con la seguente schermata.
Passaggio 7: monitoraggio degli host
Per monitorare un host, è necessario installare i plugin NRPE Daemon e Nagios sull'host. Monitoreremo un server basato su CentOS 8 dal nostro server Nagios.
Accedi al tuo host.
$ ssh _server_ip
Installa i plugin Nagios
Installa i plugin Nagios ripetendo il passaggio 4 di prima.
Installa NRPE
Installare i prerequisiti richiesti per il daemon NRPE.
$ sudo dnf install -y gcc glibc glibc-common openssl openssl-devel perl wget
Passa alla directory
/usr/src
.$ cd /usr/src
Scarica NRP.
$ sudo wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz
Estrai l'archivio.
$ sudo tar zxf nrpe-*.tar.gz
Passare alla directory NPRE.
$ cd nrpe-4.0.3
Configurare e installare NPRE.
$ sudo ./configure --enable-command-args $ sudo make all
Creare l'utente e il gruppo.
$ sudo make install-groups-users
Installa i binari NPRE, il demone NPRE e il plug-in check_npre.
$ sudo make install
Installa i file di configurazione.
$ sudo make install-config
Aggiorna il file dei servizi. Il file
/etc/services
è usato per tradurre i nomi dei servizi in numeri di porta.$ sudo sh -c "echo >> /etc/services" $ sudo sh -c "sudo echo '# Nagios services' >> /etc/services" $ sudo sh -c "sudo echo 'nrpe 5666/tcp' >> /etc/services"
Installa il demone del servizio NPRE.
$ sudo make install-init $ sudo systemctl enable nrpe
Devi aggiornare il file di configurazione NPRE che si trova 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 solo le richieste provenienti 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
La seguente opzione determina se il daemon NPRE consentirà o meno ai client di specificare gli argomenti del comando. Consenti l'opzione inserendo il valore come
1
che abilita le configurazioni NPRE avanzate.dont_blame_nrpe=1
Successivamente, mentre scorri verso il basso, ti imbatterai in un elenco di comandi NRPE con le loro definizioni. Sono tutti commentati. Devi decommentarli in modo che Nagios possa usarli.
Ad ogni comando possono essere passati argomenti. Alcuni dei comandi hanno argomenti codificati davanti a loro mentre altri possono accettare argomenti dall'utente. Ogni comando può avere le seguenti opzioni di notifica.
- W=sta per Warning service states
- C=sta per Stati di servizio critici
- R=sta per notifica al ripristino del servizio (stati OK)
Pertanto, è possibile specificare a quale livello quale tipo di notifica può inviare un comando. Non ci addentreremo nella descrizione dettagliata e nella funzione di ciascuno dei comandi poiché esulano dallo scopo di questo tutorial.
# The following examples use hardcoded command arguments... # This is by far the most secure method of using 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 # The following examples allow user-supplied arguments and can # only be used if the NRPE daemon was compiled with support for # command arguments *AND* the dont_blame_nrpe directive in this # config file is set to '1'. This poses a potential security risk, so # make sure you read the SECURITY file before doing this. ### MISC SYSTEM METRICS ### 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$ ### GENERIC SERVICES ### command[check_init_service]=sudo /usr/local/nagios/libexec/check_init_service $ARG1$ command[check_services]=/usr/local/nagios/libexec/check_services -p $ARG1$ ### SYSTEM UPDATES ### command[check_yum]=/usr/local/nagios/libexec/check_yum command[check_apt]=/usr/local/nagios/libexec/check_apt ### PROCESSES ### command[check_all_procs]=/usr/local/nagios/libexec/custom_check_procs command[check_procs]=/usr/local/nagios/libexec/check_procs $ARG1$ ### OPEN FILES ### command[check_open_files]=/usr/local/nagios/libexec/check_open_files.pl $ARG1$ ### NETWORK CONNECTIONS ### command[check_netstat]=/usr/local/nagios/libexec/check_netstat.pl -p $ARG1$ $ARG2$
Rimuovere il commento dai comandi precedenti rimuovendo il simbolo
#
davanti a loro. Puoi decommentare tutti i comandi di cui hai bisogno.Al termine, salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Consenti la porta 5666 utilizzata dal plug-in NPRE.
$ sudo firewall-cmd --permanent --add-port=5666/tcp
Ricarica il firewall.
$ sudo systemctl reload firewalld
Avvia NPRE.
$ sudo systemctl start nrpe
Tutti i comandi da qui in avanti verranno eseguiti sul server principale di Nagios se non diversamente specificato.
Controlla se NRPE funziona 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.0.3
Per monitorare gli host, dovrai creare file di configurazione per ciascun host che desideri monitorare. Questi host diventeranno quindi accessibili tramite l'interfaccia web di Nagios.
Crea la directory per l'archiviazione dei file di configurazione e assegnale le autorizzazioni appropriate.
$ 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 modificarlo. Trova il seguente file e rimuovi il commento 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 usarlo 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 tuo nome host remoto, il valorealias
con la descrizione del tuo host e il valoreaddress
con il 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 farà sapere quando l'host è attivo o inattivo. Dovrai aggiungere più servizi per monitorare altre cose.
Aggiungi il seguente blocco per controllare le statistiche di connessione per l'host.
define service { use generic-service host_name client01 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 template chiamatogeneric-service
predefinito da Nagios.Successivamente, aggiungi un blocco per monitorare l'utilizzo del disco.
define service { use generic-service host_name monitored_server_host_name service_description /dev/sda1 free space check_command check_nrpe!check_disk!-a '-w 20% -c 10% -p /dev/sda1' }
Successivamente, possiamo monitorare il servizio HTTP utilizzando il seguente blocco di codice.
define service { use generic-service host_name monitored_server_host_name service_description HTTP check_command check_http }
Monitora SSH utilizzando il seguente blocco. Il blocco successivo controllerà il server SSH e genererà un avviso se il server non risponde entro 5 secondi.
define service { use generic-service host_name nagiosclient 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 la partizione root e il suo utilizzo del disco.
define service{ use generic-service host_name monitored_server_host_name service_description Root / Partition check_command check_nrpe!check_root }
Controlla l'utilizzo 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%' }
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Riavvia Nagios.
$ sudo systemctl restart nagios
Controlla i monitor
Apri la dashboard di Nagios e fai clic sull'opzione Host dalla barra laterale sinistra. Dovresti vedere l'host appena configurato insieme a localhost sulla pagina.
Fai clic sull'host appena configurato (nagiosclient) e se tutto è configurato correttamente, dovresti vedere il suo stato. Ci vorrebbe circa un minuto prima che 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 pagina seguente.
Nel nostro caso, non abbiamo configurato la memoria di scambio e quindi stiamo ottenendo uno stato critico per il servizio poiché lo spazio di scambio è 0. Questo dovrebbe darti un'idea corretta di come funzionano i tuoi host.
Passaggio 8: installa e configura Nginx
Puoi eseguire Nagios direttamente tramite l'IP del server o farlo ospitare sul tuo nome di dominio. Nagios viene già fornito con i file di configurazione di Apache, ma useremo Nginx per eseguirlo. Useremo Nginx come proxy inverso davanti al server web Apache.
Apache lo sta già eseguendo sulla porta 80. Pertanto, dobbiamo prima cambiarlo. E poi, possiamo eseguire Nginx come proxy.
Apri il file
/etc/httpd/conf/httpd.conf
per modificarlo.$ sudo nano /etc/httpd/conf/httpd.conf
Cambia la riga
Ascolta 80
inAscolta 8080
.Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Aggiungi il nuovo indirizzo IP al tuo firewall.
$ sudo firewall-cmd --permanent --add-port=8080/tcp $ sudo systemctl reload firewalld
Riavvia il server Apache.
$ sudo systemctl restart httpd
Successivamente, installa Nginx.
CentOS 8 viene fornito con Nginx 1.14 per impostazione predefinita, ma è una versione precedente. Possiamo abilitare anche l'ultima versione.
$ sudo dnf module enable nginx:1.20 $ sudo dnf install nginx
Abilita il server Nginx.
$ sudo systemctl enable nginx
Passaggio 8a - Installa e configura SSL
Prima di configurare Nginx, imposteremo e configureremo un certificato SSL per il dominio che utilizzeremo con Nagios. Nel nostro caso, useremo
http://nagios.example.com
.Per installare un certificato SSL utilizzando Lets Encrypt, dobbiamo scaricare lo strumento Certbot. Certbot è disponibile dal repository EPEL di CentOS che abbiamo già aggiunto in precedenza nel tutorial.
$ sudo dnf install certbot python3-certbot-nginx
Arresta il servizio Nginx.
$ sudo systemctl stop nginx
Genera un certificato SSL.
$ sudo certbot certonly --standalone --preferred-challenges --agree-tos --email http -d nagios.example.com
Il comando precedente scaricherà un certificato nella directory
/etc/letsencrypt/live/nagios.example.com
sul tuo server.Crea un Cron Job per rinnovare l'SSL. Verrà eseguito ogni giorno per controllare il certificato e rinnovarlo se necessario. Per questo, per prima cosa, crea il file
/etc/cron.daily/certbot-renew
e aprilo per modificarlo.$ sudo nano /etc/cron.daily/certbot-renew
Incolla il seguente codice.
#!/bin/sh certbot renew --cert-name nagios.example.com --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Modificare le autorizzazioni sul file dell'attività per renderlo eseguibile.
$ sudo chmod +x /etc/cron.daily/certbot-renew
Genera un certificato di gruppo Diffie-Hellman.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Prima di configurare Nginx, c'è un'altra modifica che dovremmo apportare. Per impostazione predefinita, Apache serve Nagios su
http://
. Ora possiamo impostare un proxy direttamente con Nagios, ma verrà servito su:8080/nagios https://nagios.example.com/nagios
. Possiamo eseguire un reindirizzamento su Nginx all'URL principale che complica le cose. Per questo motivo, apporteremo una modifica direttamente ad Apache e Nagios.Innanzitutto, apri il file
/usr/local/nagios/etc/cgi.cfg
per modificarlo.$ sudo nano /usr/local/nagios/etc/cgi.cfg
Cambia
url_html_path=/nagios
inurl_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\
inScriptAlias /cgi-bin \/usr/local/nagios/sbin\.
Commenta la riga
Alias /nagios \/usr/local/nagios/share\
modificandola come segue.#Alias /nagios "/usr/local/nagios/share"
Aggiungi la seguente riga sotto di essa.
DocumentRoot /usr/local/nagios/share
Aggiungi la seguente riga all'inizio del file.
<VirtualHost *:1080>
Aggiungi la seguente riga in fondo al file.
</VirtualHost>
Al termine, salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Infine, apri il file
/usr/local/nagios/share/config.inc.php
per modificarlo.$ 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. Inoltre, assicurati che i dati degli host vengano ricevuti.:1080 Una volta che tutto funziona, possiamo procedere alla creazione del 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 al suo interno.
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 X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; } }
Al termine, salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Convalida 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 variabileserver_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;
Al termine, salva il file premendo Ctrl + X e inserendo Y quando richiesto. Convalida di nuovo Nginx.
Se non riscontri problemi, avvia il server Nginx.
$ sudo systemctl start nginx
Avvia il dominio
https://nagios.example.com
nel tuo browser e dovresti essere accolto con la home page di Nagios.Conclusione
Hai installato e configurato Nagios su un server basato su CentOS 8 per monitorare diversi servizi come il carico, l'utilizzo del disco/swap, gli utenti, i processi totali, HTTP e SSH. Questo conclude il nostro tutorial. Se vuoi saperne di più, dovresti controllare la documentazione ufficiale di Nagios che copre il monitoraggio e vari comandi in modo molto dettagliato. Se hai domande, pubblicale nei commenti qui sotto.