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 Sì 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 Sì 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?