Translation(s): English - Français
Contents
-
Icinga2 - Installation et configuration
- Présentation de cette documentation
-
Installation
- Installation des paquets
- Activation de PHP-FPM
- Colorisation syntaxique Icinga pour Vim
- Création de l'hôte virtuel Apache2 pour Icinga
- Activation des modules et fonctionnalitées d'Icinga
- Sécuriser le serveur MariaDB
- Création de la base de données Icinga IDO
- Remplir la base de données Icinga IDO
- Création de la base de données IcingaWeb2
- Remplir la base de données IcingaWeb
- Création des fichiers de configuration
- Création de l'utilisateur administrateur d'Icinga Web
- Dépannage
- Autres pages Wiki
- Liens externes
Icinga2 - Installation et configuration
Présentation de cette documentation
Cette présentation à pour but de vous accompagner pour l'installation et la configuration de base des éléments suivants :
- Icinga2 - Moteur de supervision,
?IcingaWeb2 - Interface Web.
Cette documentation a été écrite et testée sur les versions suivantes de Debian·:
- Debian 10 (Buster)
Installation
Installation des paquets
Pour commencer, nous avons besoin de rechercher la liste des paquets puis de procéder à l'installation des paquets requis.
Rechargement de la liste des paquets·:
apt update
Installation des paquets ( pour Debian 10 ) :
DEBIAN_FRONTEND=noninteractive apt-get -y install \ icinga2 \ icingacli \ icingaweb2 \ icinga2-ido-mysql \ mariadb-client \ mariadb-server \ monitoring-plugins \ apache2 \ libapache2-mod-rpaf \ php-fpm \ curl \ vim-icinga2 \ vim-addon-manager \ nagios-nrpe-plugin \ unscd \ nagios-plugins-contrib \ unattended-upgrades
Notes sur les paquets :
vim-icinga2 - Colorisation syntaxique Icinga pour Vim
unscd - Pour faire du cache DNS
unattended-upgrades - Pour installer automatiquement les mises à jour de sécurité
Activation de PHP-FPM
PHP-FPM est un gestionnaire de processus FastCGI permettant la communication entre le serveur Apache2 et PHP. Il s'agit d'une alternative à l'implémentation FastCGI de PHP permettant de traiter plus de charge.
Pour Debian 10 :
a2enmod proxy_fcgi setenvif a2enconf php7.3-fpm apache2ctl configtest systemctl restart php7.3-fpm.service systemctl restart apache2.service
Colorisation syntaxique Icinga pour Vim
Si vous utilisez vim pour iditer vos fichiers de configuration, vous pouvez facilement activer la colorisation syntaxique comme suit :
vim-addon-manager -w install icinga2
Création de l'hôte virtuel Apache2 pour Icinga
ATTENTION ! Cet hôte virtuel n'est pas sécurisé (il étouche en HTTP et non en HTTPS). Si une connexion en entrée d'Internet est désirée, nous vous recommandons de paramétrer cette hôte virtuel en HTTPS. Par exemple, vous pouvez regarder du coté de LetsEncrypt.
Avant, vous avez besoin de définir les variables suivantes. Vous devez changer les valeurs :
FQDN="icinga.example.com" EMAIL="moi@example.com"
Maintenant vous pouvez copier/coller les lignes suivantes pour créer le fichier /etc/apache2/sites-available/icinga.conf
cat << EOF > /etc/apache2/sites-available/icinga.conf
<VirtualHost *:80>
ServerName $FQDN
ServerAdmin $EMAIL
DocumentRoot "/usr/share/icingaweb2/public"
<Directory "/usr/share/icingaweb2/public">
Options SymLinksIfOwnerMatch
AllowOverride None
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAll>
Require all granted
</RequireAll>
</IfModule>
SetEnv ICINGAWEB_CONFIGDIR "/etc/icingaweb2"
EnableSendfile Off
<IfModule mod_rewrite.c>
RewriteEngine on
# RewriteBase /icingaweb2/
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
</IfModule>
<IfModule !mod_rewrite.c>
DirectoryIndex error_norewrite.html
ErrorDocument 404 /error_norewrite.html
</IfModule>
</Directory>
ErrorLog /var/log/apache2/icinga-error.log
CustomLog /var/log/apache2/icinga-access.log combined
</VirtualHost>
EOFMaintenant vous pouvez activer l'hôte virtuel Icinga dans Apache2, tester la configuration et recharger Apache2
a2ensite icinga.conf apache2ctl configtest systemctl reload apache2
Activation des modules et fonctionnalitées d'Icinga
ido-mysql - Connexion entre Icinga et MariaDB
monitoring - Module de supervision
icinga2 feature enable command ido-mysql icingacli module enable monitoring
Sécuriser le serveur MariaDB
Pour sécuriser l'installation de MariaDB, vous avez le choix entre l'exécution du script embarqué et le faire vous même à la main.
Méthode 1 - script embarqué :
mysql_secure_installation
Méthode 2 - à la main :
# Suppression des utilisateur annonymes
mysql -e "DELETE FROM mysql.user WHERE User='';"
# S'arrurer que l'utilisateur root ne puisse pas se connecter à distance
mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"
# Suppression de la base de donnée de test
mysql -e "DROP DATABASE IF EXISTS test;"
mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\_%';"
# Appliquer les changements
mysql -e "FLUSH PRIVILEGES"
Création de la base de données Icinga IDO
Vous avez besoin de créer la base de données Icinga IDO. Pour cela, nous récupérons le mot de passe actuel dans le fichier de configuration :
ICINGA_IDO_PASSWORD="$(awk -F'"' '/password/ {print$2}' /etc/icinga2/features-available/ido-mysql.conf)"Et maintenant, nous pouvons créer la basse de données :
mysql <<< "
CREATE DATABASE icinga2;
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE
ON icinga2.*
TO 'icinga2'@'localhost'
IDENTIFIED BY '$ICINGA_IDO_PASSWORD';
FLUSH PRIVILEGES;
"
Remplir la base de données Icinga IDO
mysql icinga2 < /usr/share/icinga2-ido-mysql/schema/mysql.sql
Création de la base de données IcingaWeb2
Vous avez besoin de créer la base de données ?IcingaWeb2.
Avant, vous avez besoin de définir les variables suivantes. Vous devez changer les valeurs :
ICINGAWEB2_DB_PASSWORD="changeme"
Et maintenant nous pouvons créer la base de données : And then we can create the database:
mysql <<< "
CREATE DATABASE icingaweb2;
GRANT ALL
ON icingaweb2.*
TO 'icingaweb2'@'localhost'
IDENTIFIED BY '$ICINGAWEB2_DB_PASSWORD';
FLUSH PRIVILEGES;
"
Remplir la base de données IcingaWeb
mysql icingaweb2 < /usr/share/icingaweb2/etc/schema/mysql.schema.sql
Création des fichiers de configuration
Nous allons maintenant créer les fichiers de configuration finaux.
Avant, vous devez définir quelques valeurs :
ICINGA_WEB_ADMIN_USER="admin" ICINGA_WEB_ADMIN_PWD="changeme"
Et maintenant, il suffit de copier/coller le contenu suivant :
# roles.ini cat << EOF > /etc/icingaweb2/roles.ini [Administrators] users = "$ICINGA_WEB_ADMIN_USER" permissions = "*" groups = "Administrators" EOF # groups.ini cat << EOF > /etc/icingaweb2/groups.ini [icingaweb2] backend = "db" resource = "icingaweb_db" EOF # config.ini cat << EOF > /etc/icingaweb2/config.ini [global] show_stacktraces = "1" config_backend = "db" config_resource = "icingaweb_db" # [logging] log = "syslog" level = "ERROR" application = "icingaweb2" facility = "user" EOF # authentication.ini cat << EOF > /etc/icingaweb2/authentication.ini [icingaweb2] backend = "db" resource = "icingaweb_db" EOF # resources.ini cat << EOF > /etc/icingaweb2/resources.ini [icingaweb_db] type = "db" db = "mysql" host = "localhost" port = "" dbname = "icingaweb2" username = "icingaweb2" password = "$ICINGAWEB2_DB_PASSWORD" charset = "UTF8" persistent = "0" use_ssl = "0" # [icinga_ido] type = "db" db = "mysql" host = "localhost" port = "" dbname = "icinga2" username = "icinga2" password = "$ICINGA_IDO_PASSWORD" charset = "latin1" persistent = "0" use_ssl = "0" EOF mkdir /etc/icingaweb2/modules/monitoring/ # config.ini cat << EOF > /etc/icingaweb2/modules/monitoring/config.ini [security] protected_customvars = "*pw*,*pass*,community" EOF # commandtransports.ini cat << EOF > /etc/icingaweb2/modules/monitoring/commandtransports.ini [icinga2] transport = "local" path = "/var/run/icinga2/cmd/icinga2.cmd" EOF # backends.ini cat << EOF > /etc/icingaweb2/modules/monitoring/backends.ini [icinga] type = "ido" resource = "icinga_ido" EOF
Création de l'utilisateur administrateur d'Icinga Web
# Création d'un hash à partir du mot de passe
HASH_ICINGA_WEB_ADMIN_PASSWORD=$(openssl passwd -1 "$ICINGA_WEB_ADMIN_PWD")
# Création de l'utilisateur dans la base
mysql icingaweb2 -Bse "
INSERT INTO icingaweb_user
(name, active, password_hash)
VALUES ('$ICINGA_WEB_ADMIN_USER', 1, '$HASH_ICINGA_WEB_ADMIN_PASSWORD');
"
Dépannage
Liste des répertoires utiles :
- /etc/apache2
- /etc/icinga2
- /etc/icingaweb2
- /var/lib/icinga2
- /usr/share/icinga2
Autres pages Wiki
