Go Back
29th, mai
CRNA Ouest

Je commence par la fin :

Voilà ce à quoi ressemble mon projet de stage final :

process

Si vous souhaitez avoir le détail, je vous invite à poursuivre la lacture ci-dessous :

Dans un premier temps il s’agira de s’auto former sur LaTeX et le scripting (perl). Le tout dans un environnement Debian.

Je me suis d’abord concentré sur LaTeX, langage que je ne connaissais pas du tout et je savais que pour Perl je n’aurais qu’à m’habituer à la syntaxe (la partie logique est commune).

D’abord afficher, convertir en PDF, les sommaires, les tables des matières, des figures etc …

J’ai beaucoup apprécié LaTeX, l’idée de n’avoir à faire une mise en page qu’au premier document était tout simplement une aubaine pour moi.

Au bout de quelque jour, vint le projet en lui-même : « Serveur de log de connexions de machines ».

J’avais ma petite idée sur comment procéder :

  • Utiliser snmp et ses fameux traps (le TP de l’école était relativement frais)
  • Les Threads au cas où il y aurait plusieurs connexions simultanées

J’imaginais ça et la fin utilisait bien ces deux points. J’avais quand même plusieurs problèmes :

  • Comment rediriger les traps vers le serveur
  • Comment lire proprement les traps une fois sur le serveur (problématique de lecture / écriture)
  • Comment fonctionnent les Threads sur perl

Pour rediriger les traps, j’ai configurer l’IP du serveur SNMP sur le switch de la maquette. Les traps arrivent dans un fichier. J’avais alors, toujours la problématique de lecture / écriture. Je n’ai pas trouvé de solution tout seul, mon Maître de Stage (MDS) m’a soufflé l’idée des FIFO (pipe) des espèces de fichiers-sockets ou un process écrit une information dedans et doit attendre que l’information soit lue par un autre process à l’autre bout. L’idée des Threads à ce moment la me semblais encore plus logique (que ce passe-t-il si le process communiquant à une information à transmettre et que le process lecteur n’a toujours pas lu l’ancienne information) …

J’étais pas mal à ce moment-là, les informations étaient transmises et pouvaient être lues…

Seulement voilà, je recevais tous les traps et pas seulement ceux qui m’intéressaient. La MIB était bizarre, je n’ai pas réussi à interpréter la documentation pour avoir la forme du trap qui m’intéressait.

J’ai donc remodifier le fichier pour qu’il soit normal… j’ai branché / dé branché le câble éthernet d’une machine une bonne dizaine de fois. J’ai ensuite chercher l’adresse MAC qui apparaissait plusieurs fois. De cette manière j’ai pu trouver le patern du trap et l’enregistrer. Il était un peu particulier car il ne comportait QUE l’adresse MAC…

Nouvelle notion de programmation à apprendre : les expressions régulières.

A ce moment-là tout c’est enchainer tout seul :

  • Les threads
  • Rendre les logs humainement interprétable (la machine @MAC s’est connecté à telle heure)

La dernière semaine mon Tuteur d’école est passé et m’a gentiment indiqué que ce que j’avais fait existait déjà (rsyslog) en mieux et que j’avais un peu perdu mon temps… Pas grave, je sais faire maintenant 🙂

Bonne journée,

Thomas