Supervision Zabbix

Projet Zabbix

Prérequis Zabbix :

Prérequis matériels

Les exigences matérielles dépendent du nombre d’hôtes et d’éléments surveillés. Voici une estimation pour un petit environnement :

ÉlémentMinimumRecommandé
Processeur1 core2+ cores
RAM1 Go2 Go ou plus
Espace disque5 Go10 Go+ (selon la rétention des données)

1.2 Prérequis logiciels

Système d’exploitation

Zabbix peut être installé sur :

  • Linux : Debian, Ubuntu, CentOS, RHEL, Rocky Linux, etc.
  • FreeBSD
  • (Peut aussi être installé sur Windows, mais c’est rare pour le serveur)

Serveur Web

  • Apache, Nginx, ou autre serveur web compatible PHP

Base de données

  • MySQL / MariaDB (le plus courant)
  • PostgreSQL
  • Oracle (support limité)
  • SQLite (à usage de test uniquement)

PHP

Zabbix frontend (interface web) nécessite PHP avec certaines extensions activées :

  • php-mbstring
  • php-bcmath
  • php-gd
  • php-xml
  • php-mysql ou php-pgsql selon la BDD
  • php-json
  • php-ldap (si utilisé)
  • php-gettext

1.3 Ports réseau

Assurez-vous que les ports suivants sont ouverts :

ComposantPortProtocole
Zabbix Server10051TCP
Zabbix Agent10050TCP
Interface Web80 (HTTP) / 443 (HTTPS)TCP
Base de données3306 (MySQL) / 5432 (PostgreSQL)TCP

2.             Les avantages de Zabbix

🏷️ Avantage🔍 Description
💸 Gratuit & Open SourcePas de coût de licence, accès au code source, communauté active.
🖥️ Supervision unifiéeSurveille serveurs, réseaux, applications, bases de données, VMs, conteneurs, cloud, etc.
🧲 Méthodes de collecte variéesAgent Zabbix, SNMP, JMX, IPMI, HTTP, SSH, scripts personnalisés.
🌐 Interface web moderneTableaux de bord personnalisables, cartes réseau interactives, rapports graphiques.
🔔 Alertes intelligentesNotifications par e-mail, Slack, SMS, etc., avec gestion des escalades.
🔎 Découverte automatiqueDétecte automatiquement les hôtes, services, interfaces réseau.
🧩 Templates prédéfinisPour Linux, Windows, Cisco, bases de données, avec possibilité de personnalisation.
Haute performance & scalabilitéSupporte des milliers d’hôtes, proxies Zabbix pour une architecture distribuée.
🔐 SécuriséChiffrement TLS/SSL, rôles utilisateurs, audit complet des actions.
🤖 API complètePour automatiser, intégrer avec d’autres outils IT (CMDB, scripts, DevOps…).

3.             Qu’est-ce que Zabbix ?

Zabbix est un outil de supervision open source (gratuit) qui permet de surveiller en temps réel les performances, la disponibilité et la santé de vos équipements informatiques.

3.1 Fonction principale

Zabbix collecte, stocke, analyse et affiche des données de monitoring pour :

  • les serveurs
  • les équipements réseau
  • les applications
  • les bases de données
  • les services cloud
  • les conteneurs Docker, VMs, etc.

3.2 Comment ça fonctionne ?

Zabbix est basé sur une architecture en plusieurs composants :

ComposantRôle
Zabbix ServerCœur du système, collecte et analyse les données.
Zabbix AgentPetit programme installé sur les hôtes pour transmettre des métriques.
Base de donnéesStocke toutes les données collectées (MySQL, PostgreSQL, etc.).
Frontend WebInterface web pour visualiser les graphiques, alertes, tableaux de bord.
Zabbix ProxyIntermédiaire pour superviser des réseaux distants ou alléger la charge du serveur.

4.            Environnement du LAB

4.1 Architecture de Base à Superviser

  1. HAProxy : 192.168.1.100 (répartition de charge)
  2. WEB1 :      192.168.1.101 (Apache + Virtual Hosts)
  3. WEB2 :      192.168.1.102 (Apache + Virtual Hosts)
  4. Nagios :    192.168.1.110
image-39 Supervision Zabbix

4.2 Objectifs pour le serveur de supervision.

  1. Installer et sécuriser le serveur de supervision.
  2. Installer agent/exporter sur WEB1, WEB2 et HAProxy.
  3. Définir les hôtes (hosts) dans l’outil de supervision.
  4. Configurer les services à surveiller :
  5. Ping (ICMP)
  6. Processus Apache (apache2)
  7. Processus HAProxy (haproxy)
  8. Charge CPU et mémoire
  9. Créer des alertes (mail ou webhook) en cas de panne ou charge élevée.
  10. Présenter un tableau de bord synthétique et un rapport de tests (arrêt simulé de WEB1, bascule vers WEB2, remontée des alertes)

4.3 Supervision avec Zabbix

Étapes :

Installer Zabbix Server + frontend web et base de données.

Installer Zabbix Agent sur WEB1, WEB2 et HAProxy.

Dans l’interface Zabbix, créer trois hôtes (WEB1, WEB2, HAProxy) avec leur interface Agent.

  1. Associer les templates intégrés :
  2.  Template OS Linux (CPU, mémoire, ping)
  3. Template Apache by HTTP
  4. Template HAProxy (Utiliser le template officiel Zabbix pour HAProxy)
    1.  
    1. Vérifier la collecte des données, paramétrer les triggers (critères de seuil pour charge et processus).
    1. Créer un dashboard personnalisé regroupant l’état des trois hôtes et les graphes clés.

5 . Mise à jour de linux

5.1 Mettre à jour le système

Mettre a jour le système :

  • sudo apt update && sudo apt upgrade -y
image-40 Supervision Zabbix

5.2 Installer MariaDB (Base de données)

Installation de MariaDB server et client :

  • sudo apt install mariadb-server mariadb-client -y
image-41 Supervision Zabbix

5.3 Sécuriser MariaDB :

Pour sécuriser votre Mariadb faite :

  • sudo mysql_secure_installation
    •  
image-42 Supervision Zabbix

Répondez aux questions :

  • Définir le mot de passe root : Oui
  • Supprimer les utilisateurs anonymes : Oui
  • Interdire les connexions root distantes : Oui
  • Supprimer la base de test : Oui
  • Recharger les privilèges : Oui
image-43 Supervision Zabbix
image-44 Supervision Zabbix

5.4 Créer la base de données pour Zabbix

  • sudo mysql -u root -p
image-45 Supervision Zabbix

Maintenant nous sommes dans notre Mariadb on va créer un compte avec Mot de passe :

Remplacez 'MotDePasseFort' par un mot de passe sécurisé.

CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

CREATE USER zabbix@localhost IDENTIFIED BY ‘MotDePasseFort‘;

GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;

FLUSH PRIVILEGES;

EXIT;

image-46 Supervision Zabbix

6 Ajouter le dépôt officiel Zabbix

6.1 Téléchargement des depots Zabbix 7.0

Aller sur le site : https://www.zabbix.com/download

Ou utilisez directement :

6.2 Installer les paquets Zabbix

On va installer les paquets pour Zabbix

  • sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent -y
image-47 Supervision Zabbix
  • sudo apt install -t zabbix zabbix-frontend-php zabbix-apache-conf -y
    • apt show zabbix-frontend-php | grep Version
image-48 Supervision Zabbix


                     –    sudo apt install php-mysql -y

Si tout va bien vous aurez cette version :

image-49 Supervision Zabbix

6.3 Importer le schéma de base de données

Maintenant on va importer la base de notre Zabbix sur notre MariaDB :

  • zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p zabbix
image-50 Supervision Zabbix

6.4 Configurer le serveur Zabbix

Éditer le fichier de configuration :

  • sudo nano /etc/zabbix/zabbix_server.conf

Modifier les lignes suivantes :

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=MotDePasseFort

image-51 Supervision Zabbix
image-52 Supervision Zabbix
image-53 Supervision Zabbix

7. Configurer PHP pour Zabbix

Le fichier est installé ici :

  • sudo nano /etc/zabbix/apache.conf
image-54 Supervision Zabbix

Assurez-vous de rajouter les paramètres de fuseau horaire sont corrects :

  • php_value date.timezone Europe/Paris
image-55 Supervision Zabbix

Changez selon votre zone si besoin (ex: UTC, Europe/Paris, America/New_York, etc.)

7.2 Démarrer et activer les services

  • sudo systemctl restart zabbix-server zabbix-agent apache2
image-56 Supervision Zabbix
  • sudo systemctl enable zabbix-server zabbix-agent apache2
image-57 Supervision Zabbix

8. Accéder à l’interface Web

8.1 Ouvrez votre navigateur et allez à :

Choisissez votre language et faite next.

image-58 Supervision Zabbix
image-59 Supervision Zabbix
image-60 Supervision Zabbix
image-61 Supervision Zabbix
image-62 Supervision Zabbix
image-63 Supervision Zabbix

8.2 Connexion à Zabbix

  • Utilisateur : Admin
  • Mot de passe : zabbix (à changer après connexion)
image-64 Supervision Zabbix

Voice la page d’accueil de Zabbix :

image-65 Supervision Zabbix

 

9. Installer Zabbix Agent sur WEB1, WEB2 et HAProxy

Sur chaque machine (WEB1, WEB2, HAProxy) :

9.1 Ajouter le dépôt

image-66 Supervision Zabbix
  • sudo dpkg -i zabbix-release_latest_7.0+debian12_all.deb
image-67 Supervision Zabbix
  • sudo apt update
image-68 Supervision Zabbix

9.2 Installer l’agent

  • sudo apt install zabbix-agent
image-69 Supervision Zabbix

Modifier la conf

  • sudo nano /etc/zabbix/zabbix_agentd.conf

Modifier :

Server=IP_DU_SERVEUR_ZABBIX

image-70 Supervision Zabbix

ServerActive=IP_DU_SERVEUR_ZABBIX

image-71 Supervision Zabbix

Hostname=WEB1   # ou WEB2 / HAProxy selon la machine

image-72 Supervision Zabbix

9.3 Redémarrer l’agent

  • sudo systemctl restart zabbix-agent
    • sudo systemctl enable zabbix-agent

10. Ajouter les hôtes dans l’interface Zabbix

10.1 Dans l’interface Zabbix web :

Va dans Configuration → Hosts → Create Host

image-73 Supervision Zabbix
image-75 Supervision Zabbix

Renseigne :

Host name : WEB1

Groups : Linux servers

Agent interface : IP réelle de WEB1 (10.0.0.101)

image-74 Supervision Zabbix

Répètez pour WEB2 et HAProxy

10.2 Associer les templates intégrés

Toujours sur chaque hôte dans Zabbix :

Clique sur l’hôte (ex. WEB1)

Onglet Templates

Clique sur Link new templates :

Template OS Linux by Zabbix agent

Template App Apache by HTTP (si Apache installé)

Template App HAProxy by HTTP (pour HAProxy)

10.3 Résoudre le problème Apache des Serveurs Web1 et 2

Maintenant que mes Template sont installés sur mes hôtes on peut voir que j’ai des erreurs mes serveurs

image-76 Supervision Zabbix

Quand je clique sur mon Web1 on peut voir un problème sur mon Apache

image-77 Supervision Zabbix

Pour régler ce problème, il vous suffit cliquer sur « Web1 » et dirigez-vous dans Hôte

image-78 Supervision Zabbix

Vous allez avoir le menu de votre Hôte, allez dans « Macros »

image-79 Supervision Zabbix

Ensuite dans Macros héritées et de l’hôte et rajoutez votre adresse IP de votre serveur Web, pour ma part c’est le Web1 (10.0.0.101) et actualiser.

image-80 Supervision Zabbix

Maintenant aller sur votre serveur Web1, on va rajouter l’adresse IP de notre Zabbix pour qu’il puisse entrer en contact avec notre apache2.

  • sudo nano /etc/apache2/mods-enabled/status.conf
image-81 Supervision Zabbix

Et modifier ce bloc :

<Location « /server-status »>

      SetHandler server-status

      Require ip 127.0.0.1             (localhost)

      Require ip 10.0.0.112           (Ip Zabbix)

</Location>

image-82 Supervision Zabbix

Reproduisez cela sur votre Serveur Web2 aussi.

11. Créer une alerte mail.

11.1 Prérequis Gmail

Assure-toi de ces deux choses sur ton compte Gmail avant de configurer Zabbix :

La validation en deux étapes est activée :

  • Va ici : https://myaccount.google.com/security
  • Active la vérification en deux étapes (si ce n’est pas encore fait).
  • Va ici : https://myaccount.google.com/apppasswords
  • Choisis « Mail » puis « Autre » (ex: Zabbix).
  • Copie le mot de passe généré (sans les espaces).

11.2 Créer ou vérifier le type de média (Media type)

Dans Zabbix Web  :

  1. Va dans Administration → Media types
  2. Clique sur « Create media type » (ou sélectionne un déjà existant « si tu veux modifier)
  3. Renseigne les champs comme ceci :
ChampValeur
NameGmail SMTP
TypeEmail
SMTP serversmtp.gmail.com
SMTP server port587
Connection securitySTARTTLS
SMTP helolocalhost
SMTP emailtonadresse@gmail.com
AuthenticationUsername and password
Usernametonadresse@gmail.com
Passwordle mot de passe d’application généré
image-83 Supervision Zabbix

11.3 Ajouter le média à ton utilisateur

Va dans Administration → Users

Clique sur Admin

Onglet Media

Clique sur « Add » :

Type : Gmail SMTP

Send to : ton adresse e-mail complète (ex: tonadresse@gmail.com)

When active : laisse 1-7,00:00-24:00

Use if severity : coche tout

Status : enabled

image-84 Supervision Zabbix

Vola a quoi devrait ressembler votre compte Admin.

image-85 Supervision Zabbix

11.4 Créer une action Alertes.

Pour cela vous rendre dans « Alertes -> Actions -> Actions de déclencheur.

image-86 Supervision Zabbix

En haut a droite vous avez un petit bouton « Créer une action »

image-87 Supervision Zabbix

Et la on va crée une action pour notre Apache, quand notre serveur Apache sera down ou en marche qu’on soit alerter par mail de ceci.

Nom : Apache2

Condition -> Ajouter -> Déclencheurs -> Taper Apache

image-88 Supervision Zabbix

Rajouter vos serveurs web1/2 Apache : service is down , vous recevrez une alerte mail quand vos serveur Apache seront down.

Pour ma part j’ai rajouté quelques conditions pour avoir une alerte mail

image-89 Supervision Zabbix

Coché bien « Activé ».

11.5 Test serveur Web1 down

Sur mon serveur Web1 je vais stop mon service Apache avec.

  • Sudo systemctl stop apache2
image-90 Supervision Zabbix

Sur votre interface Web Zabbix :

image-91 Supervision Zabbix
image-92 Supervision Zabbix

Normalement vous devriez recevoir un mail :

image-93 Supervision Zabbix

12. Questions :

  • Pourquoi le monitoring est-il essentiel dans une architecture haute disponibilité ?

Le monitoring garantit la continuité de service. En haute disponibilité (HA), le moindre dysfonctionnement (latence, CPU, disque, crash) peut compromettre un basculement automatique ou la répartition de charge. Le monitoring :

détecte les pannes en temps réel

déclenche les bascules automatiques

assure une vue globale de la résilience du système

  • Quelles sont les métriques critiques à surveiller sur un serveur web (Apache) et un répartiteur de charge (HAProxy) ?

Un serveur Apache :

Temps de réponse HTTP (Response Time)

Nombre de requêtes/s (Request rate)

Nombre de connexions actives

Utilisation CPU/RAM

Fichiers log d’erreurs

Un HAProxy :

Statut des backends (UP/DOWN)

Nombre de sessions actives

Latence vers les serveurs cibles

Erreurs 5xx ou refus de connexions

Saturation des files d’attente

  • Quelle est la différence entre le monitoring agent-based et agentless ? Donnez des exemples d’outils pour chaque approche.

Agent-based : nécessite l’installation d’un agent logiciel sur la machine (ex : Zabbix agent, Telegraf)

Agentless : interroge à distance via protocoles standards (SNMP, HTTP, SSH)

  • Comment détecter une attaque DDoS via des outils de supervision ?

Pics anormaux de connexions simultanées

Surcharge CPU/RAM ou saturation réseau

Baisse de performance ou timeout HTTP

Augmentation des erreurs 5xx

Zabbix ou Prometheus peuvent générer une alerte sur :

connections > threshold

network input > 1Gbps

http_responses_5xx > 10%

  • Quels sont les avantages et inconvénients d’un monitoring centralisé vs. distribué ?
TypeAvantagesInconvénients
CentraliséFacilité de gestion, dashboard uniquePoint de défaillance, goulot d’étranglement
DistribuéTolérance aux pannes, scalabilité horizontaleComplexité, cohérence des données difficile
  • Comment garantir la sécurité des données collectées par un outil de supervision ?

Communication chiffrée (TLS) entre agent et serveur

Authentification par clés ou jetons

Chiffrement des bases de données

Contrôle d’accès via RBAC (roles)

Journalisation des accès

  • Qu’est-ce qu’un health check et comment le configurer pour un service web ?

Un health check vérifie si un service est disponible et répond correctement.

Exemples :

Pour HAProxy :

option httpchk GET /health HTTP/1.1\r\nHost:localhost

Pour Zabbix :

Utiliser web scenario ou http.agent

  • Pourquoi est-il important de configurer des seuils (thresholds) adaptés pour les alertes ?

Éviter les faux positifs

Adapter les alertes aux charges normales

Détecter les problèmes avant impact utilisateur
Ex : CPU à 90% pendant 10 min ≠ pic temporaire

  • Comparez Nagios, Zabbix et Prometheus en termes de scalabilité, facilité de configuration et coût.
CritèreNagiosZabbixPrometheus
ScalabilitéMoyenneBonneExcellente
FacilitéMoyenneFacileTechnique
Modèles d’alertesBasiqueAvancéPuissant
VisualisationFaibleIntégréGrafana
CoûtGratuitGratuitGratuit
  • Quel outil choisiriez-vous pour surveiller une infrastructure cloud (AWS/Azure) et pourquoi ?

Prometheus + Grafana avec Cloud Exporters (CloudWatch, Azure Monitor)

Adapté aux environnements cloud

Auto-découverte des ressources

Grande scalabilité
Sinon : Zabbix fonctionne aussi avec les bons templates, mais demande plus de configuration.

  • Comment superviser des conteneurs Docker avec ces outils ?

Prometheus avec cAdvisor ou node_exporter

Zabbix avec l’agent Docker ou SNMP container

Surveiller :

CPU/RAM des conteneurs

Réseaux, logs

Disponibilité des services exposés

  • Quelles sont les limites de Fail2Ban face à une attaque DDoS, et comment les contourner avec un outil de supervision ?

Basé sur les logs : lent face à un DDoS massif

Ne bloque que par IP (inutile contre attaques distribuées)

Compléter avec :

Zabbix/Prometheus : détection de comportement anormal

Pare-feu dynamique (iptables, nftables)

Reverse proxy (Cloudflare, HAProxy, NGINX rate limit)

  • Comment intégrer la supervision dans un pipeline CI/CD (exemple : alertes sur les déploiements) ?

Alerte sur échec de déploiement (status 500 ou downtime)

Vérification auto post-deploy avec web scenario

Intégration de checks dans GitLab CI, Jenkins, etc.

Exemple avec Prometheus Alertmanager + Slack

  • Qu’est-ce que l’observability et en quoi va-t-elle au-delà du monitoring traditionnel ?

 Monitoring = collecte de métriques connues

 Observability = capacité à comprendre le comportement global du système à partir de :

Logs

Traces (Jaeger, OpenTelemetry)

Métriques

  • Un serveur WEB1 est en charge CPU à 95% depuis 5 minutes. Quelle procédure suivre pour investiguer avec votre outil de supervision

Zabbix trigger se déclenche

Aller dans Latest data

Vérifier :

Processus consommateurs (top, ps aux)

system.cpu.util, system.load, system.swap

Corréler avec :

Pics de trafic ?

Cron ou batch en cours ?

Actions possibles :

Redémarrage service fautif

Équilibrage de charge

Notification / escalade

12.1 Questions spécifiques à Zabbix :

  • Expliquez le rôle des templates dans Zabbix.

Les templates sont des modèles réutilisables dans Zabbix contenant :

des éléments de supervision (items)

des triggers (alertes)

des graphiques, applications, discovery rules, etc.

Exemple : Template OS Linux by Zabbix agent supervise la charge CPU, RAM, espace disque, uptime, etc.

  • Comment fonctionne la découverte automatique (auto-discovery) des hôtes dans Zabbix ?

La découverte réseau (Network Discovery) permet à Zabbix de détecter automatiquement les hôtes via :

ICMP ping

Port scan (ex : port 22 ou 10050)

SNMP ou agent Zabbix

 Configuration :

  1. Aller dans Configuration > Network Discovery
  2. Définir une plage d’IP (ex : 10.0.0.0/24)
  3. Définir les actions à exécuter quand un hôte est trouvé (ex : ajouter l’hôte + lui assigner un template)

Peut aussi être utilisé pour la Low-level discovery (LLD) (ex : disques, interfaces, processus).

  • Qu’est-ce qu’un trigger et comment configurer un seuil d’alerte pour la charge CPU ?

Un trigger est une condition logique déclenchant une alerte en cas de problème détecté par un item.

Exemple de trigger CPU :

{Web1:system.cpu.util[,user].last(300)}>90

Cela déclenche une alerte si la charge CPU utilisateur dépasse 90% pendant les 5 dernières minutes.

Tu peux aussi définir plusieurs niveaux de sévérité : warning, high, disaster.

  • Comment surveiller les métriques HAProxy avec Zabbix ?

Avec template officiel Zabbix :

Utilise le template “HAProxy by HTTP”

Nécessite d’avoir le statut HAProxy accessible via :

http://<IP>:<PORT>/haproxy?stats;csv

Tu dois renseigner les macros :

image-94 Supervision Zabbix
  • Quel est le rôle d’un Zabbix proxy et dans quel cas l’utiliser ?

Le proxy Zabbix est un agent intermédiaire entre le serveur Zabbix et les hôtes à superviser.

Il collecte les données localement puis les envoie au serveur principal.

Cas d’usage :

Sites distants (WAN)

Réduction de la charge du serveur principal

Supervision de réseaux isolés ou sécurisés

Il peut fonctionner avec :

Des agents actifs

Des hôtes SNMP

  • Comment visualiser des données historiques dans Zabbix ?

Dans l’interface web :

Va dans Monitoring > Latest data

Sélectionne ton hôte

Clique sur un item (ex : CPU)

Tu peux :

Visualiser les graphes

Filtrer par période

Télécharger en CSV

  • Comment intégrer des scripts personnalisés dans Zabbix pour surveiller une application métier ?

Tu peux créer un item de type “External script” :

Place ton script dans : /usr/lib/zabbix/externalscripts/

Donne les droits d’exécution

Exemple :

#!/bin/bash

# check_app.sh

curl -s http://localhost/app/status | grep « OK »

Ou bien un item de type “UserParameter” dans l’agent :
Dans zabbix_agentd.conf :

UserParameter=check.myapp.status,/usr/local/bin/check_app.sh

  • Comment détecter une fuite mémoire sur un serveur Apache avec Zabbix ?

Une fuite mémoire se manifeste par une utilisation RAM qui augmente de façon constante.

Surveillance avec :

proc.mem[httpd] ou proc.mem[apache2] → RAM utilisée par le processus

vm.memory.size[available] → mémoire disponible

system.swap.size[,used] → début de swap ? ⇒ alerte

 Exemple de trigger :

{Web1:proc.mem[apache2].min(600)}>800000

Si Apache utilise plus de 800 MB en moyenne pendant 10 minutes.

Tu peux aussi créer un graphe personnalisé sur proc.mem[apache2].

Share this content:

Je m'appelle Nicolas, j’ai 38 ans et je vis dans le département de l’Ain. Actuellement en reconversion professionnelle dans le domaine de l’informatique, je poursuis une formation de Technicien Systèmes et Réseaux (TSSR) afin de transformer ma passion en métier. L'informatique a toujours occupé une place importante dans ma vie, et aujourd'hui je m'investis pleinement pour en faire mon avenir professionnel. Mon objectif : devenir Administrateur Réseau, en obtenant plusieurs certifications reconnues dans le secteur. Ce site présente les projets réalisés dans le cadre de ma formation, et reflète mon engagement et ma progression dans ce domaine passionnant.

Laisser un commentaire