Icinga 2 è un sistema di monitoraggio delle risorse di rete open source ampiamente utilizzato e Icinga Web 2 è l'interfaccia Web ufficiale per Icinga 2.
In questo tutorial, spiegherò come installarli entrambi su un server Ubuntu 16.04.
Prerequisiti
- Un'istanza del server Vultr Ubuntu 16.04 appena distribuita.
- Un utente sudo. Per ulteriori informazioni sulla creazione di un utente sudo su Ubuntu, vedere le istruzioni su Debian in un altro tutorial di Vultr .
Passaggio 1: aggiornare il sistema
Accedere da un terminale SSH come utente sudo, quindi aggiornare il sistema all'ultimo stato stabile usando i seguenti comandi:
sudo apt-get update -y
sudo apt-get upgrade -y
sudo shutdown -r now
Dopo il riavvio, utilizzare lo stesso utente sudo per accedere.
Passaggio 2: installare Apache
Installa Apache usando il seguente comando:
sudo apt-get install apache2 -y
Elimina la pagina di benvenuto predefinita di Ubuntu Apache:
sudo rm /var/www/html/index.html
Per motivi di sicurezza, è necessario vietare ad Apache di esporre /var/www/html
ai visitatori file e directory all'interno della directory radice Web :
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf
Avviare il servizio Apache e avviarlo all'avvio:
sudo systemctl start apache2.service
sudo systemctl enable apache2.service
Per impostazione predefinita, il firewall UFW è disabilitato su un'istanza del server Vultr Ubuntu 16.04 appena distribuita. Utilizzare i comandi seguenti per abilitare il firewall UFW e consentire il traffico in entrata di SSH, HTTP e HTTPS:
sudo ufw app list
sudo ufw allow OpenSSH
sudo ufw allow in "Apache Full"
sudo ufw enable
Passaggio 4: installare MariaDB
4.1) Utilizzare il seguente comando per installare MariaDB:
sudo apt-get install mariadb-client mariadb-server -y
4.2) Avviare il servizio MariaDB:
sudo systemctl start mysql.service
sudo systemctl enable mysql.service
4.3) Assicurare l'installazione di MariaDB:
sudo /usr/bin/mysql_secure_installation
Durante il processo interattivo, rispondi alle domande una ad una come di seguito:
Enter current password for root (enter for none): Enter
Set root password? [Y/n]: Y
New password: <your-password>
Re-enter new password: <your-password>
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
Nota : sostituire <your-password>
con la propria password di root MySQL.
4.4) Modifica il plug-in di autenticazione root
dell'utente MySQL :
sudo mysql -u root -p
Utilizzare la password di root MariaDB impostata in precedenza per accedere.
Nella shell di MySQL:
UPDATE mysql.user SET authentication_string=PASSWORD('<your-password>'), plugin='mysql_native_password' WHERE user='root';
FLUSH PRIVILEGES;
EXIT;
Nota : sostituire <your-password>
con la propria password di root MySQL.
Passaggio 5: installa PHP
Installa PHP 7.0 e diverse estensioni per Icinga 2 e Icinga Web 2:
sudo apt-get install php7.0 libapache2-mod-php7.0 php7.0-gd php7.0-intl php7.0-xml php7.0-ldap php7.0-mysql php7.0-pgsql php-imagick -y
Installa la versione corrente di Composer:
cd
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Nota : i comandi sopra potrebbero non essere aggiornati in futuro, quindi dovresti sempre ottenere l'ultima versione dal sito ufficiale di Composer .
Per comodità, sposta lo script Composer composer.phar
in /usr/local/bin
e rinominalo composer
:
sudo mv ~/composer.phar /usr/local/bin/composer
Installa zip e decomprimi:
sudo apt-get install zip unzip -y
Installa il componente Db ZendFramework usando Composer:
composer require zendframework/zend-db
Quindi è necessario impostare il fuso orario corretto per la propria macchina, che può essere determinato dal sito Web ufficiale di PHP . Ad esempio, se l'istanza del server risiede nel data center di Vultr Los Angeles, il valore del fuso orario è America/Los_Angeles
.
Apri il file di configurazione di PHP con l'editor vi:
sudo vi /etc/php/7.0/apache2/php.ini
Trova la linea:
;date.timezone =
Modificalo in:
date.timezone = America/Los_Angeles
Salva ed esci:
:wq!
Riavvia il servizio Apache per rendere effettive le nuove impostazioni:
sudo systemctl restart apache2.service
Passaggio 6: installa Icinga 2 e i suoi plugin
Imposta il repository APT Icinga:
cd
wget -O - http://packages.icinga.org/icinga.key | sudo apt-key add -
sudo add-apt-repository 'deb http://packages.icinga.org/ubuntu icinga-xenial main'
sudo apt-get update
Installa Icinga 2 e diversi plugin usando il repository APT Icinga:
sudo apt-get install icinga2 nagios-plugins -y
Per ulteriori informazioni sui plug-in Icinga 2, visitare il sito Web del progetto Plugin di monitoraggio .
Avvia il servizio Icinga 2:
sudo systemctl start icinga2.service
sudo systemctl enable icinga2.service
Per impostazione predefinita, il programma Icinga 2 abiliterà tre funzionalità: checker, mainlog e notifica. Puoi confermare che usando il seguente comando:
sudo icinga2 feature list
Passaggio 7: installare i moduli IDO di Icinga 2
7.1) Installare i moduli IDO (Icinga Data Output) per MySQL
sudo apt-get install icinga2-ido-mysql
Nella Configuring icinga2-ido-mysql
procedura guidata, quando ti viene chiesto se desideri abilitare la funzione ido-mysql di Icinga 2, scegli <No>
. Abiliteremo manualmente questa funzione in un secondo momento.
Quando ti viene chiesto se desideri configurare un database per icinga2-ido-mysql, scegli <No>
. Al contrario, è possibile creare manualmente un database come spiegato nel passaggio 7.2.
7.2) Creare un database per Icinga 2
Accedi alla shell MySQL come root:
sudo mysql -u root -p
Utilizzare la password di root MariaDB impostata nel passaggio 4 per accedere.
Nella shell MySQL, creare un database denominato icinga
e un utente del database denominato icinga
con la password icinga
, quindi concedere i privilegi su questo database a questo utente del database.
CREATE DATABASE icinga;
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga';
FLUSH PRIVILEGES;
EXIT;
7.3) Importare lo schema IDO di Icinga 2
sudo mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql
Quando richiesto, immettere la password di root MariaDB per completare il processo.
7.4) Abilitare il modulo IDO MySQL
sudo vi /etc/icinga2/features-available/ido-mysql.conf
Trova queste righe:
user = "icinga2",
password = "",
host = "localhost",
database = "icinga2"
Modificali come di seguito:
user = "icinga"
password = "icinga"
host = "localhost"
database = "icinga"
Salva ed esci:
:wq!
Abilita la funzione ido-mysql:
sudo icinga2 feature enable ido-mysql
sudo systemctl restart icinga2.service
Passaggio 8: installare Icinga Web 2
8.1) Configurare la pipe di comando esterna
sudo icinga2 feature enable command
sudo systemctl restart icinga2.service
sudo icinga2 feature list
Prima di poter inviare comandi a Icinga 2 utilizzando un'interfaccia Web, è necessario aggiungere l' www-data
utente al icingacmd
gruppo:
sudo groupadd icingacmd
sudo usermod -a -G icingacmd www-data
Utilizzare il comando seguente per confermare la configurazione:
id www-data
8.2) Installare i pacchetti Icinga Web 2
sudo apt-get install icingaweb2 icingaweb2-module-monitoring icingaweb2-module-doc icingacli -y
Puntare la directory principale Web di Apache in una posizione specificata da Icinga Web 2:
sudo icingacli setup config webserver apache --document-root /usr/share/icingaweb2/public
sudo systemctl restart apache2.service
8.3) Installazione del database Icinga Web 2
sudo mysql -u root -p
CREATE DATABASE icingaweb2;
EXIT;
8.4) Caricare lo schema del database Icinga Web 2
mysql -u root -p icingaweb2 < /usr/share/icingaweb2/etc/schema/mysql.schema.sql
8.5) Generare un token di installazione per un uso successivo nella procedura guidata di installazione Web di Icinga Web 2
sudo icingacli setup token create
8.6) Avviare la procedura guidata di installazione di Icinga 2 nell'interfaccia web
Puntare il browser Web al seguente URL:
http://<your-serve-ip>/icingaweb2/setup
8.7) Nella pagina iniziale, immettere il token di installazione generato in precedenza, quindi fare clic sul Next
pulsante.
8.8) Nella pagina Moduli, selezionare uno o più moduli che si desidera abilitare (almeno, il Monitoring
modulo è richiesto), quindi fare clic sul Next
pulsante.
8.9) Nella pagina Requisiti, assicurarsi che ogni elemento richiesto sia soddisfatto, quindi fare clic sul Next
pulsante.
8.10) Nella pagina Autenticazione, è necessario scegliere il metodo di autenticazione quando si accede a Icinga Web 2. Qui è possibile scegliere Database
, quindi fare clic sul Next
pulsante.
8.11) Nella pagina delle risorse del database, compilare tutti i campi richiesti come di seguito, quindi fare clic sul Next
pulsante.
- Nome risorsa *: icingaweb_db
- Tipo di database *: MySQL
- Host *: localhost
- Nome database *: icingaweb2
- Nome utente *: root
- Password *: <MariaDB-root-password>
8.12) Nella pagina Backend di autenticazione, utilizzando il nome back-end predefinito icingaweb2
, fare clic sul Next
pulsante per andare avanti.
8.13) Nella pagina di amministrazione, imposta il primo account amministrativo di Icinga Web 2 (diciamo che è icingaweb2admin
) e la password (diciamo che è icingaweb2pass
), quindi fai clic sul Next
pulsante.
8.14) Nella pagina Configurazione applicazione, è possibile regolare le opzioni di configurazione relative all'applicazione e alla registrazione in base alle proprie esigenze. Per ora, puoi utilizzare i valori predefiniti elencati di seguito e fare clic sul Next
pulsante per procedere.
- Mostra Stacktraces: selezionato
- Tipo di archiviazione delle preferenze dell'utente *: database
- Tipo di registrazione *: Syslog
- Livello di registrazione *: errore
- Prefisso applicazione *: icingaweb2
8.15) Nella pagina Revisione, ricontrolla la tua configurazione, quindi fai clic sul Next
pulsante.
8.16) Nella pagina di benvenuto della configurazione del modulo di monitoraggio, fare clic sul Next
pulsante.
8.17) Nella pagina Monitoraggio back-end, utilizzare il nome back-end predefinito icinga
e il tipo di back-end IDO
, quindi fare clic sul Next
pulsante.
8.18) Nella pagina Monitoraggio risorse IDO, immettere i dettagli del database IDO impostati in precedenza, quindi fare clic sul Next
pulsante.
- Nome risorsa *: icinga_ido
- Tipo di database *: MySQL
- Host *: localhost
- Nome database *: icinga
- Nome utente *: icinga
- Password *: icinga
8.19) Nella pagina Trasporto comandi, utilizzare ancora questi valori predefiniti elencati di seguito. Fai clic sul Next
pulsante per andare avanti.
- Nome trasporto *: icinga2
- Tipo di trasporto *: file di comando locale
- File di comando *: /var/run/icinga2/cmd/icinga2.cmd
8.20) Nella pagina Sicurezza monitoraggio, utilizzare ancora il valore predefinito:
- Variabili personalizzate protette: * pw *, * pass *, community
Fare clic sul Next
pulsante per passare alla pagina successiva.
8.21) Nella pagina di revisione, ricontrolla la tua configurazione, quindi fai clic sul Finish
pulsante.
8.22) Complimenti! pagina, fare clic sul Login to Icinga Web 2
pulsante per passare alla pagina di accesso di Icinga Web 2. Utilizzare l'account amministrativo e la password Icinga Web 2 impostati in precedenza per accedere. Sentiti libero di esplorare la dashboard di Icinga Web 2.
Questo conclude il nostro tutorial. Grazie per aver letto.