Cette SAÉ nous a initiés à la programmation Python dans un contexte réseau et télécoms. L'objectif : développer un outil permettant de surveiller la disponibilité d'un ensemble d'équipements réseau, de stocker les résultats et de les visualiser. Le projet était individuel, ce qui m'a demandé d'être autonome sur toutes les étapes, y compris la recherche de documentation.
La compétence visée était RT3 (Créer des outils et applications informatiques), niveau 1 : s'intégrer dans un service informatique.
ping_host(ip) utilisant le module subprocess pour envoyer un ping et récupérer la latenceLa fonction ping_host(ip, timeout=1) utilise subprocess.run pour appeler ping, parse la sortie pour extraire la latence en ms, et retourne un dictionnaire contenant l'IP, le statut (up/down), la latence et l'horodatage. C'est le cœur de l'outil — illustre AC13.02 et AC13.03. Code source complet sur GitHub.
Graphique matplotlib généré après 30 minutes de supervision sur 5 équipements fictifs : axe X = temps, axe Y = latence en ms, points colorés (vert = disponible, rouge = injoignable). Montre concrètement AC13.05 : le choix du CSV comme format de stockage intermédiaire permet de régénérer ce graphique à tout moment.
Le script fonctionne et produit un graphique lisible. La gestion des erreurs est propre — le script ne plante pas si une machine ne répond pas.
La gestion des exceptions Python m'a bloqué longtemps. Je ne comprenais pas pourquoi mon script plantait sur une machine injoignable. Il a fallu comprendre les types d'exceptions de subprocess.
J'aurais rendu le script configurable via un fichier externe (liste d'IPs, intervalle de mesure) plutôt que de tout mettre "en dur" dans le code.
Ce type d'outil de supervision minimaliste est utilisé dans tous les services IT. En l'enrichissant (alertes mail, SNMP), il deviendrait un vrai outil de monitoring utilisable en entreprise.