Outils pour utilisateurs

Outils du site


adrien_khokholkoff:icinga2:installationweb

Installation et mise en place d'Icingaweb2

Prérequis

Comme pour Icinga2, une liste de paquets à installer au préalable se trouve ici.

En fonction de votre OS et de la version de celui-ci, il est possible que les paquets ne soient pas les même à installer et que les commandes ne soient pas identique étant donné que cette page sera rédigée sous un OS Debian stretch. Comme pour la partie icinga2, il faudra alors se référer à la documentation officielle que l'on peut trouver ici, ou chercher sur différents sites.

Configuration

Une fois que tous les paquets ont été installé, il va falloir s'occuper de la mise en place de l'interface web d'Icinga2. La configuration n'est pas compliquée si l'on suit toutes les étapes et que l'on fait bien attention à tout élément qui pourrait poser problème (dans le cas par exemple où un serveur web était déjà en place auparavant, bien vérifier que tous les modules sont bien activés…).

Tout d'abord, il va falloir rajouter dans PostgreSQL la nouvelle base de donnée qui correspondra à Icingaweb2 ainsi qu'un rôle pour gérer celle-ci. Comme pour Icinga2, il suffit de taper les commandes suivantes :

sudo -u postgres psql -c "CREATE ROLE webuser WITH LOGIN PASSWORD '********'"
sudo -u postgres createdb -O icingaweb -E UTF8 webuser
sudo -u postgres createlang plpgsql icingaweb (plus nécessaire dans les dernières versions)

Ensuite, il faut installer l'API qui sera utilisée afin de pouvoir gérer notre interface web Icinga2. Pour cela, il suffit simplement de taper la commande :

icinga2 api setup

Si tout se passe bien, la commande va générer un nouveau CA (Certificate Authority), une clé privée et activer la fonctionnalité “api” pour Icinga2. Pour que cet ajout soit pris en compte, il va falloir redémarrer le service grâce à la commande : systemctl restart icinga2.

On va maintenant aller faire un tour dans le fichier nouvellement créé qui se trouve dans /etc/icinga2/conf.d/api-users.conf. Dans ce dernier, on y retrouvera les lignes suivantes :

object ApiUser "webuser"{
  password = "xxxxxxxxx"      (Qu'il est impératif de modifier par celui que vous souhaitez car il sera demandé lors de la configuration par interface graphique de icingaweb2).
  permissions = [ "status/query", "actions/*", "objects/modify/*", "objects/query/*" ]
}

Comme après toute modification, on redémarre le service Icinga2, puis on va maintenant s'intéresser à la configuration liée à php7.0.
Tout d'abord, il va falloir accéder au fichier /etc/php/7.0/cli/php.ini afin de définir la timezone de notre serveur web. Cette étape sera importante afin de finaliser l'installation sur l'interface web.

[Date]
; Defines the default timezone used by the date functions
; https://php.net/date.timezone      (qui permet de connaître toutes les possibilités de timezone)
date.timezone = Europe/Paris         (par exemple)

Il va ensuite falloir apporter de nouvelles modifications au fichier /etc/postgresql/xx/main/pg_hba.conf pour y indiquer Icingaweb2.

# Icingaweb2
local     icingaweb     icingaweb                      md5
host      icingaweb     icingaweb     127.0.0.1/32     md5
host      icingaweb     icingaweb     ::1/128          md5

Il faudra également s'assurer que les différents modules nécessaires au bon fonctionnement d'Icingaweb2 soient activés, autrement, lorsque vous essaierez d'accéder à celle-ci, seulement une page blanche s'affichera. Dans ce cas-là, il est possible de faire un clique droit sur la page afin d'examiner le code source de la page. Il est fort probable que vous obtiendrez des informations qui vous permettront de détecter d'où vient le problème.

Dans mon cas, une erreur m'indiquait que le problème était lié à php et non pas à mon installation Icinga2/Icingaweb2, ce qui m'a permis de faciliter la recherche de la cause, notamment dans les fichiers de logs. C'est de cette manière que j'ai remarqué que le module php 7.0 n'était pas activé sur cette machine et que le module mpm_event posait problème à celui-ci, puisque lors de l'activation, l'erreur suivante remontait :

ERROR: Could not enable dependency mpm_prefork for php7.0, aborting

Il fallait simplement a2dismod mpm_event pour pouvoir a2enmod php7.0, puis en rafraîchissant ma page Icingaweb2, la page d'installation s'affichait correctement.

Afin de pouvoir aller plus loin, il va falloir générer un “token” qui permettra d'accéder à la phase de configuration. Pour cela, il suffit simplement de taper la commande : icingacli setup create token.
Une valeur devrait s'afficher correspondant à ce qu'il faut remplir. Dans le cas où vous auriez déjà créé auparavant ce token et que vous aimeriez bien le revoir à nouveau, il suffit de taper la commande : icingacli setup token show.

Lors de l'installation, plusieurs étapes vont s'afficher, la majorité correspondant à la configuration que vous voulez faire pour votre interface web, mais une page en particulier est importante à étudier. Après avoir indiqué les différents modules que vous voulez sur votre Icingaweb2, la page suivante nommée “Icinga web 2” affichera tous les différents modules afin d'assurer le bon fonctionnement de votre interface web.

Si l'une des cases présentes n'est pas verte, cela veut dire que soit le paquet n'est pas installé ou que le module est mal configuré et il faudra donc apporter les modifications nécessaires pour corriger le problème. Les messages sont souvent suffisamment explicites pour savoir d'où vient le problème et savoir comment le résoudre, mais dans le cas contraire, il suffit juste de chercher sur Internet afin de trouver la réponse.

adrien_khokholkoff/icinga2/installationweb.txt · Dernière modification: 2018/05/18 16:24 par Adrien Khokholkoff