Ricerca nel sito web

Come installare Icinga2 su RHEL, Rocky e AlmaLinux


Icinga2 è un'applicazione di monitoraggio e avviso della rete open source ricca di funzionalità che è un fork dello strumento di monitoraggio Nagios.

È stato creato per risolvere le carenze di Nagios e introdurre nuove funzionalità come un'interfaccia utente moderna e migliorata, un'API REST per integrare nuove estensioni senza la necessità di apportare modifiche il core Icinga e connettori di database aggiuntivi.

Icinga2 monitora la disponibilità degli host e dei servizi. Alcuni di questi servizi includono SNMP, HTTP, HTTPS e SSH. Monitora inoltre i dispositivi di rete come router e switch.

Icinga raccoglie anche parametri e genera log per darti un quadro completo della tua infrastruttura di rete. I log e le metriche vengono quindi visualizzati sulle dashboard per inserire tutto in un contesto migliore.

In questo articolo, mostriamo come installare l'applicazione di monitoraggio Icinga2 su RHEL, Rocky Linux e AlmaLinux.

Prerequisiti

Come requisito per l'installazione di Icinga2, è necessario che sia installato lo stack LAMP. Un po' di cautela qui: Icinga2 richiede PHP 7.3 e versioni successive per l'installazione.

Abbiamo già un tutorial su come installare LAMP su RHEL 8 – Utilizza questo articolo per installare solo il server web Apache e il server database MariaDB poiché le istruzioni si concentrano sull'installazione PHP 7.2 che non è supportato da Icinga2.

Nel primo passaggio di questa guida, ti guideremo attraverso il processo di installazione di PHP 7.4 e dei moduli richiesti.

Passaggio 1: installa PHP e i moduli PHP

Con Apache e MariaDB installati, andiamo avanti e installiamo PHP 7.4. Se hai installato PHP 7.2 e versioni successive, rimuovilo eseguendo:

sudo dnf remove php

Successivamente, ripristina il modulo PHP corrente sul sistema.

sudo dnf module reset php

Successivamente, elenca le versioni PHP disponibili come mostrato.

sudo dnf module list php

Quindi attiva PHP 7.4.

sudo dnf module enable php:7.4

Una volta abilitato il modulo PHP 7.4, installa PHP e le estensioni PHP richieste.

sudo dnf install php-gd php-mbstring php-mysqlnd php-curl php-devel php-pear php-xml php-cli php-soap php-intl php-json php-ldap php-xmlrpc php-zip php-json php-common php-opcache php-gmp php-pgsql make -y

Icinga2 richiede anche l'estensione php-imagick. Tuttavia, questo non può essere installato in modo convenzionale come abbiamo fatto con gli altri moduli PHP.

Per installare l'estensione, esegui i seguenti comandi:

dnf install -y ImageMagick ImageMagick-devel
sudo pecl install imagick

Quindi passa all'utente root e aggiungi le estensioni al file PHP.INI.

su -
echo "extension=imagick.so" > /etc/php.d/20-imagick.ini

Per applicare le modifiche, riavvia il server web Apache.

sudo systemctl restart httpd

Passaggio 2: installare Icinga2 in RHEL 8

Per installare Icinga2, dobbiamo aggiungere il repository Icinga poiché Icinga2 non è ospitato sui repository AppStream.

Per fare ciò, abilita innanzitutto il repository EPEL.

sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Successivamente, attiva la chiave di firma GPG.

sudo rpm --import https://packages.icinga.com/icinga.key

Successivamente, crea un file repository nella directory /etc/yum.repos.d.

sudo vim  /etc/yum.repos.d/icinga2.repo

Incolla il seguente blocco di codice

 
[icinga2]
name=Icinga 2 Repository for EPEL 8
baseurl=https://packages.icinga.com/epel/8/release
enabled=1

Salvare ed uscire dal file del repository. Quindi aggiorna i pacchetti della cache,

sudo dnf makecache

Con il repository aggiunto, installa il pacchetto Icinga2 e altri pacchetti Icinga2 associati.

sudo dnf install icinga2 icinga2-ido-mysql icinga2-selinux  vim-icinga2 -y

Successivamente, installa i plugin Nagios che verranno utilizzati per monitorare sia gli host fisici che quelli virtuali.

sudo dnf install nagios-plugins-all -y

Successivamente, abilita il modulo Icinga2 ido-mysql e altre funzionalità.

sudo icinga2 feature enable ido-mysql syslog command

Quindi riavvia Icinga per applicare le modifiche.

sudo systemctl restart icinga2

Passaggio 3: creare un database per il modulo MySQL Icinga-IDO

La funzionalità mysql icinga2-IDO (Icinga Data Output) è una funzionalità di backend che raccoglie ed esporta tutte le informazioni di configurazione e stato in un database. Per questo motivo, dobbiamo creare un database per la funzionalità Icinga2-ido-mysql.

Quindi, accedi al server del database MySQL:

sudo mysql -u root -p

Crea un database e un utente del database per Icinga2. Quindi concedi tutti i privilegi dell'utente del database al database Icinga2.

> CREATE DATABASE icinga2;
> GRANT ALL PRIVILEGES ON icinga2.* TO 'icinga2_user'@'localhost' IDENTIFIED BY 'P@ssword321';

Applicare le modifiche e uscire dal server del database.

> FLUSH PRIVILEGES;
> EXIT;

Successivamente, importa lo schema del database come segue. Ti verrà richiesta una password sulla quale dovrai fornire la password del database.

sudo mysql -u root -p icinga2 < /usr/share/icinga2-ido-mysql/schema/mysql.sql

Andando avanti, modifica il file di configurazione ido-mysql.

sudo vim /etc/icinga2/features-available/ido-mysql.conf

Rimuovere il commento dal blocco del database e specificare i dettagli del database.

Salva ed esci.

Successivamente, avvia e attiva Icinga2.

sudo systemctl start icinga2
sudo systemctl enable icinga2

Quindi verifica lo stato di Icinga2 come mostrato.

sudo systemctl status icinga2

Dall’output seguente, è chiaro che Icinga è attivo e funzionante come previsto.

Passaggio 4: installare IcingaWeb2 su RHEL 8

IcingaWeb2 è uno strumento di monitoraggio basato sul Web open source che incorpora anche un'interfaccia a riga di comando. Supporta tutte le funzionalità Icinga del backend come Icinga-ido-mysql, Icinga core, Icinga2 e altri moduli.

Per installare IcingaWeb2, installa PowerTools utilizzando il seguente comando.

sudo dnf install 'dnf-command(config-manager)'
sudo dnf config-manager --set-enabled powertools

Una volta completata l'installazione, installa IcingaWeb2 e la CLI come mostrato.

sudo dnf install icingaweb2 icingacli

Passaggio 5: creare un database per IcingaWeb2

Proprio come abbiamo creato uno schema di database per la funzione Icinga2-IDO-mysql, dobbiamo creare anche un secondo schema per Icinga Web2.

Quindi, ancora una volta, accedi al server del database.

sudo mysql -u root -p

Crea un database e un utente del database per IcingaWeb2, quindi concedi tutte le autorizzazioni all'utente del database sul database Icinga Web2.

> CREATE DATABASE icingaweb2;
> GRANT ALL ON icingaweb2.* TO icingaweb2@localhost IDENTIFIED BY 'P@ssword321';

Salva le modifiche ed esci.

> FLUSH PRIVILEGES;
> QUIT

Quando è stato installato Icinga2, è stato creato un nuovo file di configurazione per Icinga2. Puoi visualizzarlo come mostrato.

cat /etc/httpd/conf.d/icingaweb2.conf

È necessario riavviare il server web Apache affinché le modifiche abbiano effetto.

sudo systemctl restart httpd

Inoltre, devi anche impostare la modalità SELinux su "permissiva" come segue.

sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Passaggio 6: completare la configurazione di Icinga2 dal browser

Il passaggio nell'installazione di Icinga2 è la creazione di un token di installazione, ovvero un codice univoco che verrà utilizzato per l'autenticazione nel primo passaggio durante la configurazione di Icinga2 su un navigatore.

Per generare un token segreto, esegui il comando:

sudo icingacli setup token create

Copia e mantieni il token di installazione al sicuro. Se nel caso in cui perdi il token, puoi recuperarlo eseguendo il comando:

sudo icingacli setup token show

A questo punto di questa guida, tutte le configurazioni sono sotto controllo. Ciò che resta è completare l'installazione da un browser web. Per fare ciò, sfoglia l'URL mostrato

http://server-ip/icingaweb2/setup

Nella pagina di benvenuto, incolla il token di configurazione che hai generato in precedenza.

Dopo aver incollato il token, fai clic su "Avanti" per continuare. Verrai indirizzato alla pagina "Moduli". Ciò fornisce una panoramica di tutti i moduli che è possibile abilitare. Per impostazione predefinita, il modulo "monitoraggio" è abilitato.

Abilita i tuoi moduli preferiti, scorri verso il basso e fai clic su "Avanti" per continuare.

In questa sezione, assicurati che tutti i prerequisiti PHP siano stati soddisfatti, inclusi moduli PHP, librerie e directory. Se tutto sembra a posto, scorri verso il basso e fai clic su "Avanti".

Nella pagina "Autenticazione", lascia tutto così com'è e fai clic su "Avanti".

Nella sezione "Risorsa database", inserisci i dettagli del database per IcingaWeb2 come specificato nel Passaggio 5.

Per verificare che i dettagli del database siano corretti, scorri fino in fondo e fai clic su "Convalida configurazione".

Se tutto va bene, dovresti ricevere una notifica che la configurazione è stata convalidata con successo.

Per andare al passaggio successivo, scorri verso il basso e fai clic su "Avanti". Per "Backend di autenticazione" è sufficiente fare clic su "Avanti" per accettare le impostazioni predefinite.

Nel passaggio successivo, crea un utente Amministratore che verrà utilizzato per accedere e accedere all'interfaccia web Icinga2.

Per la sezione "Monitoraggio applicazioni", accetta le impostazioni predefinite e fai clic su "Avanti".

Rivedi tutte le modifiche apportate finora lungo il percorso. Se tutto sembra a posto, fai clic su "Avanti" e, se desideri apportare modifiche, fai clic su "Indietro" e apporta le modifiche richieste.

La sezione successiva è la configurazione del modulo di monitoraggio per IcingaWeb2. Questo è il modulo principale di Icinga Web 2 che offre visualizzazioni di stato e report con robuste funzionalità di filtro per tenere traccia degli eventi cruciali.

Fai clic su "Avanti" per continuare.

Nel passaggio successivo, compila il modulo con i dettagli del database per la funzione Icinga2-ido-mysql come specificato nel Passaggio 3.

Per convalidare la configurazione, scorri verso il basso e fai clic su "Convalida configurazione".

Riceverai la notifica che la configurazione è stata convalidata con successo.

Per procedere al passaggio successivo, scorri verso il basso e fai clic su "Avanti". Per "Trasporto dei comandi", utilizza "File di comando locale" come tipo di trasporto e fai clic su "Avanti".

Nella sezione "Monitoraggio della sicurezza", fai clic su "Avanti".

Ancora una volta, rivedere tutte le configurazioni per il modulo di monitoraggio Icinga2. Se tutto sembra a posto, fai clic su "Fine", altrimenti torna indietro e apporta le modifiche necessarie.

Se tutto è andato bene con la configurazione di Icinga Web 2, dovresti ricevere una notifica che Icinga Web 2 è stata configurata con successo. Per accedere all'interfaccia web, fare clic sul collegamento "Accedi a Icinga Web 2".

Si aprirà l'interfaccia Icinga Web 2. Fornisci i dettagli dell'account amministratore e fai clic su "accedi".

Questo ti introduce al dashboard di monitoraggio Icinga2 come mostrato.

E questo è tutto. Da lì puoi monitorare vari host e servizi all'interno della tua infrastruttura di rete. In questa guida ti abbiamo guidato attraverso l'installazione di Icinga Web 2 su RHEL 8, Rocky Linux e AlmaLinux forte>.