Superviser la file Postfix avec nagios

Publié le 26 mars 2010 par Cyrillevis

Salut salut ! Ça faisait longtemps ? Il faut dire que j’ai très peu de temps en ce moment

Alors voilà je vous poste un petit script qui vous permettra de vérifier la file d’attente de Postfix sur vos serveurs depuis Nagios.

#!/bin/bash
set -e

print_help(){
	echo "Usage : $0 -w WARNING -c CRITIQUE "
	echo -e "Where
\t- Warning à partir de ce nombre de mail;
\t- Critique à partir de ce nomre de mail;
"
}

check_parameters(){
	# On vérifie si WARNING est un entier positif
	if  [ $(echo ${WARNING} | grep -v [a-Z] | wc -l) -eq 0 ]
	 then
		echo "Erreur : valeur ${WARNING} non entiere positive !"
		print_help
		exit 1;
	fi

	# On vérifie si CRITIQUE est un entier positif
	if  [ $(echo ${CRITIQUE} | grep -v [a-Z] | wc -l) -eq 0 ]
	 then
		echo "Erreur : valeur ${CRITIQUE} non entiere positive !"
		print_help
		exit 1;
	fi
}

check_postqueue(){

NB_MAIL_TMP=`postqueue -p | tail -n1 | sed -e 's/.*in \([0-9]\+\) Requests.*/\1/'`

if [ "${NB_MAIL_TMP}" = "Mail queue is empty" ]
		then
			NB_MAIL=0;
fi

NB_MAIL=${NB_MAIL_TMP}

if [ ${NB_MAIL} -le ${WARNING} ]
		then
			echo "OK : Quelques mails..."
			exit 0
elif [ ${NB_MAIL} -ge ${CRITIQUE} ]
		then
			echo "Aie : Critique : beaucoup trop de mails..."
			exit 2
else
			echo "Oups : Warning : faut jeter un oeil..."
			exit 1
fi

}

while getopts "w:c:h" OPTION
do
	case ${OPTION} in
		w ) WARNING="${OPTARG}"
	;;
		c ) CRITIQUE="${OPTARG}"
	;;
		h ) print_help
		exit 0
	;;
	esac
done

if [ $# -ne 4 ]
then
	print_help
	exit 1
fi

check_parameters
if [ $? != 0 ]
then
	exit 1
fi

check_postqueue
Nagios doit exécuter ce script via check_by_ssh. Enjoy J’espère que ça vous fera gagner un peu de temps… Si vous avez des questions, des remarques…n’hésitez pas. Je complèterais volontiers en cas de problème. A bientôt amis/es du Libre.

[ad]