GNU/Linux >> Linux Esercitazione >  >> Linux

Come monitorare gli host con lo strumento di monitoraggio Icinga di Linux

Il monitoraggio è uno degli aspetti più critici dell'infrastruttura e lo strumento di monitoraggio Icinga ha una varietà di opzioni tra cui scegliere. Icinga ti consente di monitorare in modo flessibile l'intera infrastruttura in base alle configurazioni.

In questo articolo imparerai come monitorare i tuoi server con lo stack di monitoraggio Icinga2; installerai lo stack e imposterai il monitoraggio distribuito.

Pronto? Salta subito!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Per seguire, assicurati di avere quanto segue:

  • Due macchine Linux:questo tutorial utilizza il server Ubuntu 20.04 su entrambi i master (master ) e client (client01 ) server.
  • Un utente con privilegi di root su entrambi i dispositivi.
  • MariaDB installato e in esecuzione sul server principale.

Impostazione FQDN su tutti i server

Icinga2 è una soluzione di monitoraggio pronta per le aziende che consente di monitorare le infrastrutture e le applicazioni dei server in molte località.

Imposterai nomi di dominio completi (FQDN) per tutti i tuoi server, semplificando la gestione dei server in ambienti di grandi dimensioni. Il dominio in questo tutorial è denominato example.lan, ma puoi utilizzare un dominio locale esistente.

Nota che devi eseguire i seguenti comandi su entrambi i server. Modifica i valori di conseguenza.

1. Apri il tuo terminale e connettiti al server.

2. Quindi, eseguire ogni comando seguente per impostare l'FQDN sui computer master e client. FQDN per i server è master.example.lan (maestro ) e client01.example.lan (client01 ).

# Set FQDN on master server
sudo hostnamectl set-hostname master.example.lan

# Set FQDN on client01 server
sudo hostnamectl set-hostname client01.example.lan

3. Modifica /etc/hosts file con il tuo editor di testo preferito e compila la voce di seguito. Sostituire gli indirizzi IP con gli indirizzi del server effettivi.

# /etc/hosts for master
172.16.1.10   master.example.lan   master

# /etc/hosts for client01
172.16.1.30   client01.example.lan   client01

4. Infine, esegui il comando seguente per verificare l'FQDN.

hostname --fqdn

Installazione di Icinga2 e plug-in di monitoraggio

Con l'FQDN configurato, è il momento di installare Icinga2. Installerai i pacchetti apt sia per iga2 che per i plugin di monitoraggio. Questi pacchetti sono il componente principale di Icinga2 e il plugin che fornisce gli script per il monitoraggio del sistema.

L'installazione di Icinga2 e dei plug-in di monitoraggio deve essere eseguita nei server master e client01.

1. Esegui il apt install di seguito comando per installare le dipendenze del pacchetto in modo sicuro tramite HTTPS (apt-transport-https ) e verificare la chiave GPG.

sudo apt install -y apt-transport-https wget gnupg

2. Quindi, esegui wget comando per scaricare la chiave GPG di Icinga2. Il apt-key convogliato Il comando aggiunge la chiave GPG per verificare l'integrità dei pacchetti Icinga2.

wget -O - https://packages.icinga.com/icinga.key | apt-key add -

3. Esegui ogni comando seguente per aggiungere il repository apt di Icinga2 sulla tua macchina.

# Adding repository for icinga2
. /etc/os-release; if [ ! -z ${UBUNTU_CODENAME+x} ]; then DIST="${UBUNTU_CODENAME}"; else DIST="$(lsb_release -c| awk '{print $2}')"; fi; \
echo "deb https://packages.icinga.com/ubuntu icinga-${DIST} main" > \
/etc/apt/sources.list.d/${DIST}-icinga.list
echo "deb-src https://packages.icinga.com/ubuntu icinga-${DIST} main" >> \
/etc/apt/sources.list.d/${DIST}-icinga.list

# Verify the Icinga2 apt repository is added
cat /etc/apt/sources.list.d/focal-icinga.list

4. Infine, esegui apt comandi seguenti per aggiornare l'indice del pacchetto e installare i pacchetti.

# Refresh package index
sudo apt update

# Installing package
sudo apt install icinga2 monitoring-plugins -y

Installazione del driver IDO MySQL sul server master

Icinga2 è installato e quasi pronto per funzionare. Ma affinché Icinga2 funzioni correttamente, ha bisogno di un database. Quindi, installerai il driver IDO MySQL e configurerai la connessione al database sul tuo server principale.

Il repository Icinga2 fornisce il icinga2-ido-mysql pacchetto. Il pacchetto è un driver di database che funziona per i server MySQL e MariaDB.

1. Esegui il comando di seguito per installare icinga2-ido-mysql pacchetto.

sudo apt install -y icinga2-ido-mysql

2. Seleziona  quando viene richiesto di configurare il driver e creare un database, come mostrato di seguito. La configurazione imposta icinga2 come utente del database e genera un nuovo file, /etc/icinga2/features-available/ido-mysql.conf .

3. Ora seleziona per abilitare ido-mysql funzione su Icinga2, che crea automaticamente un nuovo database e utente per Icinga2.

4. Fornisci una password per l'utente MariaDB icinga2 e seleziona OK per completare l'installazione di icinga2-ido-mysql.

5. Quindi, esegui cat comando seguente per controllare il contenuto di /etc/icinga2/features-available/ido-mysql.conf file.

cat /etc/icinga2/features-available/ido-mysql.conf

Vedrai i dettagli di seguito per il database MariaDB che corrispondono a quello che hai fornito.

6. Esegui icinga2 comando di seguito a enable il ido-mysql caratteristica.

sudo icinga2 feature enable ido-mysql

7. Infine, esegui i seguenti comandi per riavviare e verificare il icinga2 servizio status .

# restart service
sudo systemctl restart icinga2

# verifying service
sudo systemctl status icinga2

Allo stesso modo di seguito, vedrai che la funzione ido-mysql è abilitata e il servizio icinga2 è attivo (in esecuzione).

Configurazione dell'API Icinga2

Hai appena installato il driver Icinga2 IDO MySQL e configurato la connessione al database. Ma per gestire e configurare lo stack di monitoraggio Icinga2 tramite richieste HTTP, configurerai l'API Icinga2.

Lo stack di monitoraggio Icinga2 è anche un sistema di monitoraggio distribuito.

1. Esegui il comando di seguito sul tuo server master per abilitare l'API Icinga2, generare certificati TLS per Icinga2 e aggiornare le configurazioni di Icinga2.

sudo icinga2 api setup

2. Ora, modifica /etc/icinga2/conf.d/api-users.conf file nel tuo editor di testo e popolare la configurazione seguente. Prendi nota delle credenziali utente API che stai fornendo poiché ti serviranno in seguito.

Sostituisci la password con una appropriatamente efficace, se necessario.

/** api for icingaweb2 */
object ApiUser "icingaweb2" {
  password = "passwordapiicngaweb2"
  permissions = [ "status/query", "actions/*", "objects/modify/*", "objects/query/*" ]
}

3. Infine, esegui il comando seguente su restart il icinga2 servizio e applicare la nuova configurazione.

sudo systemctl restart icinga2

Installazione e configurazione di icingaweb2 sul server master

Avrai bisogno di una dashboard per monitorare meglio i tuoi host dopo aver abilitato l'API Icinga2 e aver configurato il nuovo utente API. Come? Installerai e configurerai Icingaweb2 sul server principale.

Icingaweb2 è il front-end web per lo stack di monitoraggio Icinga2, scritto in PHP, e fornisce una dashboard di monitoraggio reattiva ed estensibile.

1. Esegui il comando seguente per installare Icingaweb2 con i componenti necessari per gestire l'applicazione web Icingaweb2.

sudo apt install icingaweb2 libapache2-mod-php icingacli -y

2. Quindi, esegui icingacli comando seguente per generare un token per la configurazione di Icingaweb2. L'installazione di Icingaweb2 avrà bisogno di questo token in un secondo momento, quindi annotalo.

sudo icingacli setup token create

3. Esegui il mysql comando seguente per accedere alla shell MySQL e creare un nuovo utente (root ) per Icingaweb2.

mysql -u root -p

4. Ora, esegui le seguenti query per creare un nuovo database e l'utente icingaweb2 con una password. Puoi impostare nome utente e password come preferisci.

CREATE DATABASE icingaweb2;
GRANT ALL ON icingaweb2.* TO [email protected] IDENTIFIED BY 'strongpasswordicingaweb2';
FLUSH PRIVILEGES;

5. Infine, esegui exit per disconnettersi dalla shell MySQL.

exit

Configurazione dell'installazione di Icingaweb2

Hai installato Icingaweb2 sul server master e generato il token di configurazione per un nuovo utente. Ma per accedere alla dashboard di icingaweb2, configurerai la tua installazione di icingaweb2 tramite il tuo browser web.

1. Apri il browser web e vai all'indirizzo IP del server principale, seguito dal percorso dell'URL /icingaweb2/setup (ad esempio, http://172.16.1.10/icingaweb2/setup) .

2. Successivamente, inserisci il token di installazione di Icingaweb2 che hai generato nella sezione "Installazione e configurazione di icingaweb2 sul server master" (passaggio due) e fai clic su Avanti .

3. Accetta le impostazioni predefinite (Monitoraggio ) nei Moduli pagina e fai clic su Avanti .

4. Seleziona Banca dati nel Tipo di autenticazione casella a discesa e fai clic su Avanti . Questo tipo di autenticazione protegge il dashboard di amministrazione di Icingaweb2.

A questo punto Icingaweb2 inizia a verificare i requisiti di sistema per l'installazione.

5. Assicurati che tutti i requisiti di stato siano verdi, tranne quello di PostgreSQL, e fai clic su Avanti .

Ignora il messaggio di errore di PostgreSQL. Stai usando MariaDB come backend del database.

6. Ora, fornisci gli stessi valori impostati nella sezione "Installazione e configurazione di icingaweb2 sul server principale" (passaggio quattro) alla Risorsa database modulo sottostante.

Fai clic su Convalida configurazione per assicurarti che la configurazione funzioni, quindi fai clic su Avanti dopo aver visualizzato il messaggio La configurazione è stata convalidata correttamente.

7. Abbandona il backend di autenticazione con il valore predefinito (icingaweb2) come nome del backend e fai clic su Avanti.

8. Fornisci le credenziali per il primo account amministrativo di Icingaweb2 e fai clic su Avanti . Prendi nota delle credenziali, poiché ti serviranno per accedere alla dashboard di Icingaweb2 in un secondo momento.

9. Lascia i valori di registrazione predefiniti nella Configurazione dell'applicazione per Icingaweb2 e fare clic su Avanti .

10. Quindi, rivedi le impostazioni di configurazione e fai clic su Avanti per confermare l'installazione di icingaweb2.

11. Ora fai clic su Avanti per continuare a configurare il modulo di monitoraggio per Icingaweb2.

12. Fornire di conseguenza il nome del database e l'utente per Icinga2, come mostrato di seguito. I dettagli del database per Icinga2 sono disponibili in /etc/icinga2/features-available/ido-mysql.conf file.

Fai clic su Convalida configurazione, assicurati che la connessione al database sia riuscita, quindi fai clic su Avanti.

13. Immettere l'utente e la password dell'API Icinga2 archiviati in /etc/icinga2/conf.d/api-users.conf file nei campi sottostanti.

Fai clic sul pulsante Convalida configurazione, assicurati di ricevere il messaggio che dice La configurazione è stata convalidata correttamente e fai clic su Avanti.

14. Accetta le variabili personalizzate predefinite in Monitoraggio della sicurezza impostazione e fai clic su Avanti . Queste variabili aiutano a proteggere l'ambiente di monitoraggio da occhi indiscreti.

15. Ispeziona la configurazione del modulo di monitoraggio e fai clic su Fine per completare l'installazione.

16. Al termine dell'installazione di icingaweb2, vedrai le Congratulazioni! Icinga Web 2 è stato configurato con successo messaggio, come mostrato di seguito.

Fai clic su Accedi a Icinga Web 2 e il tuo browser reindirizza alla pagina di accesso di icingaweb2 (passaggio 17).

17. Immettere l'utente amministratore e la password per icingaweb2 e fare clic su Accedi per accedere alla dashboard di Icinga.

18. Infine, fai clic su Panoramica —> Servizi e vedrai lo stato del tuo master server simile a quello qui sotto.

Inizializzazione del Master Server Icinga2

Hai installato con successo lo stack di monitoraggio Icinga2 per monitorare lo stato del tuo server master. Ora inizializzerai il server master come nodo principale per lo stack di monitoraggio Icinga2. Il nodo master è il controller principale dello stack di monitoraggio distribuito Icinga2.

1. Esegui il comando seguente sul terminale del tuo server principale per inizializzare il icinga2 maestro node .

sudo icinga2 node wizard

2. Premi n per configurare il nodo agente/satellite (nodo master Icinga2).

3. Premere INVIO sul nome comune (CN) configurazione. Icinga2 rileverà automaticamente l'FQDN del server.

4. Successivamente, specifica il nome della zona principale come master.example.lan e premi N per saltare l'aggiunta di zone globali. Le zone globali predefinite sincronizzano tutti gli oggetti di configurazione in inga2.

5. Lasciare l'host e la porta di collegamento API come predefiniti e premere INVIO. L'API comunicherà tra il nodo Icinga2 con connessioni crittografate TLS.

6. Digita S per disabilitare tutta la configurazione all'interno di /etc/icinga2/conf.d/ directory poiché utilizzerai la configurazione delle zone Icinga2 che creerai in seguito.

7. Ora esegui il systemctl comando seguente per riavviare il servizio icinga2 e applicare la configurazione.

sudo systemctl restart icinga2

8. Infine, esegui il comando seguente per generare il ticket per la registrazione di client01 con Icea2.

sudo icinga2 pki ticket --cn 'client01.example.lan'

Copia il ticket generato che utilizzerai per iscrivere client01 come agente Icinga2 in seguito.

Inizializzazione dell'agente Icinga2 sul server client

Dopo aver inizializzato il server master come nodo principale, configurerai anche l'agente Icinga2 sul client01 per monitorare la macchina client01 utilizzando Icinga2.

1. Accedi a client01 e segui i passaggi che hai eseguito nella sezione "Inizializzazione del server master Icinga2" (passaggi da uno a tre) per inizializzare l'agente Icinga2.

2. Successivamente, specifica l'endpoint padre come master.example.lan e inserisci Y per stabilire la connessione con il nodo padre/master.

3. Immettere l'indirizzo IP del server master (172.16.1.10 ) e lasciare la porta dell'endpoint come predefinita.

4. Ora, digita N quando viene chiesto di aggiungere più endpoint.

5. Digita S per confermare le informazioni e aggiungere il certificato per il server principale Icinga2.

6. Inserisci il ticket che hai generato nell'ultimo passaggio della sezione "Inizializzazione del server master Icinga2" per registrare il nodo agente (client01.example.lan).

7. Premere INVIO per accettare i valori predefiniti per l'host di collegamento API e la porta.

8. Successivamente, inserisci Y due volte per accettare la configurazione e i comandi dal nodo padre/master.

9. Premere INVIO per accettare l'impostazione predefinita per il nome della zona locale, ma immettere il nome della zona padre, che dovrebbe corrispondere al nome della zona (master.example.lan ) sul server master.

10. Ora, digita N per saltare l'aggiunta di zone globali e digita Y per disabilitare le configurazioni su /etc/icinga2/conf.d directory.

11. Infine, eseguire il comando seguente per riavviare il servizio Icinga2 e applicare le modifiche alla configurazione. sudo systemctl restart icinga2

sudo systemctl restart icinga2

Creazione della configurazione delle zone sul server master

Con il monitoraggio distribuito fuori mano, creerai una nuova directory di zona e definirai la configurazione di monitoraggio per l'agente client.

1. Esegui il mkdir comando seguente per creare una nuova directory come zona predefinita (master.example.lan ) su Icinga2.

sudo mkdir -p /etc/icinga2/zones.d/master.example.lan/

2. Quindi, crea un file di configurazione (client01.example.lan.conf ) in /etc/icinga2/zones.d/master.example.lan/ directory. Popolare il file con la seguente configurazione.

Il codice seguente definisce gli endpoint, le zone e l'oggetto host per monitorare i server.

// Endpoints
object Endpoint "client01.example.lan" {
}
// Zones
object Zone "client01.example.lan" {
    endpoints = [ "client01.example.lan" ]
    parent = "master.example.lan"
}
// Host Objects
object Host "client01.example.lan" {
    check_command = "hostalive"
    address = "172.16.1.30"
    vars.client_endpoint = name
}

3. Crea un altro file di configurazione, copia/incolla il codice seguente nel file e salvalo come /etc/icinga2/zones.d/master.example.lan/services.conf.

Questa configurazione di seguito monitora alcuni servizi di base sulla macchina client01.

 // Ping
 apply Service "Ping" {
 check_command = "ping4"
 assign where host.address // check executed on master
 }
 // System Load
 apply Service "System Load" {
 check_command = "load"
 command_endpoint = host.vars.client_endpoint // Check executed on client01
 assign where host.vars.client_endpoint
 }
 // SSH Service
 apply Service "SSH Service" {
 check_command = "ssh"
 command_endpoint = host.vars.client_endpoint
 assign where host.vars.client_endpoint
 }
 // Icinga 2 Service
 apply Service "Icinga2 Service" {
 check_command = "icinga"
 command_endpoint = host.vars.client_endpoint
 assign where host.vars.client_endpoint
 }

4. Ora esegui icinga2 comando seguente per verificare la configurazione di Icinga2.

sudo icinga2 daemon -C

Se tutto va bene, vedrai un output simile a quello qui sotto.

5. Infine, esegui il comando seguente per riavviare il servizio Icinga2 e applicare le modifiche alla configurazione.

sudo systemctl restart icinga2

Verifica su dashboard Icinga2

Hai configurato tutte le risorse, ma devi comunque verificare se funzionano tutte. Verificherai i risultati del tuo lavoro controllando la dashboard di Icinga2.

Torna alla dashboard di Icinga2 e fai clic su Panoramica —> Host , come mostrato di seguito, e vedrai che il client01 è UP .

Ora, fai clic su Servizi menu per vedere tutti i servizi monitorati con lo stack di monitoraggio Icinga2 su client01.

Conclusione

Questo tutorial mirava ad aiutarti durante il processo di configurazione dello stack di monitoraggio Icinga2 sul server Ubuntu. Hai anche imparato a configurare il monitoraggio distribuito utilizzando un agente Icinga2 per monitorare un'infrastruttura estesa.

Ora, qual è il prossimo passo? Forse impari a configurare Icinga Director per semplificare il tuo monitoraggio?


Linux
  1. Monitora il tuo server Linux con Checkmk

  2. Monitoraggio degli host Linux e Windows con Sguardi

  3. 3 cose utili che puoi fare con lo strumento IP in Linux

  4. Come monitorare la sicurezza del server Linux con Osquery

  5. Monitoraggio del livello del microfono con uno strumento a riga di comando in Linux

Come monitorare rapidamente più host in Linux

Come monitorare i tuoi server Linux con Checkmk

Come trovare file con il comando fd in Linux

Come installare lo strumento di monitoraggio del sistema Gtop in Linux

Come monitorare i tuoi server Linux con Checkmk

Come installare lo strumento di monitoraggio Icinga 2 su Rocky Linux 8