Sur un serveur auto-hébergé, il est essentiel d’être averti en temps réel en cas de problème : charge CPU excessive, saturation de la mémoire, pic réseau anormal… Avec une alerte par e-mail, tu peux intervenir avant que le serveur ne tombe.
Voici un guide simple pour mettre en place un système d’alerte efficace, sans interface graphique ni solution lourde.
🎯 Objectif
Être prévenu automatiquement par e-mail :
- si la charge CPU dépasse un seuil
- si la RAM utilisée est proche de 100 %
- si la bande passante monte en flèche
- éventuellement, en cas de disque plein
🛠️ Méthode 1 : script shell + cron + mail
(simple et efficace)
1. Installer les outils nécessaires
sudo apt update
sudo apt install mailutils -y
2. Créer un script de monitoring : /usr/local/bin/alertes.sh
#!/bin/bash
TO="tonmail@domaine.fr"
# CPU
cpu_load=$(awk '{print $1}' /proc/loadavg)
if (( $(echo "$cpu_load > 2.0" | bc -l) )); then
echo "Charge CPU élevée : $cpu_load" | mail -s "🚨 CPU ALERT sur $(hostname)" $TO
fi
# RAM
ram_used=$(free | awk '/Mem/ {printf "%.2f", $3/$2 * 100}')
if (( $(echo "$ram_used > 85.0" | bc -l) )); then
echo "Mémoire utilisée : $ram_used%" | mail -s "🚨 RAM ALERT sur $(hostname)" $TO
fi
# Disque
disk_used=$(df -h / | awk 'NR==2 {print $5}' | sed 's/%//')
if [ "$disk_used" -gt 90 ]; then
echo "Espace disque utilisé : $disk_used%" | mail -s "🚨 DISK ALERT sur $(hostname)" $TO
fi
🔐 N’oublie de rendre le script exécutable :
sudo chmod +x /usr/local/bin/alertes.sh
3. Lancer ce script régulièrement via cron
sudo crontab -e
Ajoute :
*/5 * * * * /usr/local/bin/alertes.sh
📬 Tu recevras un e-mail toutes les 5 minutes si une alerte est déclenchée.
🛠️ Méthode 2 : avec Monit (plus flexible)
- Permet de configurer des alertes par e-mail sur n’importe quel processus
- Interface web optionnelle
- Recommandée si tu veux surveiller plusieurs services en plus du système
sudo apt install monit
Tu peux ensuite définir des règles comme :
check system localhost
if loadavg (1min) > 2.0 then alert
if memory usage > 85% then alert
if space / > 90% then alert
Puis configure ton adresse email dans /etc/monit/monitrc
.
📈 Bonus : surveiller la bande passante
Avec vnstat
, tu peux détecter des anomalies réseau.
sudo apt install vnstat
vnstat -d
Pour les alertes automatiques, intègre
vnstat
dans ton script et déclenche une alerte si le trafic dépasse X Go/jour.
✅ En résumé
Tu peux être notifié :
- sans interface graphique,
- sans Prometheus ou Zabbix,
- uniquement avec
bash
,mail
etcron
.
🎯 Les alertes simples sont souvent les plus fiables.