#!/bin/bash # TITRE check_tomcat.sh # DESCRIPTION : Script de check du nombre de TOMCAT statusOK/KO # USAGE : lancement du script en ajoutant l'argument -a (ex pour appli : ./check_tomcat.sh -a app) # HISTORIQUE : # T | Date | Auteur | Description #---+------------+------------------------------+------------------------------------ # A | 05/03/21 | Demonic | Création # ----------------------------------------------------------------------------------- ######################################### ## DECLARATION DES VARIABLES ## ######################################### # INITIALISATION DESCRIPTION ALERTE NAGIOS statusReport="" # INITIALISATION SEVERITE ALERTE NAGIOS (OK PAR DEFAUT) severityReport=0 # INITIALISATION VARIABLE DU NOMBRE TOTAL DE TOMCAT NBNOMINAL="" # INITIALISATION VARIABLE DU NOMBRE TOTAL DE TOMCAT statusOK NBOK="" # INITIALISATION VARIABLE DU NOMBRE TOTAL DE TOMCAT statusKO NBKO="" # INITIALISATION VARIABLE DU NOM DE TOMCATS KO LISTEKO="" ######################################### ## DECLARATION DES FONCTIONS ## ######################################### # decho(){ # [ ${debug} -gt 0 ] && echo $* # } # FONCTION POUR DEFINIR LA SEVERITE DE L'ALERTE setSeverity(){ severityToSet=${1} case ${severityToSet} in 0)[ ${severityReport} -lt 1 ] && severityReport=0;; 1)[ ${severityReport} -lt 2 ] && severityReport=1;; 2)severityReport=2;; esac } # FONCTION USAGE (option -h) USAGE(){ echo "Ce script permet de vérifier le nombre de TOMCAT statusactifs et renvoyer une alerte via Nagios si KO" echo "USAGE : check_tomcat.sh -a <3 premières lettres des tomcat>" echo "exemple pour appli : check_tomcat.sh -a app" echo "Info : Le script va filtrer les services via la commande : service app* et compter les lignes actives/inactives" exit 0 } ######################################### ## RECUPERATION DES ARGUMENTS ## ######################################### # ARGUMENT -a : NOM DU TOMCAT # ARGUMENT -h : USAGE # POUR LE -a, AJOUT DE * A LA VARIABLE POUR SORTIR LA TOTALITE DES TOMCATS VOULUS (ex : pour appli, TOMCAT="app*") while getopts ":a:h:" opt; do case "${opt}" in a) TOMCAT="${OPTARG}*";; h) USAGE;; esac done ######################## ## PROGRAMME ## ######################## # LISTING DU NOMBRE DE TOMCAT ETAT NOMINAL (OK+KO) NBNOMINAL=$(service $TOMCAT status| grep "Active:" | wc -l) # LISTING DU NOMBRE DE TOMCAT OK NBOK=$(service $TOMCAT status| grep -i "active (running)" | wc -l) # CONDITION POUR DETERMINER SI CHECK OK/KO if [ $NBNOMINAL -eq $NBOK ]; then # CHECK OK # PASSAGE VARIABLE NBKO A 0 NBKO="0" LISTEOK=$(service $TOMCAT status| grep -B2 -i "running" | grep ".service - " | sed 's/$/
/g' | sed ':a;N;$!ba;s/\n//g') # FORMATTAGE CONTENU NAGIOS statusReport="TOMCAT OK
Nombre de TOMCAT OK : $NBOK
Nombre de TOMCAT KO : $NBKO
TOMCAT OK :
$LISTEOK
" else # CHECK KO # PASSAGE SEVERITE NAGIOS CRITICAL setSeverity 2 # PASSAGE VARIABLE NBKO A LA BONNE VALEUR NBKO=$(($NBNOMINAL-$NBOK)) # RECUPERATION DES NOMS TOMCATS KO LISTEKO=$(service $TOMCAT status| grep -B2 -v "running" | grep ".service - " | sed 's/$/
/g' | sed ':a;N;$!ba;s/\n//g') # FORMATTAGE CONTENU NAGIOS statusReport="TOMCAT KO
Nombre de TOMCAT OK : $NBOK
Nombre de TOMCAT KO : $NBKO
TOMCAT KO :
$LISTEKO
" fi # AFFICHAGE DU CONTENU NAGIOS SI DEBUG # decho "severityReport=${severityReport};statusReport=${statusReport}" # AFFICHAGE RESULTAT CHECK echo "${statusReport}" # SORTIE DU SCRIPT AVEC SEVERITE NAGIOS exit ${severityReport} # FIN DE SCRIPT