scripts/SHELL/NAGIOS/check_mq.sh
2022-04-14 09:27:25 +02:00

90 lines
2.8 KiB
Bash

#!/bin/sh
# TITRE check_mq.sh
# DESCRIPTION : Script de check MQ pour centreon
# USAGE : lancement du script en ajoutant les arguments **
# HISTORIQUE :
# T | Date | Auteur | Description
#---+------------+------------------------------+------------------------------------
# A | 13/04/22 | Demonic/Polaris | Création
# -----------------------------------------------------------------------------------
#########################################
## DECLARATION DES VARIABLES ##
#########################################
# INITIALISATION DESCRIPTION ALERTE NAGIOS
statusReport=""
# INITIALISATION SEVERITE ALERTE NAGIOS (OK PAR DEFAUT)
severityReport=0
#########################################
## 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 processus actifs pour un processus donné et renvoyer une alerte via Nagios si moins/plus de processus"
echo "USAGE : check_nbproc.sh -p <processus> -c <nb_de process_voulus>"
exit 0
}
#########################################
## RECUPERATION DES ARGUMENTS ##
#########################################
# ARGUMENT -p : NOM DU PROCESSUS
# ARGUMENT -c : NOMBRE DE PROCESS VOULU
# ARGUMENT -h : USAGE
while getopts ":p:c:h:" opt; do
case "${opt}" in
p) NOMPROC="${OPTARG}";;
c) NBOK="${OPTARG}";;
h) USAGE;;
esac
done
########################
## PROGRAMME ##
########################
# https://www.ibm.com/docs/en/ibm-mq/7.5?topic=reference-mqsc-commands
# https://www.ibm.com/docs/en/ibm-mq/7.5?topic=commands-display-qstatus
# https://www.ibm.com/docs/en/ibm-mq/7.5?topic=reference-building-command-scripts
# AGE : runmqsc | DISPLAY QSTATUS(name) MSGAGE | END
# POUR CALCUL % FILE : runmqsc | DISPLAY QUEUE(name) MAXDEPTH,CURDEPTH | END
# MQINFO de la file MQ
echo "\nMQINFO de la file queue \n"
su - mqm -c "MQINFO.exe <name_Queue>" > $ficLogOCB
# Récupération des valeurs (nb de message, nb de message max, taux)
echo "\nRECUPERATION DES VALEURS \n"
nbMess=`grep "Number of messages in queue" $ficLogOCB | sed 's/.* = (//g' | sed 's/).*//g'`
nbMax=`grep "Maximum number" $ficLogOCB | sed 's/.* = (//g' | sed 's/).*//g'`
tauxRemp=`grep "ratio" $ficLogOCB | sed 's/.* = (//g' | sed 's/).*//g'`
echo "dis chstatus(name)" | runmqsc
MQBROWSE.exe <name_QManager> <name_Queue> -a | grep -E "Send date|Send time|(CPNAME=)[A-Z0-9_]*"