Comment recevoir un email d'alerte si la consommation CPU de votre serveur est trop élevée

Lorsque vous hébergez un site sur un serveur dédié vous pouvez paramétrer toutes les alertes que vous voulez. Ce n’est généralement pas le cas sur un serveur mutualisé, mais on vous explique comment contourner cette limitation chez certains hébergeurs.

Pourquoi déclencher des alertes en cas de surconsommation CPU ?

Je gère actuellement plus de 200 sites répartis sur une dizaine de serveurs. J’essaie d’automatiser un maximum de taches de gestion et si généralement ça se passe bien, une erreur non identifiée à temps va provoquer un raz de marée destructeur.

C’est précisément ce qui s’est passé hier et qui a généré des pics de consommation CPU sur tous mes serveurs en même temps.

Comment recevoir un email d'alerte si la consommation CPU de votre serveur est trop élevée

Comment recevoir un email d'alerte si la consommation CPU de votre serveur est trop élevée #2

Le problème est que si sur mes serveurs dédiés je reçois des alertes dans ce cas, je ne reçois par contre absolument rien quand ça concerne mes serveurs mutualisés.

Dans un monde idéal, il serait judicieux d’installer une solution de monitoring complète comme Grafana ou Netdata mais je vous propose ci-dessous une solution bien plus simple et rapide à mettre en œuvre.

Comment configurer un email automatique d’alerte consommation CPU

Une partie de mes sites est hébergée chez o2switch (un excellent prestataire que je vous conseille très chaudement) et il se trouve qu’o2switch fournit un accès SSH à ses serveurs.

Une fois connecté en SSH au serveur qui nous intéresse j’ai créé le petit script bash tout simple :

cpu=$(top -b -n 5 -d.2 | grep 'Cpu' |  awk '{sum +=$2 } END { print(sum / NR) }' )
if((${cpu%.*}>70))
then
    mail -s "[Alerte CPU] ${cpu}% sur ${HOSTNAME}" [email protected] <<< ''
fi

Je suis assez nul en bash, donc ce petit script est loin d’être parfait. En gros il va faire 5 top d’affilée à intervalles de 0,2 secondes et renvoyer la moyenne des mesures de consommation CPU.
Si cette valeur est supérieure à 70% il y a un souci et ça mérite donc un mail !

Une fois ce script sauvé sur le serveur (j’utilise personnellement nano) n’oubliez pas de le rendre exécutable avec la commande chmod u+x. Pour ma part j’ai sauvé ce script sous le nom cpu_alert.sh et j’ai donc saisi chmod u+x cpu_alert.sh

Si vous avez un doute sur l’emplacement où vous vous trouvez faites un pwd.Notez ensuite le chemin complet du script qui devrait donc ressembler à /home/mon_compte/cpu_alert.sh

Il vous faut ensuite déclencher ce script à intervalles réguliers. Personnellement j’ai choisi de le déclencher toutes les 10 minutes.

Chez o2switch la commande crontab -e qui permet d’éditer directement la table des processus récurrents n’est pas pleinement opérationnelle (et heureusement). C’est pourquoi il faut se rendre dans votre CPanel pour ajouter votre script de contrôle :

Comment recevoir un email d'alerte si la consommation CPU de votre serveur est trop élevée #3

Comment recevoir un email d'alerte si la consommation CPU de votre serveur est trop élevée #4

Et voilà !

5 1 voter
Noter cet article
S’abonner
Notifier de
guest
Commentaires
Inline Feedbacks
View all comments