Création d’un monitoring applicatif

Le script suivant permet de surveiller le contenu d’un site par un mot clé insérer dans la source du site . Le script suivant utilise CURL (apt-get install curl) pour effectuer des requêtes HTTP permettant de récupérer la source du site dans une liste et vérifier que le mot clé existe bien .

Le script est très utile si celui-ci est hacké ou si celui-ci ne répond plus

 

 

Etape 1 : Préparation de l’environnement 

mkdir /home/automates
cd /home/automates && mkdir alert index param

Etape 2 : Mise en place du script bash 

vim monitsite.sh

Copier coller le script suivant :

#!/bin/sh
BASEDIR="/home/automates"
FILE="$BASEDIR/liste.txt"
GETPARAM="$BASEDIR/param"
GETAL="$BASEDIR/alert"
MAILD="VOTRE EMAIL"
while read ligne
do
SITE=$(echo $ligne|awk -F"|" '{print($1)}')
KEY=$(echo $ligne|awk -F"|" '{print($2)}')
PRM=$(echo $ligne|awk -F"|" '{print($3)}')
echo "=== SITE $SITE ==="


if test -z $PRM; then
 DATA=$(curl -s http://$SITE)
else
if test -e $GETPARAM/$SITE.txt; then
 MPARAM=$(less $GETPARAM/$SITE.txt)
 echo "curl --request $PRM 'http://$SITE' --data '$MPARAM'"
 DATA=$(curl --request $PRM 'http://$SITE' --data '$MPARAM' )
 fi
fi

if echo $DATA | grep $KEY > /dev/null; then
 echo "$SITE = OK"
 if test -e "$GETAL/$SITE"; then
 rm -f $GETAL/$SITE
 fi
else
if test -e "$GETAL/$SITE"; then
 echo "Flag exist"
else
 SUBJECT="[ALERT] $SITE NOK"
 EMAIL=$MAILD
 EMAILMESSAGE="/tmp/email$SITE.txt"
 DATEEX=$(date '+%d/%m/%y %H:%M')
 echo "Site $SITE inaccessible le $DATEEX" > $EMAILMESSAGE
 echo "$SITE = NOK"
mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSAGE
 touch $GETAL/$SITE
 rm -f $EMAILMESSAGE
fi
fi
echo ""
echo "----------------"
echo ""
done < $FILE

Etape 3 : 

Créer un fichier texte : liste.txt avec le listing des sites et le mot clé a rechercher

Exemple :

site1.fr|key1
site2.fr|key2

Etape 4 : Créer un cron toutes les minutes de monitsite.sh