diff --git a/bin/ctl_all_nrpe.sh b/bin/ctl_all_nrpe.sh index 22842c3..4bbcac9 100755 --- a/bin/ctl_all_nrpe.sh +++ b/bin/ctl_all_nrpe.sh @@ -13,7 +13,9 @@ # 1.0.0 22/07/2017 - Doug Le Tough - Cre : Mise en production # #------------------------------------------------------------------------------------------------------------------ -# Dependances : /usr/local/bin/tetalab/ircbot.py +# Dependances : +# - /usr/local/bin/tetalab/ircbot.py +# - ctl_host_process.sh # #------------------------------------------------------------------------------------------------------------------ # Liste des options et arguments: @@ -29,12 +31,37 @@ # NRPE_CHECK_PATH=/etc/nagios/nrpe/ # NRPE_CHECK_BIN=/usr/libexec/nagios/check_nrpe # INFRA_SERVER=sousetsuken.local.tetalab.org +# # VM monitorée par NRPE +# # ATTENTION: web n'est *volontairement* pas monitorée par NRPE # TETALAB_VM[0]=sousetsuken.local.tetalab.org # TETALAB_VM[1]=jimmy.local.tetalab.org # TETALAB_VM[2]=billy.local.tetalab.org -# TETALAB_VM[3]=marian.local.tetalab.org -# TETALAB_VM[4]=sonny.local.tetalab.org -# TETALAB_VM[5]=web.local.tetalab.org +# TETALAB_VM[3]=sonny.local.tetalab.org +# TETALAB_VM[4]=marian.local.tetalab.org +# # Processus monitorés indépendemment de NRPE +# PROCESS[0]=sousetsuken.local.tetalab.org:/usr/sbin/httpd +# PROCESS[1]=sousetsuken.local.tetalab.org:/usr/sbin/named +# PROCESS[2]=sousetsuken.local.tetalab.org:/usr/sbin/ntpd +# PROCESS[3]=sousetsuken.local.tetalab.org:/usr/sbin/crond +# PROCESS[4]=sousetsuken.local.tetalab.org:/usr/bin/nrpe +# PROCESS[5]=marian.local.tetalab.org:/usr/sbin/httpd +# PROCESS[6]=marian.local.tetalab.org:/usr/sbin/ntpd +# PROCESS[7]=marian.local.tetalab.org:/usr/sbin/crond +# PROCESS[8]=marian.local.tetalab.org:/usr/bin/nrpe +# PROCESS[9]=web.local.tetalab.org:/usr/lib/postfix/sbin/master +# PROCESS[10]=sonny.local.tetalab.org:/usr/lib64/postgresql/9.6/bin/postgres +# PROCESS[11]=sonny.local.tetalab.org:/usr/sbin/ntpd +# PROCESS[12]=sonny.local.tetalab.org:/usr/sbin/crond +# PROCESS[13]=sonny.local.tetalab.org:/usr/bin/nrpe +# PROCESS[14]=jimmy.local.tetalab.org:/usr/sbin/httpd +# PROCESS[15]=jimmy.local.tetalab.org:/usr/sbin/node +# PROCESS[16]=jimmy.local.tetalab.org:/usr/sbin/ntpd +# PROCESS[17]=jimmy.local.tetalab.org:/usr/sbin/crond +# PROCESS[18]=jimmy.local.tetalab.org:/usr/bin/nrpe +# PROCESS[19]=billy.local.tetalab.org:/usr/sbin/ntpd +# PROCESS[20]=billy.local.tetalab.org:/usr/sbin/crond +# PROCESS[21]=billy.local.tetalab.org:/usr/bin/nrpe +# PROCESS[22]=billy.local.tetalab.org:/usr/sbin/httpd # #------------------------------------------------------------------------------------------------------------------ # Liste des erreurs: @@ -59,10 +86,12 @@ ## Fonctionnement: ## --------------- ## Depuis sousetsuken, récupère depuis le répertoire local NRPE_CHECK_PATH la liste des checks à effectuer -## et pour ceux qui sont executables les execute sur les VM définies dans le fichier de configuration +## et pour ceux qui sont executables les execute sur les VM définies dans le fichier de configuration. ## puis relève les incidents et les notifie sur le chan freenode.net#tetalab en utilisant le script python ## /usr/local/bin/tetalab/ircbot.py ## +## Ce script utilise ctl_host_process.sh pour la vérification des processus. +## #------------------------------------------------------------------------------------------------------------------ # Initialisation de l'environement #------------------------------------------------------------------------------------------------------------------ @@ -110,6 +139,10 @@ function check_config ERROR="Aucune VM définie dans le fichier de configuration" fct_erreur 2 fi + if [ ${#PROCESS[*]} -eq 0 ]; then + ERROR="Aucun processus défini dans le fichier de configuration" + fct_erreur 2 + fi fct_message " * IRC_BOT: ${IRC_BOT}" fct_message " * NRPE_CHECK_PATH: ${NRPE_CHECK_PATH}" fct_message " * NRPE_CHECK_BIN: ${NRPE_CHECK_BIN}" @@ -147,6 +180,22 @@ function check_all done } +function check_process +{ + for PROC in ${PROCESS[@]} + do + HOST=$(echo ${PROC} | cut -d: -f1) + PROC=$(echo ${PROC} | cut -d: -f2) + fct_message "Vérification du process ${PROC} sur ${HOST}" + ctl_host_process -vm ${HOST} -process ${PROC} + RET_VAL=$? + if [ ! ${RET_VAL} -eq 0 ]; then + fct_message "Processus ${PROC} inexistant sur ${HOST}" -color orange + MESSAGE="${MESSAGE}|||${HOST}: CRITICAL: Processus ${PROC} inexistant sur ${HOST}" + fi + done +} + function send_message { if [ ${#MESSAGE} -eq 0 ]; then @@ -164,5 +213,6 @@ function send_message MESSAGE="" check_config check_all +check_process send_message fct_erreur 0 diff --git a/conf/ctl_all_nrpe.conf b/conf/ctl_all_nrpe.conf index dd9b042..7120968 100644 --- a/conf/ctl_all_nrpe.conf +++ b/conf/ctl_all_nrpe.conf @@ -2,10 +2,34 @@ IRC_BOT=/usr/local/bin/tetalab/ircbot.py NRPE_CHECK_PATH=/etc/nagios/nrpe/ NRPE_CHECK_BIN=/usr/libexec/nagios/check_nrpe INFRA_SERVER=sousetsuken.local.tetalab.org +# VM monitorée par NRPE +# ATTENTION: web n'est *volontairement* pas monitorée par NRPE TETALAB_VM[0]=sousetsuken.local.tetalab.org TETALAB_VM[1]=jimmy.local.tetalab.org TETALAB_VM[2]=billy.local.tetalab.org TETALAB_VM[3]=sonny.local.tetalab.org TETALAB_VM[4]=marian.local.tetalab.org - -# ATTENTION: web n'est *volontairement* pas monitorée +# Processus monitorés indépendemment de NRPE +PROCESS[0]=sousetsuken.local.tetalab.org:/usr/sbin/httpd +PROCESS[1]=sousetsuken.local.tetalab.org:/usr/sbin/named +PROCESS[2]=sousetsuken.local.tetalab.org:/usr/sbin/ntpd +PROCESS[3]=sousetsuken.local.tetalab.org:/usr/sbin/crond +PROCESS[4]=sousetsuken.local.tetalab.org:/usr/bin/nrpe +PROCESS[5]=marian.local.tetalab.org:/usr/sbin/httpd +PROCESS[6]=marian.local.tetalab.org:/usr/sbin/ntpd +PROCESS[7]=marian.local.tetalab.org:/usr/sbin/crond +PROCESS[8]=marian.local.tetalab.org:/usr/bin/nrpe +PROCESS[9]=web.local.tetalab.org:/usr/lib/postfix/sbin/master +PROCESS[10]=sonny.local.tetalab.org:/usr/lib64/postgresql/9.6/bin/postgres +PROCESS[11]=sonny.local.tetalab.org:/usr/sbin/ntpd +PROCESS[12]=sonny.local.tetalab.org:/usr/sbin/crond +PROCESS[13]=sonny.local.tetalab.org:/usr/bin/nrpe +PROCESS[14]=jimmy.local.tetalab.org:/usr/sbin/httpd +PROCESS[15]=jimmy.local.tetalab.org:/usr/sbin/node +PROCESS[16]=jimmy.local.tetalab.org:/usr/sbin/ntpd +PROCESS[17]=jimmy.local.tetalab.org:/usr/sbin/crond +PROCESS[18]=jimmy.local.tetalab.org:/usr/bin/nrpe +PROCESS[19]=billy.local.tetalab.org:/usr/sbin/ntpd +PROCESS[20]=billy.local.tetalab.org:/usr/sbin/crond +PROCESS[21]=billy.local.tetalab.org:/usr/bin/nrpe +PROCESS[22]=billy.local.tetalab.org:/usr/sbin/httpd