User:Noah2/Icinga

From ArchWiki

Icinga est un programme open source de gestion de serveurs, de services et de réseaux. Il gère des serveurs et services spécifiés par l'utilisateur, qui alerte en cas de problèmes, d'erreur, ou d'améliorations. Cet article traite de l'installation et de la configuration d'Icinga.

Installation

Avant d'installer le paquet d'Icinga, créer l'utilisateur suivant icinga:icinga, à l'aide des commandes suivantes:

# groupadd -g 667 icinga
# useradd -u 667 -g icinga -G http -d /dev/null -s /bin/false icinga

Installez le paquet icingaAUR ou le paquet icinga2AUR à partir de l'AUR.

Les utilisateurs peuvent aussi installer monitoring-plugins à partir des dépôts Communautaires.

La configuration d'Icinga

Copiez les examples de fichiers de configurations en tant que root:

# cd /etc/icinga
# cp cgi.cfg.sample cgi.cfg
# cp resource.cfg.sample resource.cfg
# cp icinga.cfg.sample icinga.cfg
# cp objects/commands.cfg.sample objects/commands.cfg
# cp objects/contacts.cfg.sample objects/contacts.cfg
# cp objects/localhost.cfg.sample objects/localhost.cfg
# cp objects/templates.cfg.sample objects/templates.cfg
# cp objects/timeperiods.cfg.sample objects/timeperiods.cfg

Editez /etc/icinga/resource.cfg:

/etc/icinga/resource.cfg
# Default monitoring plugins
$USER1$=/usr/lib/monitoring-plugins
# or legacy Nagios plugins 
#$USER1$=/usr/share/nagios/libexec

Configuration d'Icinga 2

Icinga 2 utilise par défaut les fichiers et les répertoires suivants:

# /etc/icinga2	                Contient les fichiers de configurations d'Icinga 2
# /etc/init.d/icinga2	        Contient le script d'initialisation d'Icinga 2
# /usr/sbin/icinga2*	        Contient le binaire d'Icinga 2
# /usr/share/doc/icinga2	Contient la documentation inclut par défaut d'Icinga 2.
# /usr/share/icinga2/include	Contient la bibliothèque de modèles/templates d'Icinga et la configuration des commandes dédiés aux plugins.
# /var/run/icinga2	        Contient le fichier PID
# /var/run/icinga2/cmd	        Contient le socket de status, et la sortie de commandes.
# /var/cache/icinga2	        Contient les fichiers status.dat/objects.cache, icinga2.debug
# /var/spool/icinga2	        Utilisé par les fichiers de récupérations de données.
# /var/lib/icinga2	        Contient le fichier d'état d'Icinga 2, journal des logs de services, local CA et des fichiers de configurations.
# /var/log/icinga2	        Emplacement du fichier log et le dossier compat/ dédié à la fonction CompatLogger.

Configuration du serveur web

Créer le fichier htpasswd.users avec un nom d'utilisateur et un mot de passe.

# htpasswd -c /etc/icinga/htpasswd.users icingaadmin

Si vous définissez foo un autre utilisateur, vous devrez lui octroire des permissions. Modifiez ce fichier /etc/icinga/cgi.cfg

authorized_for_system_information=icingaadmin,foo
authorized_...
...

Configuration supplémentaire de Nginx

Configurer l'authentification:

 location /icinga/ {
   alias                   /usr/share/webapps/icinga/;
   auth_basic              "Restricted";
   auth_basic_user_file    /etc/icinga/htpasswd.users;
 }

Configurer le CGI:

   location ~ ^/icinga/(.*)\.cgi$ {
     root           /usr/share/webapps/;
     fastcgi_pass   unix:/var/run/fcgiwrap.sock;
     include        fastcgi.conf;
     fastcgi_param  AUTH_USER          $remote_user;
     fastcgi_param  REMOTE_USER        $remote_user;
   }

Icinga-web

Suivez Install Web Application Package.

Installez icinga-webAUR à partir de l'AUR.

Configurer IDOUtils

 # cd /etc/icinga
 # mv idomod.cfg-sample idomod.cfg
 # mv ido2db.cfg-sample ido2db.cfg
 
 # cd /etc/icinga/modules
 # mv idoutils.cfg-sample idoutils.cfg
 
 ! Configuration de la base de données
 
 (Mysql)
 $ mysql -u root -p
 > CREATE USER 'icinga'@'localhost' IDENTIFIED BY 'icinga';
 > CREATE DATABASE icinga;
 > GRANT USAGE ON icinga.* TO 'icinga'@'localhost' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
 > GRANT SELECT , INSERT , UPDATE , DELETE, DROP, CREATE VIEW, INDEX
  ON icinga.* TO 'icinga'@'localhost';
 > FLUSH PRIVILEGES;
 > quit
 
 $ mysql -u root -p icinga < /usr/share/icinga/idoutils/db/mysql/mysql.sql

Configurer le serveur web

Des examples de fichiers de configuration sont présents dans les fichiers suivants:

 /etc/icinga-web/apache.example.conf
 /etc/icinga-web/nginx.example.conf

Si vous obtenez l'erreur 503 'Access denied', vérifiez dans ces fichiers de configurations si vous êtes autorisé à visiter la page web:

 Order allow,deny
 Allow from all

dans les sections <Directory "/usr/local/icinga-web/lib/ext3/"> et <Directory "/usr/local/icinga-web/pub/">.

Configurer PHP

Éditez le fichier /etc/php.ini

 open_basedir = ...:/usr/share/icinga-web:/var/cache/icinga-web:/var/log/icinga
 extension=pdo_mysql
 extension=xsl
 extension=sockets

Configurer la base de données

MySQL
! Créer une base de données, et des permissions.
# mysql -u root -p
> CREATE USER 'icinga_web'@'localhost' IDENTIFIED BY 'icinga_web';
> CREATE DATABASE icinga_web;
> GRANT USAGE ON icinga_web.* TO 'icinga_web'@'localhost' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX ON icinga_web.* TO 'icinga_web'@'localhost';
> quit
  
 ! Importer le modèle.
# mysql -u root -p icinga_web < /usr/share/icinga-web/etc/schema/mysql.sql

Pour finir

! Démarrer IDOUtils
# systemctl start ido2db

! Démarrer Icinga
# systemctl start icinga

! Démarrer Mysql
# systemctl start mysqld

! Démarrer le serveur web
# systemctl start httpd ou nginx

! Rendez-vous sur http://localhost/icinga-web
> login with 'root' and 'password'

Mettre à jour la base de données

Une nouvelle version nécessite généralement une mise à jour de la base de données. Voici le script de mise à jour SQl:

/usr/share/icinga/idoutils/db/mysql/upgrade
/usr/share/icinga-web/etc/schema/updates/mysql

Les commandes pour mettre à jour avec ces script sont:

# mysql -u root -p icinga < ./mysql-upgrade-1.8.0.sql 
# mysql -u root -p icinga_web < ./mysql_v1-7-2_to_v1-8-0.sql
# systemctl --system daemon-reload
# systemctl restart icinga

Regardez aussi