Comment automatiser la surveillance du système à l’aide de Python

La plupart des organisations dépendent fortement de leur infrastructure informatique pour mener à bien leurs activités. Les pannes de système non planifiées ou la dégradation des performances peuvent entraîner des perturbations, des pertes financières et une atteinte à la réputation.

Les contrôles automatisés de l’état des systèmes sont essentiels pour garantir la stabilité et la fiabilité de l’infrastructure informatique. En surveillant les paramètres critiques et en détectant rapidement les anomalies, vous pouvez minimiser les temps d’arrêt.

Définition des contrôles de santé

Il est essentiel de définir les contrôles de santé que vous souhaitez effectuer sur votre système. Vous devez établir des critères clairs pour déterminer ce que vous allez surveiller et pourquoi. Commencez par identifier les principaux objectifs de votre système. Quelles sont les fonctions ou les services qu’il fournit ?

Ensuite, définissez des critères de performance basés sur des données historiques et veillez à ce que vos contrôles de santé évaluent l’utilisation efficace des ressources du système. Enfin, définissez les seuils qui indiquent un problème. Quel pourcentage d’utilisation des ressources considérez-vous comme élevé ou faible ? À quel moment le système doit-il déclencher une alerte ?

Choix des bibliothèques et configuration de l’environnement

Pour automatiser le processus de surveillance du système en Python, vous aurez besoin des bibliothèques suivantes pour vous aider à recueillir les métriques du système, puis à planifier les vérifications.

  • psutil: Il s’agit d’une bibliothèque multiplateforme qui fournit une interface pour récupérer des informations sur l’utilisation du système (CPU, mémoire, disques, réseau, capteurs).
  • calendrier: Cette bibliothèque fournit un moyen simple de programmer des tâches à exécuter à des intervalles spécifiques.
  • temps: Une bibliothèque intégrée à Python que vous utiliserez pour les opérations liées au temps.
  • journalisation: Une autre bibliothèque intégrée que vous utiliserez pour créer des journaux des contrôles de santé du système.
Voir aussi :  Comment créer des index dans MongoDB : exemples expliqués

Commencez par créer un nouvel environnement virtuel Python. Vous éviterez ainsi tout conflit potentiel entre les versions des bibliothèques. Exécutez ensuite la commande de terminal suivante pour installer les bibliothèques requises avec Pip :

Une fois les bibliothèques installées sur votre système, votre environnement est prêt.

Le code source complet est disponible dans un dépôt GitHub.

Importer les bibliothèques requises

Créez un nouveau script, monitoring.py et commencez par importer les bibliothèques nécessaires :

L’importation des bibliothèques vous permettra d’utiliser les fonctionnalités qu’elles offrent dans votre code.

Journalisation et rapports

Vous devez disposer d’un moyen de consigner les résultats de vos contrôles de santé. La journalisation est un outil essentiel pour capturer et préserver l’historique des événements et déboguer les problèmes dans votre code. Elle joue également un rôle essentiel dans l’analyse des performances.

Utilisez la bibliothèque de journalisation intégrée pour créer vos journaux pour ce projet. Vous pouvez enregistrer les messages dans un fichier nommé system_monitor.log.

Pour les rapports, imprimez un message d’alerte sur la console afin de notifier immédiatement tout problème nécessitant une attention particulière.

Les fonctions de contrôle de santé utiliseront ces fonctions pour enregistrer et rapporter leurs résultats pertinents.

Création de fonctions de contrôle de santé

Pour chaque bilan de santé, définissez une fonction qui encapsulera un test spécifique évaluant un aspect critique de votre infrastructure.

Surveillance de l’utilisation de l’unité centrale

Commencez par définir une fonction qui surveillera l’utilisation de l’unité centrale. Il s’agit d’un indicateur essentiel des performances globales d’un système et de l’utilisation des ressources. Une utilisation excessive de l’unité centrale entraîne des ralentissements du système, un manque de réactivité, voire des pannes, ce qui perturbe gravement les services essentiels.

Voir aussi :  Comment valider les numéros de carte de crédit en utilisant des expressions régulières

En vérifiant régulièrement l’utilisation de l’unité centrale et en définissant des seuils appropriés, les administrateurs système peuvent identifier les goulets d’étranglement, les processus gourmands en ressources ou les problèmes matériels potentiels.

La fonction vérifie l’utilisation actuelle de l’unité centrale du système. Si l’utilisation de l’UC dépasse le seuil en pourcentage, elle enregistre un message indiquant une utilisation élevée de l’UC et imprime un message d’alerte.

Surveillance de l’utilisation de la mémoire

Définissez une autre fonction qui surveillera l’utilisation de la mémoire. En surveillant régulièrement l’utilisation de la mémoire, vous pouvez détecter les fuites de mémoire, les processus gourmands en ressources et les goulets d’étranglement potentiels. Cette méthode permet d’éviter les ralentissements, les pannes et les interruptions du système.

Comme pour la vérification de l’utilisation de l’unité centrale, vous définissez un seuil pour une utilisation élevée de la mémoire. Si l’utilisation de la mémoire dépasse le seuil, une alerte est enregistrée et imprimée.

Surveillance de l’espace disque

Définissez une fonction qui surveillera l’espace disque. En surveillant en permanence la disponibilité de l’espace disque, vous pouvez résoudre les problèmes potentiels liés à l’épuisement des ressources. L’épuisement de l’espace disque peut entraîner des pannes du système, des corruptions de données et des interruptions de service. Les contrôles de l’espace disque permettent de s’assurer que la capacité de stockage est suffisante.

Cette fonction examine l’utilisation de l’espace disque d’un chemin d’accès spécifié. Le chemin par défaut est le répertoire racine /. Si l’espace disque passe en dessous du seuil, elle enregistre et imprime une alerte.

Surveillance du trafic réseau

Définissez une fonction finale qui surveillera le flux de données de votre système. Elle aidera à la détection précoce de pics inattendus dans le trafic réseau, qui pourraient indiquer des failles de sécurité ou des problèmes d’infrastructure.

Voir aussi :  Guide complet de l'API ChatGPT

La fonction surveille le trafic réseau en additionnant les octets envoyés et reçus. Le seuil est fixé en octets. Si le trafic réseau dépasse le seuil, il enregistre et imprime une alerte.

Mise en œuvre de la logique de surveillance

Maintenant que vous disposez des fonctions de contrôle de santé, il vous suffit d’appeler chacune d’entre elles à tour de rôle à partir d’une fonction de contrôleur. Vous pouvez imprimer des sorties et consigner un message à chaque fois que ce contrôle global s’exécute :

Cette fonction exécute tous les contrôles de santé, fournissant une vue unifiée de l’état de santé de votre système.

Programmation des contrôles automatisés et exécution du programme

Pour automatiser la surveillance à des intervalles spécifiques, vous utiliserez la bibliothèque de planification. Vous pouvez ajuster l’intervalle en fonction de vos besoins.

Exécutez maintenant le processus de surveillance du système dans une boucle continue.

Cette boucle vérifie en permanence la présence de tâches programmées et les exécute le moment venu. Lorsque vous exécutez le programme, la sortie est la suivante :

Le programme enregistre les journaux de surveillance dans le fichier system_monitor.log et affiche une alerte sur le terminal.

Avancement du programme de surveillance du système

Ces contrôles de surveillance ne sont pas les seuls que psutil prend en charge. Vous pouvez ajouter d’autres fonctions de surveillance, en utilisant une approche similaire, pour répondre à vos besoins.

Vous pouvez également améliorer la fonction de rapport pour utiliser le courrier électronique plutôt que d’afficher un simple message sur la console.

Cliquez pour évaluer cet article !
[Total: Moyenne : ]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *