Supervision de l’exécution de scripts bash

Petit auto promotion pour annoncer la publication d’une bibliothèque pour superviser l’exécution de script bash (pour l’instant uniquement avec zabbix) en modifiant seulement quelques lignes sur un script existant.

Exemple avec un script qui fait juste des « ls », mais des « ls » tellement importants qu’il faudrait remonter le resultat de leur execution dans Zabbix :

  • Script initial
echo "Begin..."
ls /nonexistant_dir
echo "middle.."
ls /nonexistant_dir2
echo "End"
  • Script adapté (quelques lignes au début, quelques lignes à la fin, mais AUCUNE MODIFICATION du bloc de script initial)
### Environnement de remontee des erreurs 
# Penser à positionner "-s" ou "-c CPT_ERR" sur error_check_trap
# Voir la définition de la fonction "error_check_trap" dans supervision_for_bash.sh pour une description des parametres
SCRIPTDIR="/usr/share/bash_script_monitoring" ; source ${SCRIPTDIR}/bash_script_monitoring.sh
trap 'error_check_trap -c CPT_ERR -p $_' ERR ; set -o errtrace ; export SCRIPT_PARAMS="$*";CPT_ERR=0
### Fin Environnement de remontee des erreurs

echo "Begin..."
ls /nonexistant_dir
echo "middle.."
ls /nonexistant_dir2
echo "End"

### Environnement de remontee des erreurs
# Execution du script sans erreur -> on informe la supervision
[[ $CPT_ERR -eq 0 ]] && ${execution_status_report_ok}
### Fin Environnement de remontee des erreurs

Quand un « ls » du script déclenche une erreur, le script s’arrête (ou continue si « -s » est remplacé par « -c CPT_ERR ») et zabbix est informé -> l’élément passe à 1
Si aucune erreur n’a bloqué le script, zabbix est informé -> l’élément passe à 0

Il faut évident disposer d’un environnement zabbix fonctionnel.

Plus d’informations ou pour participer au projet : https://framagit.org/lucs/bash_script_monitoring

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *