Magazine High tech

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]


Retour à La Une de Logo Paperblog

A propos de l’auteur


Cyrillevis 1 partage Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte