Icinga 2 è un sistema di monitoraggio open source altamente scalabile ed estensibile. Può monitorare ambienti grandi e complessi in più posizioni. Verifica la disponibilità delle risorse di rete, notifica agli utenti le interruzioni e genera dati sulle prestazioni per la creazione di report. È un'applicazione di monitoraggio della rete che può essere configurata dal web e le sue funzionalità si basano principalmente sul linguaggio di programmazione lato server PHP.
Fondamentalmente, monitora lo stato dei protocolli di rete, come HTTP, FTP, SMTP, IMAP o altri servizi di rete, ospita risorse, sensori fisici, installazioni software, carico della CPU, memoria, spazio su disco e quasi tutti i dispositivi di rete interconnessi tramite ICMP o richieste di ping. Inoltre, può essere facilmente configurato per notificare agli amministratori di sistema o di rete via e-mail, SMS, chat o altri tipi di avvisi su rete, sistemi, servizi o altre interruzioni di rete correlate e può anche generare grafici sui tempi di inattività o sulle prestazioni della rete.
In questo articolo spiegherò come installare un server Icinga2 con interfaccia Web 2 sul nostro ultimo server Debian 9.3. Esaminiamo le istruzioni passo passo su come costruire il nostro sistema di monitoraggio.
Prerequisiti
Prima di procedere con l'installazione dobbiamo assicurarci che il nostro sistema soddisfi tutti i requisiti software per la compilazione e l'installazione dell'applicazione. Nel primo passaggio, aggiorna i repository di sistema e i pacchetti software eseguendo il comando seguente.
# apt update
# apt upgrade
# apt install bash-completion
Quindi, imposta il nome host per il tuo server eseguendo il comando seguente. Ho aggiunto icinga2
al mio hostname.
# hostnamectl set-hostname icinga2
# hostnamectl
Static hostname: icinga2
Icon name: computer-vm
Chassis: vm
Machine ID: 7f2b1120403449a3b27d2f40de770be2
Boot ID: 321481f419e94e6cb377ae804d9bab42
Virtualization: kvm
Operating System: Debian GNU/Linux 9 (stretch)
Kernel: Linux 4.9.0-4-amd64
Architecture: x86-64
# cat /etc/hostname
icinga2
Infine, dobbiamo riavviare il nostro server Debian per applicare correttamente gli aggiornamenti del kernel e le modifiche al nome host.
Installa lo stack LAMP
Come discusso in precedenza, Icinga 2 è un'applicazione di monitoraggio della rete scritta in C++ e Icinga Web 2 è un potente framework PHP per applicazioni Web con un design pulito e ridotto. Per eseguire i suoi script di file, sul server devono essere installati e operativi un server Web, come il server HTTP Apache, e un gateway di elaborazione PHP. Ho installato il server web Apache, MySQL e tutti i moduli PHP richiesti necessari da Icinga con il comando seguente:
# apt install apache2 libapache2-mod-php7.0 php7.0-xml php7.0-opcache php7.0-xml php7.0-mbstring php7.0-json php7.0-curl php7.0-ldap php7.0-cli php7.0-gd php7.0-intl php7.0-readline php7.0-pgsql
# apt install mariadb-server mariadb-client php7.0-mysql
Avvia/abilita il servizio Apache/MySQL.
# systemctl enable apache2 mariadb
# systemctl start apache2 mariadb
# systemctl status apache2 mariadb
Dopo che Apache, MySQL e PHP sono stati installati, puoi verificare se il server web è attivo e funzionante sfogliando l'IP del server o puoi anche confermare testando le connessioni di rete in ascolto sulle porte corrispondenti o tramite il servizio utilizzando il comando netstat dalla console con privilegi di root come di seguito:
# netstat -plan | grep :80
tcp6 0 0 :::80 :::* LISTEN 19097/apache2
tcp6 0 0 127.0.0.1:80 127.0.0.1:40780 TIME_WAIT -
# netstat -plan | grep mysql
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 14240/mysqld
unix 2 [ ACC ] STREAM LISTENING 52783 14240/mysqld /var/run/mysqld/mysqld.sock
Crea database MySQL per Icinga2
Innanzitutto, dobbiamo accedere alla console MySQL ed eseguire il seguente comando per proteggere il database MariaDB e impostare una password di root:
# mysql_secure_installation
Ora possiamo creare due database che possono essere utilizzati dall'applicazione Icinga2 e un utente con una password per gestire questi database. Ho creato il database e cioè icingadb e icinga_users e concessi i privilegi per l'utente icinga_user con una password per accedere a quelli come di seguito:
~# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database icingadb;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on icingadb.* to 'icinga_user'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> create database icinga_users;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on icinga_users.* to 'icinga_user'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.01 sec)
Il database icingadb
viene creato per l'applicazione web icinga2 e il database icinga_users
è stato creato per memorizzare utenti dell'interfaccia web Icinga2, gruppi e altri dati personalizzati dell'interfaccia web.
Installazione di Icinga2
Dopo aver completato l'installazione di tutti i requisiti di sistema, possiamo procedere con l'installazione dell'applicazione Icinga2 insieme al modulo MySQL IDO. Stiamo usando MySQL come database esterno. Quindi, dobbiamo installare il modulo MySQL IDO che viene utilizzato per l'interfaccia web di Icinga2. Viene utilizzato per esportare tutte le informazioni di configurazione e di stato nel suo database. Icinga 2 ha pacchetti binari precompilati offerti dai repository Debian 9.3. Quindi, l'installazione può essere eseguita tramite il loro gestore di pacchetti apt come di seguito:
# apt install icinga2 icinga2-ido-mysql
Durante l'installazione sullo schermo apparirà una serie di richieste. In primo luogo, ti verrà chiesto se desideri configurare e abilitare Icinga 2 per utilizzare il modulo MySQL. Seleziona Yes
dal prompt e premi [enter]
tasto per continuare come illustrato nell'immagine sottostante.
Nel prompt successivo, ti verrà chiesto se desideri configurare il database per icinga2-ido-mysql con l'opzione dbconfig-common. Scegli No
dal prompt e premere [enter]
chiave per completare l'installazione di Icinga 2.
Dopo aver abilitato questo modulo e aver creato il nostro database, dobbiamo riavviare il nostro servizio Icinga2.
# systemctl start icinga2.service
# systemctl status icinga2.service
Assicurati che il file di configurazione di IDO MySQL sia impostato correttamente con le credenziali DB corrette.
# cat /etc/icinga2/features-enabled/ido-mysql.conf
/**
* The db_ido_mysql library implements IDO functionality
* for MySQL.
*/
library "db_ido_mysql"
object IdoMysqlConnection "ido-mysql" {
user = "icinga_user",
password = "password",
host = "localhost",
database = "icingadb"
}
Abilitazione dell'elenco delle funzionalità
Per impostazione predefinita, Icinga2 abilita le seguenti funzionalità. Possiamo abilitare qualsiasi funzione aggiuntiva all'elenco eseguendo questo comando icinga2 feature enable <feature name>
. Possiamo confermare le impostazioni abilitate eseguendo questo comando come di seguito:
~# icinga2 feature list
Disabled features: api command compatlog debuglog gelf graphite influxdb livestatus opentsdb perfdata statusdata syslog
Enabled features: checker ido-mysql mainlog notification
The following features are enabled by default:
Checker: This feature enables the execution of checks.
Mainlog: This feature enables the logging.
Notification: This feature enables notification mechanism.
IDO-mysql: Provides IDO module for the database.
Installazione del plug-in Icinga Web2
Il nostro prossimo passo è installare l'interfaccia web di Icinga 2 e i pacchetti di utilità della riga di comando dal repository Debian 9.3 usando il suo gestore di pacchetti.
#apt install icingaweb2 icingacli
Dopo l'installazione, è possibile riavviare il demone Icinga 2 per raccogliere tutte le modifiche e verificare lo stato dell'applicazione prima di procedere con la parte di configurazione.
# systemctl restart icinga2.service
# systemctl status icinga2.service
# systemctl restart apache2
Ora installa lo schema MySQL per il database Icinga eseguendo il comando seguente. Lo schema del database MySQL si trova nella directory /usr/share/icinga2-ido-mysql/schema/.
mysql -u root icingadb -p < /usr/share/icinga2-ido-mysql/schema/mysql.sql
Infine, possiamo generare il token di installazione per completare l'installazione del plugin Icinga web 2 tramite un'interfaccia web.
# icingacli setup token create
The newly generated setup token is: c25b22acfc9f9094
# icingacli setup token show
The current setup token is: c25b22acfc9f9094
Configurazione del plug-in Icinga Web 2
Dopo aver generato il token, possiamo iniziare a configurare il plugin Icinga Web 2 aprendo questo URL>> http://IP//icingaweb2/setup
nel tuo browser. Puoi navigare tra questi screenshot per avere più chiarezza al riguardo.
Fase 1:configurazione del token
Come primo passo, ti chiederà di fornire il token generato prima di iniziare la fase di installazione. Se non hai generato un token, puoi seguire le istruzioni fornite nello screenshot qui sopra per generare un token e procedere al passaggio successivo.
Fase 2:selezione dei moduli Icinga Web2
Dopo aver fornito il token, si passerà alla sezione successiva per la selezione dei moduli. Possiamo scegliere i moduli preferiti per procedere al passaggio successivo.
Fase 3:verifica delle impostazioni PHP
Per procedere ulteriormente, dobbiamo installare i moduli PHP mancanti e impostare il fuso orario corretto. Ho installato il modulo PHP mancante usando questo comando "apt install php7.0-pgsql"
e riavviato Apache per rendere effettive queste modifiche. Inoltre, puoi impostare un fuso orario corretto nel file di configurazione PHP /etc/php/7.0/apache2/php.ini
. Dopo aver soddisfatto le impostazioni richieste, puoi procedere alla fase successiva.
Fase 5:metodi di autenticazione
Dobbiamo scegliere il mezzo di autenticazione preferito per procedere con l'installazione. Come ho discusso prima, ho preferito scegliere il tipo di database per questo.
Fase 6:inserisci i dettagli del database
In questa fase aggiungi il nome del database MySQL Web Icinga 2 e le credenziali di accesso per questo database. Questo database verrà utilizzato per memorizzare utenti e gruppi dell'interfaccia web di Icinga 2. Utilizzare le informazioni sul database per il secondo database creato in precedenza. Aggiungi icingaweb_db come nome per questa risorsa e lascia le variabili Host, Port e Character set come predefinite. Non selezionare l'opzione Persistente e SSL. Premi il pulsante Convalida configurazione per convalidare la connessione al database, come mostrato nell'immagine sottostante. Al termine, premi il pulsante Avanti per passare alla sezione di installazione successiva.
Fase 7:Creazione degli accessi all'amministrazione di Icinga Web
Dopo aver autenticato con successo le nostre risorse di database, dobbiamo creare l'account amministrativo per la gestione dell'interfaccia Web di Icinga2. Scegli una password complessa per questo account. Al termine, premi il pulsante Avanti per passare alla schermata di installazione successiva.
Fase 8:scelta delle opzioni di configurazione dell'applicazione
Successivamente, dobbiamo configurare l'applicazione Icinga e la configurazione di registrazione con le seguenti impostazioni proprio come nello screenshot.
- Seleziona Mostra Stacktraces
- Tipo di archiviazione =Database
- Tipo di registrazione =File
- Livello di registrazione =Errore
- Percorso file =/var/log/icingaweb2/icingaweb2.log
È necessario creare questo file di registro dal backend del server e impostare l'autorizzazione/proprietà appropriata per garantire il corretto funzionamento dei registri di Icinga Web 2.
Fase 9:revisione di tutte le impostazioni scelte.
Questa schermata ti informerà che Icinga Web2 è stato configurato correttamente e un report dettagliato mostrerà tutte le configurazioni effettuate fino ad ora. Esamina il rapporto e premi il pulsante Avanti per passare alla sezione di installazione successiva.
Fase 10:configurazione del modulo di monitoraggio
Ora abbiamo completato la parte di autenticazione e segue con la configurazione del modulo di monitoraggio.
Come discusso in precedenza, il modulo Icinga IDO esporta tutte le informazioni sullo stato e le parti di configurazione nel database principale di Icinga. Quindi, dobbiamo selezionare questo modulo e configurarlo correttamente per aggiornare il database con le informazioni.
Qui dobbiamo fornire le informazioni principali del database per procedere. Compila i dettagli del database qui. Assicurati di impostare i privilegi appropriati per l'utente del database per qualsiasi modifica.
Configura Icinga Command Transport con le seguenti impostazioni e premi il pulsante Avanti per continuare.
- Nome del trasporto =inga2
- Tipo di trasporto =File di comando locale
- File di comando =/var/run/icinga2/cmd/icinga2.cmd
Non è necessario apportare alcuna modifica in questa fase di sicurezza. Possiamo semplicemente procedere con le impostazioni predefinite facendo clic su 'Next".
Fase 11:revisione delle opzioni di configurazione del modulo Monitoraggio
Questa fase ti informerà su tutta la parte di configurazione del modulo di monitoraggio che hai selezionato. Puoi semplicemente confermare le impostazioni e procedere ulteriormente per completare la configurazione.
Fase finale:accedi all'interfaccia Web
Dopo che il processo di installazione è stato completato con successo, un messaggio di congratulazioni ti informerà che Icinga Web 2 è stato installato correttamente. Premi sul Login link
per reindirizzare alla pagina di accesso di Icinga2.
Accedi a Icinga Web 2 con le credenziali configurate durante il processo di installazione e verrai indirizzato a Icinga Web 2 Dashboard,
Il nostro nodo principale viene aggiunto per impostazione predefinita a questo sistema. Possiamo vedere le notifiche di servizio per il nostro server principale Icinga qui. Oppure puoi semplicemente sfogliare questo URL http://IP/icingaweb2/
per accedere all'interfaccia web.
Possiamo aggiungere un numero qualsiasi di nodi a questo sistema di monitoraggio.
Conclusione
Abbiamo installato e configurato con successo l'applicazione di monitoraggio della rete Icinga 2 sul server Debian 9.3. Per maggiori dettagli sulla configurazione personalizzata, puoi fare riferimento a questa documentazione Icinga. Spero che questo articolo ti sia utile. Pubblica i tuoi preziosi commenti e suggerimenti su questo.