Surveiller l’état d’un serveur Linux est essentiel pour éviter les interruptions ou les problèmes de performance.
Avec Python, même un débutant peut créer un script de surveillance serveur simple et efficace.
Dans ce guide, vous apprendrez comment écrire un script Python pour surveiller un serveur, quelles bibliothèques utiliser, et comment automatiser cette surveillance.
Pourquoi utiliser Python pour la surveillance serveur ?
Python est parfait pour l’automatisation et la surveillance serveur car :
- il est simple à apprendre pour un débutant
- possède de nombreuses bibliothèques pour récupérer l’état du système
- fonctionne sur Linux, Windows ou macOS
- permet de créer des alertes par email ou Slack
Un script Python de surveillance serveur peut détecter :
- la charge CPU et la mémoire utilisée
- l’espace disque restant
- les services arrêtés ou inactifs
- la disponibilité du réseau
Installer Python et les bibliothèques nécessaires
Vérifier Python sur Linux
python3 --version
Si Python n’est pas installé :
sudo apt update
sudo apt install python3 python3-pip
Installer les bibliothèques utiles
Pour créer un script Python de surveillance serveur, installez :
pip3 install psutil smtplib requests
psutil: récupérer CPU, RAM, disque et processussmtplib: envoyer des emails d’alerterequests: vérifier la disponibilité d’un site ou service
Exemple de script Python pour surveillance serveur (débutant)
1. Vérifier la charge CPU et mémoire
import psutil
cpu = psutil.cpu_percent(interval=1)
ram = psutil.virtual_memory().percent
print(f"Utilisation CPU : {cpu}%")
print(f"Utilisation RAM : {ram}%")
Ce script affiche l’état actuel de votre serveur.
Idéal pour commencer la surveillance serveur avec Python.
2. Surveiller l’espace disque
disk = psutil.disk_usage('/')
print(f"Disque utilisé : {disk.percent}%")
if disk.percent > 80:
print("Alerte : espace disque critique !")
Vous pouvez ajouter un email automatique si l’espace disque est trop faible.
3. Vérifier si un service est actif
service = "ssh"
service_active = any(proc.name() == service for proc in psutil.process_iter())
if service_active:
print(f"{service} est actif")
else:
print(f"{service} est arrêté !")
Pratique pour vérifier les services essentiels comme SSH, Apache ou Nginx.
4. Envoyer une alerte par email
import smtplib
def send_alert(message):
serveur = smtplib.SMTP('smtp.gmail.com', 587)
serveur.starttls()
serveur.login("votre_email@gmail.com", "mot_de_passe")
serveur.sendmail("votre_email@gmail.com", "destinataire@example.com", message)
serveur.quit()
send_alert("Alerte serveur : utilisation CPU élevée")
⚠️ Pour Gmail, il faut un mot de passe spécifique pour application ou activer les applications moins sécurisées.
Automatiser le script de surveillance serveur
Pour que votre script Python surveille le serveur automatiquement :
1. Planifier avec cron sur Linux
crontab -e
Ajouter par exemple pour exécuter toutes les 10 minutes :
*/10 * * * * /usr/bin/python3 /chemin/vers/surveillance.py
2. Utiliser un service systemd
Vous pouvez créer un service systemd pour exécuter le script en permanence et redémarrer automatiquement si nécessaire.
Conseils pratiques pour débutant
- Tester votre script avant de l’automatiser
- Ajouter des logs pour conserver l’historique des alertes
- Limiter la fréquence des vérifications pour éviter de surcharger le serveur
- Commencer avec psutil et ajouter des fonctionnalités progressivement
Pourquoi un script Python est idéal pour débutant
- Syntaxe simple et lisible
- Bibliothèques puissantes pour serveur Linux
- Permet d’automatiser des tâches critiques sans logiciel complexe
- Facile à adapter à vos besoins (CPU, RAM, disque, services, réseau)
Même un débutant peut créer un script Python de surveillance serveur fonctionnel en quelques heures.
FAQ – Python script surveillance serveur
1. Est-ce que ce script fonctionne sur tous les serveurs Linux ?
Oui, tant que Python 3 et les bibliothèques nécessaires sont installés.
2. Puis-je recevoir des alertes par email ou Slack ?
Oui, Python permet d’envoyer des emails avec smtplib ou d’utiliser des webhooks pour Slack.
3. Ce script peut-il surveiller plusieurs serveurs à la fois ?
Oui, en adaptant le script pour se connecter à distance via SSH ou en utilisant des bibliothèques comme paramiko.