Le domaine de l'informatique est en constante évolution, avec de nouvelles technologies et des avancées rapides qui transforment notre façon de travailler, de communiquer et de résoudre les problèmes. Dans le contexte d'un étudiant en première année de BTS SIO (Services Informatiques aux Organisations) option SISR (Solutions d'Infrastructure, Systèmes et Réseaux), j'ai eu l'opportunité de réaliser un stage de 5 semaines (du 30 mai au 30 juin 2023) au sein du Laboratoire de physique à Clermont-Ferrand en tant que stagiaire en informatique.
J'ai pu me plonger dans un environnement professionnel dynamique, où j'ai été exposé à un réel projet et des défis techniques. J'ai travaillé aux côtés d'une équipe expérimentée et compétente, ce qui m'a permis de développer mes compétences et d'approfondir ma compréhension de certains domaines de l'informatique.
Ce rapport est organisé de manière à refléter les différentes phases de mon stage. Tout d'abord, je présenterai brièvement l'entreprise dans laquelle j'ai effectué mon stage. Ensuite, je décrirai les objectifs spécifiques de mon stage et les tâches qui m'ont été confiées. Puis, j'expliquerai la procédure de la mise en place de mon projet. Enfin, je conclurai ce rapport en discutant des enseignements que j'ai tirés de mon expérience de stage et des perspectives dans le domaine de l'informatique.
Ce stage a été une occasion unique de mettre en pratique les connaissances théoriques acquises lors de mon parcours scolaire et d'explorer de nouvelles technologies. J'ai pu observer de près le fonctionnement d'une entreprise du secteur de l'informatique et me familiariser avec les défis auxquels elle est confrontée au quotidien.
Je suis convaincu que ce rapport de stage fournira une vision détaillée de mon expérience, mettant en évidence mes réalisations, mes compétences et mes capacités d'adaptation. Il représente également une occasion de remercier chaleureusement l'équipe informatique ainsi que le service administratif du Laboratoire pour leur soutien, leurs conseils et leur confiance tout au long de mon stage.
Le laboratoire de physique de Clermont-Ferrand, est une institution de recherche. Il est affilié à l'INSU1 ainsi qu'à INRAE2, le tout formant le CNRS3. Le laboratoire se consacre à la recherche fondamentale et appliquée dans le domaine de la physique. Ses domaines d'expertise couvrent plusieurs disciplines, notamment la physique des particules, la physique nucléaire, la physique des astroparticules, la physique des matériaux et la physique médicale.
L'entreprise comprend quatre salles informatiques dédiées à différentes fonctions :
Mes objectifs couvrent plusieurs domaines, notamment :
Cacti est un outil open source de supervision et de surveillance de réseau. Il est utilisé pour collecter, stocker et afficher des données de performance et des statistiques sur les appareils connectés au réseau. Il utilise le protocole SNMP pour interroger les appareils réseau et récupérer les données de performance. Il s'agit d'une application basée sur le service httpd qui fournit une interface conviviale pour configurer, gérer et visualiser les données de performance collectées.
| Catégorie | Données collectables |
|---|---|
| Sur le processeur | Utilisation du CPU, charge du processeur, utilisation par cœur |
| Sur la mémoire | Mémoire totale, utilisée, libre |
| Sur la bande passante | Débit entrant/sortant, trafic réseau, utilisation de la bande passante |
| Statistiques d'interface réseau | Nombre de paquets reçus/envoyés, erreurs d'interface, octets transférés |
| Latence du réseau | Temps de réponse/ping, délais d'accès |
| Utilisation du disque | Espace disque total, utilisé, libre |
| Température et état des capteurs | Température ambiante, état des ventilateurs, alimentations électriques |
| Statut des services | Disponibilité des services réseau, état des services critiques |
| Performance des bases de données | Temps de réponse / nombres des requêtes, utilisation de la mémoire |
| Performances des serveurs web | Nombre de requêtes HTTP, temps de réponse, code de statut HTTP |
| Surveillance des équipements | État des équipements réseau, disponibilité, erreurs |
| Surveillance des performances des applications | Utilisation des ressources, temps de réponse, erreurs |
Équipements réseau :
Périphériques réseau :
Périphériques informatiques :
Sur le site officiel du logiciel Cacti, nous avons identifié cinq versions compatibles avec le serveur Cacti :
| Distribution | Commande d'installation |
|---|---|
| Gentoo | emerge cacti |
| Debian | apt-get install cacti |
| Redhat/CentOS | yum install cacti |
| Fedora | dnf install cacti |
| SUSE | Available in Yast or SUSE media. Version may not be the latest. |
| Windows | Available for download at Cacti.net. Version may not be the current. |
Pour garantir la compatibilité avec le serveur Cacti, nous avons choisi d'utiliser Alma Linux, une distribution Linux basée sur le code source du système d'exploitation Red Hat.
Sur Linux, un utilisateur nouvellement créé n'a pas les privilèges d'accès de root par défaut. Pour lui accorder l'accès, il faut lui permettre d'utiliser la commande sudo. Pour cela, on peut se connecter au compte root en utilisant la commande su - (en fournissant le mot de passe requis), puis éditer le fichier sudoers en utilisant un éditeur de texte tel que nano. Dans ce fichier, on ajoute la ligne lspizzica ALL=(ALL) ALL en dessous de la directive "Allow root to run any commands anywhere", puis on enregistre les modifications. Une autre méthode consiste à se connecter directement au compte root en utilisant su - et à rester connecté à ce compte pour effectuer les opérations nécessaires.
Nous savons que les packages peuvent varier en fonction de la version spécifique d'AlmaLinux que vous utilisez. Alors nous allons chercher la version utilisée avec la commande cat /etc/redhat-release. Ensuite, pour installer les paquets nécessaires, nous utiliserons la commande yum install suivie des noms des paquets. Dans ce cas, nous installerons tous les paquets requis en une seule fois pour gagner du temps. La commande complète serait la suivante :
Certains services nécessiteront d'être démarrés manuellement après leur installation. Pour cela, nous utiliserons la commande systemctl start suivie du nom du service.
Nous allons configurer certains modules ou packages pour qu'ils démarrent automatiquement au démarrage du système en utilisant la commande suivante :
Nous allons modifier le fichier php.ini et changer les lignes suivantes :
Une fois les modifications enregistrées, il faut redémarrer le service PHP pour qu'elles prennent effet.
Nous allons insérer les lignes suivantes dans le fichier mariadb-server.cnf :
Nous devons également créer un fichier nommé my.cnf dans le répertoire /etc et y ajouter les lignes suivantes :
Puis nous devons relancer mariadb :
Nous allons importer le fichier mysql_test_data_timezone.sql pour notre serveur cacti qui en a besoin pour avoir les horaires avec la commande :
Après avoir importé le fichier, nous allons attribuer les privilèges à l'utilisateur cacti en utilisant la commande :
En dernier lieu, nous allons appliquer immédiatement les modifications sans nécessité de redémarrer la base de données :
1) Le dépôt
2) Cacti
3) Vérification
Nous devons obtenir un résultat similaire à celui présenté ci-dessous (il faut évidemment tenir compte des éventuelles différences telles que la version). Nous avons réussi à obtenir des informations similaires, avec des variations mineures :
1) Importez les données Cacti dans la BDD
2) Modification du fichier de configuration
Déterminer les paramètres de configuration de notre base de données :
3) Création et modification d'un fichier
Création d'un dossier cron.d dans /etc :
Création d'un fichier cacti :
Ajoutez la ligne suivante :
On va créer un fichier de configuration d'hôte virtuel Apache pour Cacti avec la commande :
Substituer les paramètres par défaut par ceux suivants dans le fichier de configuration :
Après avoir enregistré les modifications, nous relancerons les services Httpd et php-fpm.
Nous allons autoriser l'accès distant aux services HTTPS et HTTP sur le serveur hébergeant le service Cacti au niveau du pare-feu local :
Nous allons également désactiver SELinux sur notre système. Pour ce faire, nous allons :
Nous pouvons accéder à l'interface web de Cacti.
Nous avons installé avec succès et nous constatons qu'un premier équipement est déjà présent, ainsi que quatre graphiques pour la machine locale, c'est-à-dire le serveur hébergeant Cacti.
Nous allons ajouter ces 13 équipements :
Afin d'ajouter un équipement nous devons nous rendre dans :
Pour y ajouter les informations nécessaires.
Nous allons maintenant clarifier quelques termes afin d'améliorer la compréhension :
| Terme | Définition |
|---|---|
| Poller association | Détermine quel serveur sera chargé de surveiller un équipement spécifique. |
| Device Site Association | Définit le site où se trouve physiquement l'équipement. |
| Device template | Spécifie le type d'équipement que nous surveillons. |
| SNMP Community String | Une chaîne de texte utilisée comme mot de passe pour sécuriser les communications SNMP entre l'équipement réseau et le système de supervision. |
| SNMP Timeout | La durée maximale autorisée pour attendre une réponse lors de l'interrogation d'un équipement réseau via SNMP. |
| Maximum OIDs Per Get Request | Le nombre maximal d'identifiants d'objet (OID) qu'une seule requête GET SNMP peut contenir. |
| Bulk Walk Maximum | Le nombre maximal de répétitions autorisées lors d'une marche en vrac — méthode d'interrogation SNMP pour récupérer plusieurs informations à la fois. |
| Ping Timeout Value | La durée maximale d'attente de réponse lors de l'envoi d'une requête de ping à un équipement. |
Nous allons procéder de cette façon pour structurer notre arbre dans Cacti :
Pour créer un nouveau graphique, nous allons dans l'onglet « Create » puis « New Graphs », où nous saisissons les informations nécessaires.
Nous avons maintenant les graphiques de base tels que l'utilisation du CPU, la charge CPU, la charge moyenne, l'utilisation de la mémoire et la latence du ping. Cependant, pour un administrateur réseau, ce qui est crucial, c'est de surveiller le taux d'utilisation global ainsi que le taux d'utilisation par port afin de diagnostiquer les problèmes sur un lien réseau spécifique. Nous allons donc ajouter ces fonctionnalités.
Pour le taux d'utilisation par port, il suffit de sélectionner les ports et de choisir le type de mesure, puis de créer le graphique.
Voici les types de graphiques disponibles*25 :
| Type de graphique | Description |
|---|---|
| In/Out Broadcast | Quantité de paquets broadcast reçus et envoyés. Surveillance de la diffusion excessive et de la congestion réseau. |
| In/Out Errors/Discard | Nombre d'erreurs de transmission ou de paquets rejetés. Erreurs, paquets corrompus, dépassement de capacité. |
| In/Out Multicast | Quantité de paquets multicast reçus et envoyés. Surveiller les variations du trafic multicast. |
| In/Out Unicast | Quantité de paquets unicast reçus et envoyés. Analyse des modèles d'utilisation de la bande passante. |
| In/Out Bits | Débit du trafic en bits par seconde reçus et envoyés. Détection des variations du trafic. |
| In/Out Bits (64bits, 95th) | Débit à partir duquel le 95e percentile est calculé sur une période de 64 bits. Bande passante maximale utilisée. |
| In/Out Bits (64bits, BW) | Débit du trafic en bits mesuré sur une période de 64 bits. |
| In/Out Bits (64bits) | Débit du trafic en bits sur une période de 64 bits. Variations du trafic et utilisation de la bande passante. |
| In/Out Bits (95th) | Débit à partir duquel le 95e percentile est calculé sur la période spécifiée. Bande passante maximale. |
| In/Out (BW) | Utilisation de la bande passante (en %) pour le trafic entrant et sortant. Saturation potentielle. |
| In/Out Bytes | Volume du trafic en octets reçus et envoyés. Surveillance de la quantité de données transmises. |
| In/Out Bytes (64bits, 95th) | Volume en octets à partir duquel le 95e percentile est calculé sur une période de 64 bits. |
| In/Out Bytes (64bits) | Volume du trafic en octets mesuré sur une période de 64 bits. |
| In/Out Bytes (BW) | Utilisation de la bande passante (en %) pour le trafic entrant/sortant en volume d'octets. |
Pour modifier les noms des graphiques des interfaces afin d'inclure la description de l'hôte, le nom des interfaces et les alias des interfaces, nous nous rendrons dans :
Ensuite, nous ajoutons la ligne suivante :
Un problème a été identifié : depuis le 14 juin 2023, aucune donnée n'est enregistrée pour le trafic réseau des commutateurs. Pour résoudre ce problème, nous allons procéder en deux étapes : d'abord, nous devons identifier la cause du problème, puis dans un second temps, nous travaillerons à résoudre le problème.
1) Trouver le problème
Nous naviguons vers les logs de Cacti en utilisant la commande cd /var/log/cacti. En parcourant les fichiers, nous remarquons des fichiers compressés au format .gz. Pour extraire ces fichiers, nous utilisons la commande suivante :
En ouvrant chaque fichier extrait, nous recherchons celui qui contient les données que nous cherchons. Nous remarquons une erreur datée du 14/06/23 à 13h3 :
2) Résoudre le problème
Pour résoudre le problème nous devons modifier l'intervalle du poller, pour cela nous nous dirigeons dans :
Voir annexe 26.
Voir annexe 27.
Voir Annexe 27.1.
Voir annexe 28.
Ce stage m'a permis de réaliser que malgré les défis rencontrés, je suis fait pour travailler dans le domaine de l'informatique. Il m'a donné l'occasion d'acquérir de nombreuses connaissances et d'apprendre des bonnes pratiques auxquelles je n'étais pas habitué auparavant, telles que :