Redémarrer Apache automatiquement en cas de crash

Il peut arriver parfois pour plusieurs motifs différents qu’apache tombe et si jamais votre configuration n’est pas des plus abouties, vous avez certainement oublié toute la partie monitoring et alertes en cas de serveur down.

Sans vouloir faire dans le trop compliqué, voici un script qui va vous permettre de démarrer apache sur un serveur Vps classique.

1 – Création du script shell

On crée un script à notre racine comme ceci,

vim apache_monitor.sh
#!/bin/sh

ps auxw | grep apache2 | grep -v grep > /dev/null

if [ $? != 0 ]
then
        /etc/init.d/apache2 start > /dev/null
fi

Pensez également à donner les droits d’exécution au fichier comme ceci

chmod +x apache_monitor.sh

2 – Automatisation via Crontab

Voilà maintenant la partie la plus intéressante ! Nous allons ajouter une entrée à notre crontab afin d’exécuter automatiquement notre script. Si votre site est à forte audience, je vous propose qu’on pousse le délai au maximum en le planifiant toutes les minutes.

Ouvrez le fichier cron

crontab -e

Ajoutez-y la commande

* * * * * ~/apache_monitor.sh

De cette manière il y aura une vérification du statut d’apache toutes les minutes. Si apache est arrêté, alors il sera de nouveau démarré.

Nous pouvons aussi le faire toutes les 15 minutes si notre traffic est moins dense. On l’écrirait alors de la manière suivante,

*/15 * * * * ~/apache_monitor.sh

On peut imaginer également ajouter une alerte e-mail dans notre condition if afin d’être alerté en cas d’anomalie.