Icinga 2 est un système de surveillance des ressources réseau open source largement utilisé, et Icinga Web 2 est l'interface Web officielle pour Icinga 2.
Dans ce tutoriel, je vais vous expliquer comment les installer tous les deux sur un serveur Ubuntu 16.04.
Conditions préalables
- Une instance de serveur Vultr Ubuntu 16.04 récemment déployée.
- Un utilisateur sudo. Pour en savoir plus sur la création d'un utilisateur sudo sur Ubuntu, consultez les instructions sur Debian dans un autre tutoriel Vultr .
Étape 1: mettre à jour le système
Connectez-vous à partir d'un terminal SSH en tant qu'utilisateur sudo, puis mettez à jour le système vers le dernier état stable à l'aide des commandes suivantes:
sudo apt-get update -y
sudo apt-get upgrade -y
sudo shutdown -r now
Après le redémarrage, utilisez le même utilisateur sudo pour vous connecter.
Étape 2: installer Apache
Installez Apache à l'aide de la commande suivante:
sudo apt-get install apache2 -y
Supprimez la page d'accueil d'Ubuntu Apache par défaut:
sudo rm /var/www/html/index.html
Pour des raisons de sécurité, vous devez interdire à Apache d'exposer /var/www/html
aux visiteurs des fichiers et des répertoires du répertoire racine Web :
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf
Démarrez le service Apache et lancez-le au démarrage:
sudo systemctl start apache2.service
sudo systemctl enable apache2.service
Par défaut, le pare-feu UFW est désactivé sur une instance de serveur Vultr Ubuntu 16.04 récemment déployée. Utilisez les commandes suivantes pour activer le pare-feu UFW et autoriser le trafic entrant SSH, HTTP et HTTPS:
sudo ufw app list
sudo ufw allow OpenSSH
sudo ufw allow in "Apache Full"
sudo ufw enable
Étape 4: installer MariaDB
4.1) Utilisez la commande suivante pour installer MariaDB:
sudo apt-get install mariadb-client mariadb-server -y
4.2) Démarrez le service MariaDB:
sudo systemctl start mysql.service
sudo systemctl enable mysql.service
4.3) Sécurisez l'installation de MariaDB:
sudo /usr/bin/mysql_secure_installation
Pendant le processus interactif, répondez aux questions une par une comme ci-dessous:
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
Remarque : remplacez-le <your-password>
par votre propre mot de passe root MySQL.
4.4) Modifiez le plugin d'authentification de l' root
utilisateur MySQL :
sudo mysql -u root -p
Utilisez le mot de passe root MariaDB que vous avez défini précédemment pour vous connecter.
Dans le shell MySQL:
UPDATE mysql.user SET authentication_string=PASSWORD('<your-password>'), plugin='mysql_native_password' WHERE user='root';
FLUSH PRIVILEGES;
EXIT;
Remarque : remplacez-le <your-password>
par votre propre mot de passe root MySQL.
Étape 5: installer PHP
Installez PHP 7.0 et plusieurs extensions pour Icinga 2 et 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
Installez la version actuelle de 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');"
Remarque : Les commandes ci-dessus peuvent être obsolètes à l'avenir, vous devez donc toujours obtenir la dernière version sur le site officiel de Composer .
Par souci de commodité, déplacez le script Composer composer.phar
vers /usr/local/bin
et renommez-le composer
:
sudo mv ~/composer.phar /usr/local/bin/composer
Installez zip et décompressez:
sudo apt-get install zip unzip -y
Installez le composant ZendFramework Db à l'aide de Composer:
composer require zendframework/zend-db
Ensuite, vous devez configurer le fuseau horaire approprié pour votre machine, qui peut être déterminé sur le site officiel de PHP . Par exemple, si votre instance de serveur réside dans le centre de données Vultr Los Angeles, la valeur de fuseau horaire correspondant est America/Los_Angeles
.
Ouvrez le fichier de configuration PHP avec l'éditeur vi:
sudo vi /etc/php/7.0/apache2/php.ini
Trouvez la ligne:
;date.timezone =
Changez-le en:
date.timezone = America/Los_Angeles
Sauvegarder et quitter:
:wq!
Redémarrez le service Apache afin de mettre en vigueur de nouveaux paramètres:
sudo systemctl restart apache2.service
Étape 6: Installez Icinga 2 et ses plugins
Configurer le dépôt Icinga APT:
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
Installez Icinga 2 et plusieurs plugins à l'aide du dépôt Icinga APT:
sudo apt-get install icinga2 nagios-plugins -y
Pour en savoir plus sur les plugins Icinga 2, veuillez visiter le site Web Monitoring Plugins Project .
Démarrez le service Icinga 2:
sudo systemctl start icinga2.service
sudo systemctl enable icinga2.service
Par défaut, le programme Icinga 2 activera trois fonctionnalités: vérificateur, journal principal et notification. Vous pouvez confirmer cela en utilisant la commande suivante:
sudo icinga2 feature list
Étape 7: configuration des modules IDO Icinga 2
7.1) Installer les modules IDO (Icinga Data Output) pour MySQL
sudo apt-get install icinga2-ido-mysql
Dans l' Configuring icinga2-ido-mysql
assistant, lorsqu'on vous demande si vous souhaitez activer la fonction ido-mysql d'Icinga 2, choisissez <No>
. Nous activerons manuellement cette fonctionnalité ultérieurement.
Lorsqu'on vous demande si vous souhaitez configurer une base de données pour icinga2-ido-mysql, choisissez <No>
. Au lieu de cela, vous pouvez créer manuellement une base de données comme expliqué à l'étape 7.2.
7.2) Créer une base de données pour Icinga 2
Connectez-vous au shell MySQL en tant que root:
sudo mysql -u root -p
Utilisez le mot de passe root MariaDB que vous avez défini à l'étape 4 pour vous connecter.
Dans le shell MySQL, créez une base de données nommée icinga
et un utilisateur de base de données nommé icinga
avec le mot de passe icinga
, puis accordez des privilèges sur cette base de données à cet utilisateur de base de données.
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) Importer le schéma IDO Icinga 2
sudo mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql
Lorsque vous y êtes invité, entrez le mot de passe racine MariaDB pour terminer le travail.
7.4) Activer le module IDO MySQL
sudo vi /etc/icinga2/features-available/ido-mysql.conf
Trouvez ces lignes:
user = "icinga2",
password = "",
host = "localhost",
database = "icinga2"
Modifiez-les comme ci-dessous:
user = "icinga"
password = "icinga"
host = "localhost"
database = "icinga"
Sauvegarder et quitter:
:wq!
Activez la fonction ido-mysql:
sudo icinga2 feature enable ido-mysql
sudo systemctl restart icinga2.service
Étape 8: Installez Icinga Web 2
8.1) Configurer le canal de commande externe
sudo icinga2 feature enable command
sudo systemctl restart icinga2.service
sudo icinga2 feature list
Avant de pouvoir envoyer des commandes à Icinga 2 à l'aide d'une interface Web, vous devez ajouter l' www-data
utilisateur au icingacmd
groupe:
sudo groupadd icingacmd
sudo usermod -a -G icingacmd www-data
Utilisez la commande suivante pour confirmer votre configuration:
id www-data
8.2) Installer les packages Icinga Web 2
sudo apt-get install icingaweb2 icingaweb2-module-monitoring icingaweb2-module-doc icingacli -y
Pointez le répertoire racine Web Apache vers un emplacement spécifié par Icinga Web 2:
sudo icingacli setup config webserver apache --document-root /usr/share/icingaweb2/public
sudo systemctl restart apache2.service
8.3) Configuration de la base de données Icinga Web 2
sudo mysql -u root -p
CREATE DATABASE icingaweb2;
EXIT;
8.4) Charger le schéma de la base de données Icinga Web 2
mysql -u root -p icingaweb2 < /usr/share/icingaweb2/etc/schema/mysql.schema.sql
8.5) Générez un jeton de configuration pour une utilisation ultérieure dans l'assistant d'installation Web Icinga Web 2
sudo icingacli setup token create
8.6) Lancer l'assistant d'installation Icinga 2 dans l'interface Web
Pointez votre navigateur Web sur l'URL suivante:
http://<your-serve-ip>/icingaweb2/setup
8.7) Sur la page d'accueil, saisissez le jeton de configuration que vous avez généré précédemment, puis cliquez sur le Next
bouton.
8.8) Sur la page Modules, sélectionnez un ou plusieurs modules que vous souhaitez activer (au moins, le Monitoring
module est requis), puis cliquez sur le Next
bouton.
8.9) Sur la page Exigences, assurez-vous que chaque élément requis est satisfait, puis cliquez sur le Next
bouton.
8.10) Sur la page Authentification, vous devez choisir la méthode d'authentification lors de l'accès à Icinga Web 2. Ici, vous pouvez choisir Database
, puis cliquer sur le Next
bouton.
8.11) Sur la page Ressource de base de données, remplissez tous les champs obligatoires comme ci-dessous, puis cliquez sur le Next
bouton.
- Nom de la ressource *: icingaweb_db
- Type de base de données *: MySQL
- Hôte *: localhost
- Nom de la base de données *: icingaweb2
- Nom d'utilisateur *: root
- Mot de passe *: <MariaDB-root-password>
8.12) Sur la page Backend d'authentification, en utilisant le nom du backend par défaut icingaweb2
, cliquez sur le Next
bouton pour continuer.
8.13) Sur la page Administration, configurez le premier compte administratif Icinga Web 2 (dites-le icingaweb2admin
) et votre mot de passe (dites-le icingaweb2pass
), puis cliquez sur le Next
bouton.
8.14) Sur la page Configuration de l'application, vous pouvez ajuster les options de configuration liées à l'application et à la journalisation en fonction de vos besoins. Pour l'instant, vous pouvez utiliser les valeurs par défaut répertoriées ci-dessous et cliquer sur le Next
bouton pour continuer.
- Afficher les traces de pile: coché
- Type de stockage des préférences utilisateur *: Base de données
- Type de journalisation *: Syslog
- Niveau de journalisation *: erreur
- Préfixe d'application *: icingaweb2
8.15) Sur la page Review, revérifiez votre configuration, puis cliquez sur le Next
bouton.
8.16) Sur la page d'accueil de configuration du module de surveillance, cliquez sur le Next
bouton.
8.17) Sur la page Surveillance du backend, utilisez le nom icinga
et le type de backend par défaut IDO
, puis cliquez sur le Next
bouton.
8.18) Sur la page Monitoring IDO Resource, saisissez les détails de la base de données IDO que vous avez configurés précédemment, puis cliquez sur le Next
bouton.
- Nom de la ressource *: icinga_ido
- Type de base de données *: MySQL
- Hôte *: localhost
- Nom de la base de données *: icinga
- Nom d'utilisateur *: icinga
- Mot de passe *: icinga
8.19) Sur la page Transport de commandes, utilisez toujours les valeurs par défaut répertoriées ci-dessous. Cliquez sur le Next
bouton pour continuer.
- Nom du transport *: icinga2
- Type de transport *: Fichier de commande local
- Fichier de commandes *: /var/run/icinga2/cmd/icinga2.cmd
8.20) Sur la page Surveillance de la sécurité, utilisez toujours la valeur par défaut:
- Variables personnalisées protégées: * pw *, * pass *, communauté
Cliquez sur le Next
bouton pour passer à la page suivante.
8.21) Sur la page de révision, revérifiez votre configuration, puis cliquez sur le Finish
bouton.
8.22) Sur les félicitations! , cliquez sur le Login to Icinga Web 2
bouton pour accéder à la page de connexion Icinga Web 2. Utilisez le compte administratif et le mot de passe Icinga Web 2 que vous avez définis plus tôt pour vous connecter. N'hésitez pas à explorer le tableau de bord Icinga Web 2.
Cela conclut notre tutoriel. Merci pour la lecture.