dimanche 17 décembre 2017

Script de monitoring uptime server en bash Linux envoyant des e-mails d'alerte et des message sur Telegram

 

Comprendre le code 

Ce code a été réalisé pour une base Debian.

Si vous désirez comprendre le code, je vous propose de lire un ancien article où j'avais détaillé ce code assez simple: http://www.ihaveto.be/2014/05/script-de-surveillance-pour-terminal.html

Le fichier bash de monitoring sous Linux 

#!/bin/bash

######################################################################
#                                                                                                                                          
#      MonitorBox - Simple Group - Brice Cornet - 2017/08/11                                         
#                                                                                                                                          
######################################################################

##################### SETUP ##########################################
#
# Allez dans votre Gmail
# Activer l'accès des applications peu sécurisée
# Voir explication sur http://www.ihaveto.be/2017/12/autoriser-gmail-dialoguer-avec-des.html
#
# sudo apt install msmtp
# nano ~/.msmtprc
# Ecrire dans ce fichier:
# account default
# tls on
# host smtp.gmail.com
# port 587
# from VOTRE_ADRESSE_GMAIL
# auth on
# user VOTRE_NOM_EMAIL_AVANT_LE_@gmail.com
# password LE_PASS_DE_CE_COMPTE
# tls_starttls on
# tls_certcheck on
# tls_trust_file /etc/ssl/certs/ca-certificates.crt
#
# Sous Nano: CTRL MAJ O (pour sauver) et CTRM MAJ X (pour sortir)
#
# chmod 600 ~/.msmtprc
#
##################### FIN SETUP ######################################



##################### START ##########################################
#
# bash ./test_moni.sh


while true
do
clear
echo ============================================
date
echo ============================================
# Site web
echo
echo > tmp
curl -o tmp https://URL_DU_SITE
if grep -q TERME_A_CHERCHER tmp
then
    echo -e "\e[1;32m------------------- | SRV NOM_DU_SERVEUR : UP\e[00m"
else
    echo
    echo Test 1 ERROR
    echo
    sleep 30s
    echo > tmp
    curl -o tmp https://URL_DU_SITE
    if grep -q TERME_A_CHERCHER tmp
        then
            echo -e "\e[1;32m------------------- | SRV NOM_DU_SERVEUR : UP\e[00m"
        else           
            printf "Subject:Serveur NOM_DU_SERVEUR DOWN\nSRV web URL_DU_SITE est DOWN" | msmtp email_sur_lequel_envoyer_alerte & echo -e "\e[1;31m /!\ /!\ /!\ https://URL_DU_SITE : DOWN /!\ /!\ /!\ \e[00m";
fi
fi
# Deuxième site
echo
echo > tmp
curl -o tmp https://URL_DU_SITE
if grep -q TERME_A_CHERCHER tmp
then
    echo -e "\e[1;32m------------------- | SRV NOM_DU_SERVEUR : UP\e[00m"
else
    echo
    echo Test 1 ERROR
    echo
    sleep 30s
    echo > tmp
    curl -o tmp https://URL_DU_SITE
    if grep -q TERME_A_CHERCHER tmp
        then
            echo -e "\e[1;32m------------------- | SRV NOM_DU_SERVEUR : UP\e[00m"
        else           
            printf "Subject:Serveur NOM_DU_SERVEUR DOWN\nSRV web URL_DU_SITE est DOWN" | msmtp email_sur_lequel_envoyer_alerte & echo -e "\e[1;31m /!\ /!\ /!\ https://URL_DU_SITE : DOWN /!\ /!\ /!\ \e[00m";
fi
fi
# Etc....
echo
sleep 44s
done

Envoyer les alertes sur Telegram

Un petit push d'alerte sur le mobile étant toujours sympathique, le plus simple est donc d'avoir envoyé les alertes de monitoring sur une boite mail dédiée et de relever cette boite via un bot Telegram.

Pour cela, il suffit de saisir "Telegram gmail" dans Google.

Personnellement, j'utilise: https://ifttt.com/applets/480720p-send-gmail-notifications-to-telegram

PS : et si vous voulez que votre ordinateur diffuse en plus des alertes audios

L'explication se trouve ici: "Comment faire un beep bash shell script Linux ? La solution qui marche !".

Aucun commentaire:

Enregistrer un commentaire