Installation Icinga2 & Icingaweb2 sur Debian 8
Sommaire
I. Présentation
Dans ce tutoriel nous verrons étape par étape l’installation du système de supervision Icinga2 et son interface web Icingaweb2 sur une machine Debian. A vos claviers !
II. Installation des dépôts
Tout d’abord nous allons installer les dépôts afin de pouvoir installer les paquets nécessaires pour icinga2.
wget -O - http://packages.icinga.org/icinga.key | apt-key add - echo 'deb http://packages.icinga.org/debian icinga-jessie main' >>/etc/apt/sources.list echo 'deb-src http://packages.icinga.org/debian icinga-jessie main' >>/etc/apt/sources.list apt-get update
III. Installation Icinga
Ensuite nous allons pouvoir installer le paquet icinga2 et démarrer le service icinga2.
apt-get install icinga2 /etc/init.d/icinga2 start
IV. Installation de la base de données
Si ce n’est pas fait, installez une base de données et son client. Elle servira pour stocker les données générées par le système de supervision. Ici j’ai choisi d’utiliser MySQL sur le même hôte, vous pouvez également utiliser PostgreSQL ou Oracle.
apt-get install mysql-server mysql-client
Vous devrez ensuite configurer le super mot de passe administrateur de la base de données.
V. Préparation de la base MySQL
Pour configurer l’enregistrement des données Icinga dans la base MySQL nous allons nous installer le paquet icinga2-ido-mysql, qui correspond à la base de données que j’ai choisie.
apt-get install icinga2-ido-mysql
On vous demandera alors s’il faut activer la fonctionnalité ido-mysql. Vous pouvez décliner la proposition, nous l’activerons juste après.
Ensuite nous allons laisser l’installateur se charger de la configuration de la base de données dans MySQL.
Suite à cela vous devrez entrer le mot de passe que vous avez défini pour l’administrateur MySQL.
Ensuite renseignez un nouveau mot de passe qui sera utilisé par Icinga afin d’accéder à la base et d’enregistrer les données.
Une fois la configuration terminée vous pourrez la vérifier dans le fichier ido-mysql.conf. Notez les différents paramètres, ils nous serviront pour la configuration de l’interface web.
cat /etc/icinga2/features-available/ido-mysql.conf
VI. Vérifier et activer les fonctionnalités
Avec la commande icinga2 vous pouvez faire tout un tas de choses, notamment activer et désactiver des fonctionnalités. Vous pourrez vérifier les fonctionnalités activées avec la commande suivante :
icinga2 feature list
Vous devrez activer les fonctionnalités ido-mysql, pour l’enregistrement des données dans MySQL. Et la fonctionnalité command, qui permettra notamment à l’interface web d’envoyer des commandes à Icinga. Si vous avez besoin d’autres fonctionnalités vous pourrez les activer/désactiver quand vous voulez.
icinga2 feature enable ido-mysql command
Après activation ou désactivation des fonctionnalités, n’oubliez pas de redémarrer le service Icinga2.
/etc/init.d/icinga2 restart
Félicitations, votre système de supervision est opérationnel ! Maintenant on va lui installer une sympathique petite interface web histoire d’avoir un petit aperçu de ce qu’il se passe là-dedans.
VII. Installation et configuration de l’interface Icingaweb2
Avant d’installer l’interface web, assurez-vous d’avoir un serveur web en marche. Si ce n’est pas fait, vous pouvez installer apache2.
apt-get install apache2
Une fois le serveur web prêt, vous pouvez installer le paquet icingaweb2.
apt-get install icingaweb2
Pour pouvoir commencer l’installation, vous devrez générer un token sur le serveur icinga.
icingacli setup token create
Notez bien le token qui viens d’être généré et rendez-vous sur la page http://X.X.X.X/icingaweb2/setup
Vous devriez alors tomber sur cette page, rentrez votre token et cliquez sur suivant.
Sur la fenêtre qui suit coché Monitoring et cliquez sur Next.
Le système vérifiera avant de lancer l’installation quelques dépendances pour le bon fonctionnement de l’interface.
Vous devriez avoir quelques dépendances non satisfaites. Si vous avez :
The PHP config `date.timezone' is not defined.
Changez la timezone d’apache dans le fichier /etc/php5/apache2/php.ini
date.timezone = europe/paris
Vous devriez également avoir quelques dépendances de modules PHP non satisfaites (Imagick et INTL). Installez-les :
apt-get install php5-intl php5-imagick
N’oubliez pas de redémarrer le service apache !
/etc/init.d/apache2 restart
Vous pouvez actualiser la page des dépendances avec le bouton refresh en bas de page, il vous restera normalement deux dépendances en avertissement :
The PHP module PDO-PostgreSQL is missing & The PHP module PDO-PostgreSQL is missing.
Ces modules servent pour l’utilisation de la base de données PostgreSQL. Elles ne sont pas indispensables, nous pouvons les ignorer vu que nous utilisons la base de données MySQL.
Vous pouvez donc passer à la suite. Choisissez votre mode d’authentification.
Ensuite, configurez l’endroit où seront stockées les préférences des utilisateurs de l’interface.
Ici vous devrez paramétrer l’accès à votre base de données MySQL pour que le système y créer une base contenant les paramètres utilisateurs. Utilisez un compte ayant les droits de création de la base. Ici j’ai utilisé l’administrateur de la base de données (root) pour une question pratique. Il est toutefois plus prudent d’utiliser un autre compte, cette connexion sera utilisée pour vérifier les logins des utilisateurs de l’interface :
Vous devrez ensuite donner un nom à ces paramètres de connexion.
Maintenant, créez votre premier utilisateur pour vous connecter à l’interface.
Ici vous allez paramétrer les différents paramètres de logs. Vous pouvez tout laisser par défaut et modifier les paramètres plus tard via l’interface web.
Maintenant nous allons configurer la source de données.
C’est ici que vous allez renseigner les paramètres du fichier /etc/icinga2/features-available/ido-mysql.conf créé précédemment.
Si vous avez le message suivant, c’est que vous avez oublié d’activer la fonctionnalité ido-mysql ou que vous avez oublié de redémarrer le service icinga2 suite à son activation.
A cette étape, vous définirez l’instance de supervision. Sauf configuration spécifique vous pouvez conserver les paramètres par défaut.
Enfin, pour la dernière étape on vous propose de protéger vos variables sensibles au travers d’une expression régulière. Toutes les variables correspondantes seront protégées.
Et voilà, si tout s’est bien passé votre interface Icingaweb2 est prête, vous n’avez plus qu’à vous connecter et découvrir ce qu’elle vous propose. Enjoy ! 🙂
Bonjour et merci de tous ces tutos !
J’avais essayé icinga2 et autre nagios-like mais je ne peux que conseiller d’essayer le fabuleux CENTREON qui a depuis beaucoup évolué et pris son autonomie par rapport à Nagios.
Un tuto sur son installation sous Debian 7 et 8 est disponible là:
http://www.sugarbug.web4me.fr/atelier/installations/debian/debian_centreon_26/
Et sur le site Officiel une version full packagée sous CentOS est téléchargeable sur le site officielle et une grande documentation en français (normal vu que l’équipe est française cocorico).
Le logiciel est openSource et par rapport à icinga2 et Nagios remonte beaucoup de + graphiques et est entièrement compatible avec les sondes Nagios, SNMP et autre plug-ins.
L’essayer ,c’est l’adopter.
PS: Je ne fais pas partie de l’équipe Centreon 😉
Salut Cyprien,
Merci pour ton tuto, je l’ai essayé aujourd’hui.
Cependant avec une Debian 8.1 et la dernière version d’Icinga2 j’ai rencontré une erreur au niveau de « icinga2 feature enable ido-mysql command » et résolu en suivi ce lien https://www.reddit.com/r/icinga/comments/2mkjoo/icinga2_another_instance_of_icinga_already/
La commande diffère légèrement (icinga2-enable-feature ido-mysql command).
Damien
Bonjour Damien,
Effectivement il semblerait que les commandes aient changé depuis la publication du tuto. Je fais les modifs rapidement, merci d’avoir remonté l’info 🙂
A+
Bonjour Damien,
Enfaite ton paquet icinga2 ne dois pas être à jour. Essaie de faire un apt-get dist-upgrade pour le mettre à niveau.
A+
Bonjour,
Sur Ubuntu je n’ai pu installer apt-get install icingaweb2 mais icinga-web. Mais impossible de lancer la génération du token.
Bonjour Lilp,
Je n’ai pas testé l’installation sur Ubuntu, mais as tu adapté les dépôts pour ta distribution? Tu as du installer l’ancienne version d’icingaweb ce qui explique que tu ne puisse pas généré le token. Regarde sur ce lien http://packages.icinga.org/ubuntu/ pour configurer le dépot icinga pour Ubuntu.
A+
Bonjour,
Merci pour ce tuto. J’ai tenté de le suivre sur une Debian 8.2 toute fraiche (avec uniquement serveur ssh et utilitaires usuels). Tout se passe bien jusqu’à ce que j’obtienne l’erreur « Connectivity validation failed, connection to the given resource not possible. » à l’étape Monitoring IDO Resource.
Cordialement
Bonjour Franck,
As tu bien vérifié que tu utilise les informations qui sont dans le fichier /etc/icinga2/features-available/ido-mysql.conf ?
Si tu as fait la configuration de ido-mysql comme dans le tuto, attention le user est icinga2-ido-mysq sans le ‘L’!
En espérant avoir résolu ton problème.
A+
bonjour
j ai le meme probleme et j ai utilise exactement les ressource de ido-mysql.conf la difference est que mon serve de base de donnee est externe
cordialement
Bonsoir,
J’ai tenté d’installer ICINGAWEB2 sans succcès:
-Toutes les étapes se sont bien passées jusq’au momnet de la validation:
Authentication configuration has been successfully written to: /etc/icingaweb2/authentication.ini
Unable to create account « admin ». An error occured:
ERROR: Zend_Db_Adapter_Exception in /usr/share/icingaweb2/library/vendor/Zend/Db/Adapter/Pdo/Abstract.php:139 with message: SQLSTATE[28000] [1045] Access denied for user ‘root’@’localhost’ (using password: YES)
Account « admin » has been successfully defined as initial administrator.
J’ai beau chercher, je ne vois pas l’erreur, si quelq’un peut me mettre sur le voie, ce serait cool.
Voici la totalité des logs :
Creating new database « icingaweb2″…
Creating database schema…
Login « root » already exists…
Required privileges were already granted to login « root ».
The database has been fully set up!
General configuration has been successfully written to: /etc/icingaweb2/config.ini
Authentication configuration has been successfully written to: /etc/icingaweb2/authentication.ini
Unable to create account « admin ». An error occured:
ERROR: Zend_Db_Adapter_Exception in /usr/share/icingaweb2/library/vendor/Zend/Db/Adapter/Pdo/Abstract.php:139 with message: SQLSTATE[28000] [1045] Access denied for user ‘root’@’localhost’ (using password: YES)
Account « admin » has been successfully defined as initial administrator.
User Group Backend configuration has been successfully written to: /etc/icingaweb2/groups.ini
Unable to create user group « Administrators ». An error occured:
ERROR: Zend_Db_Adapter_Exception in /usr/share/icingaweb2/library/vendor/Zend/Db/Adapter/Pdo/Abstract.php:139 with message: SQLSTATE[28000] [1045] Access denied for user ‘root’@’localhost’ (using password: YES)
Resource configuration has been successfully written to: /etc/icingaweb2/resources.ini
Monitoring backend configuration has been successfully written to: /etc/icingaweb2/modules/monitoring/backends.ini
Resource configuration has been successfully updated: /etc/icingaweb2/resources.ini
Command transport configuration has been successfully created: /etc/icingaweb2/modules/monitoring/commandtransports.ini
Monitoring security configuration has been successfully created: /etc/icingaweb2/modules/monitoring/config.ini
Module « monitoring » has been successfully enabled.
Bonjour Olivier,
Il semblerais qu’il y ai un problème d’authentification avec ton compte root (celui de la BDD) as tu regardé de ce côté la?
A+
Le seul tutoriel que j’ai trouvé pour réaliser cette installation sans soucis.
Merci ! vraiment !
Jessie 8.4
Fresh install de OVH « Jessie 8 »
Merci beaucoup pour ton tuto, j’ai seulement une petite question, je suis sous debian 7 et j’aimerais changer le port d’écoute de icingaweb2 pour le passer de 80 a 8080 mais je ne trouve pas le fichier de configuration qui me permettrait de faire cette modif.
En espérant que tu puisse encore m’aider.
Merci encore pour ton super tuto.
Ravis d’avoir pu t’aider 😉 c’est ton serveur web qui gère la partie web. En général Apache (en tout cas c’est celui utilisé dans ce tuto). Pour changer le port d’écoute il faut donc modifier la conf du serveur web apache. Pour cela je t’invite à lire ce tuto qui devrais t’aider:
http://www.it-connect.fr/changer-le-port-decoute-dapache2/
A+ 🙂
bonjour je suis debutant sur icinga2.mon plan est de connecte ma database qui est externe a icinga2 d on icingaweb2 mais je rencontre des problemes au niveau Monitoring-IDO-Ressource.
ma base de donnee est « icinga » et nom utilisateur « icinga2 » mais quand je rentre celle-ci j ai pour erreur :
« Connection failed SQLSTATE[42000] [1044] Access denied for user ‘icinga2’@’localhost’ to database ‘icinga' »
est ce quelqu un pourrait m aider
Bonjour Merci pour le tuto j’ai reussi j’ai reussi l’installation avec succes mais je voudrais savoir comment se fait l’ajout des hotes