Outils pour utilisateurs

Outils du site


admin:monitoring:base-deployment

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
admin:monitoring:base-deployment [2024/07/18 10:44] – [Déploiement] adminadmin:monitoring:base-deployment [2025/12/02 13:14] (Version actuelle) – Libera remplace Freenode fhenry2
Ligne 1: Ligne 1:
 ====== Mise en place de l'infra de supervision ====== ====== Mise en place de l'infra de supervision ======
  
-<note important>Ici on parle de l'installation du serveur maître et de l'IHM web. Pour l'ajout du monitoring sur une machine, consulter [[admin:monitoring:add-host|cette page]].</note>+<note important>Ici on parle de l'installation du serveur maître et de l'IHM Web. Pour l'ajout du monitoring sur une machine, consulter [[admin:monitoring:add-host|cette page]].</note>
  
 ===== Prérequis ===== ===== Prérequis =====
  
-  * enregistrement DNS, +  * Enregistrement DNS ; 
-  * reverse proxy + TLS sur le bastion, +  * //Reverse proxy// + TLS sur le bastion ; 
-  * serveur httpd fonctionnel en local.+  * Serveur ''httpd'' fonctionnel en local.
  
 ===== Installation du serveur maître ===== ===== Installation du serveur maître =====
  
-<note tip>Doc officielle : [[https://docs.icinga.com/icinga2/latest/doc/module/icinga2/toc#!/icinga2/latest/doc/module/icinga2/chapter/getting-started#installing-icinga2|sur le site web]].</note>+<note tip>Docofficielle : [[https://docs.icinga.com/icinga2/latest/doc/module/icinga2/toc#!/icinga2/latest/doc/module/icinga2/chapter/getting-started#installing-icinga2|sur le site Web]].</note>
  
-Icinga2 est packagé et le paquet debian aide sur qq étapes. Pour l'installation :+Icinga2 est empaqueté et le paquet Debian aide sur quelques étapes. Pour l'installation :
  
-  apt install icinga2 vim-icinga2 monitoring-plugins+<code bash> 
 +apt install icinga2 vim-icinga2 monitoring-plugins 
 +</code>
  
 Icinga doit tourner : Icinga doit tourner :
  
-  systemctl status icinga2+<code bash> 
 +systemctl status icinga2 
 +</code>
  
-Installation du greffon vim :+Installation du greffon Vim :
  
-  apt install vim-addon-manager +<code bash> 
-  vim-addons install icinga2+apt install vim-addon-manager 
 +vim-addons install icinga2 
 +</code>
  
 Mise en place de la base de données : Mise en place de la base de données :
  
-  apt install mariadb-server mariadb-client +<code bash> 
-  apt install icinga2-ido-mysql+apt install mariadb-server mariadb-client 
 +apt install icinga2-ido-mysql 
 +</code>
  
-Les réponses que l'installeur peut attendre : oui à la préconfiguration puis vide au mot de passe. Si besoin les details d'accès à la BDD (user,password,database) seront dans ''/etc/icinga2/features-{en,dis}abled/ido-mysql.conf''+Les réponses que l'installeur peut attendre : oui à la préconfiguration puis vide au mot de passe. Si besoin les details d'accès à la BDD (''user''''password''''database'') seront dans ''/etc/icinga2/features-{en,dis}abled/ido-mysql.conf''.
  
 Activation des fonctions utiles : Activation des fonctions utiles :
  
-  icinga2 feature enable ido-mysql +<code bash> 
-  icinga2 feature enable command+icinga2 feature enable ido-mysql 
 +icinga2 feature enable command 
 +</code>
  
 Redémarrage pour la prise en compte : Redémarrage pour la prise en compte :
  
-  systemctl restart icinga2+<code bash> 
 +systemctl restart icinga2 
 +</code>
  
-===== Installation de l'IHM web =====+===== Installation de l'IHM Web =====
  
 <note tip>Doc officielle : [[https://docs.icinga.com/icinga2/latest/doc/module/icinga2/toc#!/icinga2/latest/doc/module/icinga2/chapter/getting-started#setting-up-icingaweb2|sur le site web]].</note> <note tip>Doc officielle : [[https://docs.icinga.com/icinga2/latest/doc/module/icinga2/toc#!/icinga2/latest/doc/module/icinga2/chapter/getting-started#setting-up-icingaweb2|sur le site web]].</note>
  
-L'interface web d'Icinga2 est fort séparée du cœur d'exécution (qui sera commun aux maîtres et esclaves). On parle d'Icingaweb2. Celui-ci échange avec Icinga2 via la base de données et via une possibilité de commande locale. On installera également icingacli qui aide sur la gestion des modules d'Icingaweb2.+L'interface Web d'Icinga2 est fort séparée du cœur d'exécution (qui sera commun aux maîtres et esclaves). On parle d'Icingaweb2. Celui-ci échange avec Icinga2 via la base de données et via une possibilité de commande locale. On installera également ''icingacli'' qui aide sur la gestion des modules d'Icingaweb2.
  
-Icingaweb2 est packagé et le paquet debian aide sur qq étapes. Pour l'installation :+Icingaweb2 est empaqueté et le paquet Debian aide sur quelques étapes. Pour l'installation : 
 + 
 +<code bash> 
 +apt install icingacli icingaweb2 icingaweb2-module-monitoring php-mysql php7.0-intl 
 +usermod -a -G icingaweb2 www-data 
 +</code>
          
-  apt install icingacli icingaweb2 icingaweb2-module-monitoring php-mysql php7.0-intl +==== Configuration Nginx ====
-  usermod -a -G icingaweb2 www-data +
-     +
-==== Configuration nginx ====+
  
 <note tip> <note tip>
-Pour rappel on suppose que le reverse proxy fait déjà le job. Sinon, la documentation est [[admin:procédures:ajout-d-un-site-web|ici]].</note>+Pour rappel on suppose que le //reverse proxy// fait déjà le boulot. 
 +</note>
  
-On commence par partir d'une conf de base :+On commence par partir d'une configuration de base :
  
-<code conf /etc/nginx/sites-available/icinga.chapril.org>+<file nginx /etc/nginx/sites-available/icinga.chapril.org>
 server { server {
     listen 80;     listen 80;
Ligne 69: Ligne 84:
     server_name icinga.chapril.org;     server_name icinga.chapril.org;
          
 +</file>
 +
 +Puis on enrichit la configuration à l'aide de ''icingacli'' :
 +
 +<code bash>
 +icingacli setup config webserver nginx --document-root /usr/share/icingaweb2/public >> /etc/nginx/sites-available/icingaweb2.conf
 </code> </code>
  
-Puis on enrichi la conf à l'aide de ''icingacli'' +Il faut ensuite fermer l'accolade finale, reformater, et re-définir ''fastcgi_pass'' au profit de
-  icingacli setup config webserver nginx --document-root /usr/share/icingaweb2/public >> /etc/nginx/sites-available/icingaweb2.conf+
  
-Il faut ensuite fermer l'accolade finale, reformatter, et re-définir ''fastcgi_pass'' au profit de +<file nginx /etc/nginx/sites-available/icingaweb2.conf>
-<code conf /etc/nginx/sites-available/icingaweb2.conf>+
 fastcgi_pass unix:/run/php/php7.0-fpm.sock fastcgi_pass unix:/run/php/php7.0-fpm.sock
-</code>+</file>
  
-Il faut aussi définir dans ''/etc/php/7.0/fpm/php.ini'' +Il faut aussi définir dans ''/etc/php/7.0/fpm/php.ini'' :
-<code conf /etc/php/7.0/fpm/php.ini> +
-  date.timezone = Europe/Paris +
-</code>+
  
-Ensuite on active le site +<file ini /etc/php/7.0/fpm/php.ini> 
-  ln -s /etc/nginx/sites-available/icinga.chapril.org /etc/nginx/sites-enabled/icinga.chapril.org +date.timezone = Europe/Paris 
-  nginx -t +</file> 
-  systemctl reload nginx+ 
 +Ensuite on active le site 
 + 
 +<code bash> 
 +ln -s /etc/nginx/sites-available/icinga.chapril.org /etc/nginx/sites-enabled/icinga.chapril.org 
 +nginx -t 
 +systemctl reload nginx 
 +</code>
  
 ==== Finalisation de l'installation ==== ==== Finalisation de l'installation ====
  
-Le setup d'icinga va exiger un jeton d'authentification, qu'on génère ainsi : +Le //setup// d'Icinga va exiger un jeton d'authentification, qu'on génère ainsi :
-  icingacli setup token create +
-  => The newly generated setup token is: deadbeef+
  
-Il suffit ensuite d'ouvrir https://icinga.chapril.org/icingaweb2/setup dans un butineur, et de placer le jeton deadbeef...+<code bash> 
 +icingacli setup token create 
 +</code>
  
-<note tip>Si vous avez oubliez le jeton : +<code> 
-  icingacli setup token show+=> The newly generated setup token is: deadbeef 
 +</code> 
 + 
 +Il suffit ensuite d'ouvrir https://icinga.chapril.org/icingaweb2/setup dans un butineur et de placer le jeton ''deadbeef''… 
 + 
 +<note tip>Si vous avez oublié le jeton : 
 +<code bash> 
 +icingacli setup token show 
 +</code>
 </note> </note>
          
-Ensuite laissez vous faire. Il faudra configurer l'accès à la base de données d'Icinga2 pour lire l'état du monitoring, et configurer une base propre à Icingaweb2 pour son fonctionnement propre.+Ensuite laissez-vous faire. Il faudra configurer l'accès à la base de données d'Icinga2 pour lire l'état du //monitoring//, et configurer une base propre à Icingaweb2 pour son fonctionnement propre.
  
-Si besoin, création d'une base icingaweb2 :+Si besoin, création d'une base Icingaweb2 :
  
-  =(^-^)=root@admin:~# mariadb +<code> 
-  MariaDB [(none)]> CREATE DATABASE icingaweb2; +=(^-^)=root@admin:~# mariadb 
-  Query OK, 1 row affected (0.00 sec) +MariaDB [(none)]> CREATE DATABASE icingaweb2; 
-  MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icingaweb2.* TO 'icingaweb2'@'localhost' IDENTIFIED BY 'icingaweb2'; +Query OK, 1 row affected (0.00 sec) 
-  Query OK, 0 rows affected (0.01 sec)+MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icingaweb2.* TO 'icingaweb2'@'localhost' IDENTIFIED BY 'icingaweb2'; 
 +Query OK, 0 rows affected (0.01 sec) 
 +</code>
      
-Après tout ça, votre Icingaweb2 devrait être fonctionnel. Si le monitoring n'apparaît pas dans l'IHM web, il faut peut être activer le module : +Après tout ça, votre Icingaweb2 devrait être fonctionnel. Si le //monitoring// n'apparaît pas dans l'IHM Web, il faut peut-être activer le module :
-  icingacli module enable monitoring+
  
 +<code bash>
 +icingacli module enable monitoring
 +</code>
  
 ==== Personnalisation du logo ==== ==== Personnalisation du logo ====
-Afin de ne pas confondre les sites web Icinga2 April et Chapril, changement du logo Icinga sur le Chapril.+ 
 +Afin de ne pas confondre les sites Web Icinga2 April et Chapril, changement du logo Icinga sur le Chapril.
  
 Dans ''root@admin:/var/www/icinga.chapril.org/public/img/'', ajout de l'image modifiée du logo Icinga2 auquel a été ajouté le logo Chapril : Dans ''root@admin:/var/www/icinga.chapril.org/public/img/'', ajout de l'image modifiée du logo Icinga2 auquel a été ajouté le logo Chapril :
Ligne 123: Ligne 159:
  
 Dans ''root@admin:/etc/nginx/sites-enabled/icinga.chapril.org'', ajout de : Dans ''root@admin:/etc/nginx/sites-enabled/icinga.chapril.org'', ajout de :
-<code>+ 
 +<code nginx>
     location = /icingaweb2/img/icinga-logo.svg {     location = /icingaweb2/img/icinga-logo.svg {
       alias /var/www/icinga.chapril.org/public/img/icinga-chapril-logo.svg;       alias /var/www/icinga.chapril.org/public/img/icinga-chapril-logo.svg;
Ligne 131: Ligne 168:
 ===== Configuration du serveur maître ===== ===== Configuration du serveur maître =====
  
-<note tip>Doc officielle : [[https://docs.icinga.com/icinga2/latest/doc/module/icinga2/toc#!/icinga2/latest/doc/module/icinga2/chapter/distributed-monitoring#distributed-monitoring-setup-master|sur le site web]].</note>+<note tip>Doc officielle : [[https://docs.icinga.com/icinga2/latest/doc/module/icinga2/toc#!/icinga2/latest/doc/module/icinga2/chapter/distributed-monitoring#distributed-monitoring-setup-master|sur le site Web]].</note>
  
 <note important> <note important>
-Remarque : globalement on n'utilisera que des fqdn locaux au cluster, dont on est sûr qu'il ne résolvent que sur des ip privées. Ici le nom de la machine est ''admin.cluster.chapril.org''.</note>+Remarque : globalement on n'utilisera que des fqdn locaux au cluster, dont on est sûr qu'il ne résolvent que sur des IP privées. Ici le nom de la machine est ''admin.cluster.chapril.org''.</note>
  
-Le node wizard d'Icinga2 prend ici tout en mains :+Le //node wizard// d'Icinga2 prend ici tout en mains :
  
 <code> <code>
Ligne 183: Ligne 220:
  
 Pour donner un aperçu : Pour donner un aperçu :
-  * Le fichier ''/etc/icinga2/zones.conf'' défini les zones. Chaque machine du cluster doit s'y trouver. +  * Le fichier ''/etc/icinga2/zones.conf'' défini les zones. Chaque machine du cluster doit s'y trouver ; 
-  * Les configurations génériques sont dans une zone globale et situés ici : ''/etc/icinga2/zones.d/global-templates/''. A priori ce qui vous intéressera le plus sera +  * Les configurations génériques sont dans une zone globale et situées ici : ''/etc/icinga2/zones.d/global-templates/'' incluant notamment 
-      * ''zones.d/global-templates/groups.conf'' +      * ''zones.d/global-templates/groups.conf'', 
-      * ''zones.d/global-templates/services/*'' +      * ''zones.d/global-templates/services/*'' ; 
-  * les configurations propres aux machines sont dans ''zones.d/master'' :<code conf tree /etc/icinga2/zones.d/master/>+  * Les configurations propres aux machines sont dans ''zones.d/master'' :<code conf tree /etc/icinga2/zones.d/master/>
     /etc/icinga2/zones.d/master/     /etc/icinga2/zones.d/master/
     ├── cluster     ├── cluster
Ligne 205: Ligne 242:
 ===== Installation d'un bot IRC : Chatonic ===== ===== Installation d'un bot IRC : Chatonic =====
  
-Le bot s'appelle Chatonic et est présent sur le canal IRC #april-chapril du réseau Freenode+Le bot s'appelle Chatonic et est présent sur le canal IRC [[irc://irc.libera.chat/#april-chapril|#april-chapril]] du réseau [[https://libera.chat/|Libera]].
  
 Quelques informations : Quelques informations :
-  * écrit en Python3 ; +  * Écrit en Python3 ; 
-  * dépôt des sources : https://forge.april.org/adminsys/icingabot+  * Dépôt des sources : https://forge.april.org/adminsys/icingabot.
  
 On va utiliser un l'API d'Icinga2. Pour activer l'API Icinga2 : On va utiliser un l'API d'Icinga2. Pour activer l'API Icinga2 :
-  # icinga2 feature enable api 
  
-Pour installer un wrapper IRC pour Python : +<code bash> 
-  # apt install python3-irc+icinga2 feature enable api 
 +</code>
  
 +Pour installer un //wrapper// IRC pour Python :
 +
 +<code bash>
 +apt install python3-irc
 +</code>
  
 ==== Déploiement ==== ==== Déploiement ====
 +
 Création d'un espace de déploiement : Création d'un espace de déploiement :
 +
 <code bash> <code bash>
 mkdir /srv/chatonic mkdir /srv/chatonic
Ligne 225: Ligne 269:
  
 Clonage : Clonage :
 +
 <code bash> <code bash>
 cd /srv/chatonic cd /srv/chatonic
 git clone april@agir.april.org:/srv/git/chatonic git git clone april@agir.april.org:/srv/git/chatonic git
-</code> 
-(/!\ chemin source du clonage peut-être à revoir /!\ Au pire, cloner chez soi et après scp sur serveur) 
 </code> </code>
 +
 +<note important>Le chemin source du clonage peut être à revoir! Au pire, cloner chez soi et après copier via ''scp'' vers le serveur.
 +</note>
  
 Déploiement du fichier de configuration : Déploiement du fichier de configuration :
Ligne 243: Ligne 289:
   * …   * …
  
-Définir le service dans systemd :+Installer le service dans systemd :
 <code bash> <code bash>
-ln -s /etc/systemd/system/chatonic.service /srv/chatonic/git/icingabot.service # "linked unit" => ne sera pris en compte qu'au prochain redémarrage de systemd+# "linked unit" => ne sera pris en compte qu'au prochain redémarrage de systemd 
 +ln -s /etc/systemd/system/chatonic.service /srv/chatonic/git/icingabot.service 
 </code> </code>
  
  
-Configurer le lancement du service au boot :+Configurer le lancement du service au //boot// :
 <code bash> <code bash>
 systemctl enable chatonic systemctl enable chatonic
 +</code>
 +<code>
 Created symlink /etc/systemd/system/multi-user.target.wants/chatonic.service → /etc/systemd/system/chatonic.service. Created symlink /etc/systemd/system/multi-user.target.wants/chatonic.service → /etc/systemd/system/chatonic.service.
 </code> </code>
  
-==== Logs ==== +==== Journalisation ==== 
-Des logs sont consultables via SystemD :+ 
 +Des //logs// sont consultables via systemd :
 <code bash> <code bash>
 journal -f -u chatonic journal -f -u chatonic
Ligne 263: Ligne 313:
 ===== Désactivation de perfdata ====== ===== Désactivation de perfdata ======
  
-À l'usage, le dossier ''/var/spool/icinga2/perfdata/'' se remplissait excessivement (5 Go). Normalement, les fichiers doivent y être traité dans la minute et là on avait plusieurs mois de fichiers.+À l'usage, le dossier ''/var/spool/icinga2/perfdata/'' se remplissait excessivement (plus de 5 Go). Normalement, les fichiers doivent y être traités dans la minute et là on avait plusieurs mois de fichiers.
  
 Réponse du mainteneur officiel : Réponse du mainteneur officiel :
Ligne 279: Ligne 329:
 </code> </code>
  
-Donc désactivation de perfdata : +Donc désactivation de ''perfdata'' : 
-<code>+ 
 +<code bash>
 icinga2 feature disable perfdata icinga2 feature disable perfdata
 rm -f /var/spool/icinga2/perfdata/* rm -f /var/spool/icinga2/perfdata/*
 </code> </code>
admin/monitoring/base-deployment.1721299484.txt.gz · Dernière modification : 2024/07/18 10:44 de admin