Check audio stream dans Nagios

J’ai fait un petit script en bash pour faire un service Nagios. Le voici à disposition.

Celui-ci utilise streamripper pour dumper le flux audio pendant $DURATION secondes et vérifier que le fichier crée fait au moins $DUMP_LIMIT ko.
Il suffit de lui passer l’url du flux en paramètre.


#! /bin/bash

# This check uses streamripper to dump a continuous audio stream, check if file exists and
# determine if the streaming service is working or not.
#
# © Nicolas Perrin 2011

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

PROGNAME=`basename $0`
PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'`
REVISION="1.0"
# stream dump duration (in seconds)
DURATION="5"
# attended dump size
DUMP_LIMIT="10"

. $PROGPATH/utils.sh

case "$1" in
--help | -h )
echo "This plugin checks audio stream using the streamripper package."
echo "usage: $PROGNAME URL"
exit 0
;;
--version | -V )
echo $PROGNAME $REVISION
exit 0
;;
*)
# previous dump files cleaning
rm /tmp/stream_dump* > /dev/null 2>&1
rm -rf /tmp/incomplete > /dev/null 2>&1
#stream dump
STATUS=`/usr/bin/streamripper “$1” -d /tmp/ -a stream_dump -sA -l $DURATION 2>&1 | grep "^error"`
if [ -z "$STATUS" ]; then
STREAM_SIZE=`stat --printf="%s" /tmp/stream_dump.mp3`
if [ ${STREAM_SIZE} -gt $DUMP_LIMIT ]; then
echo "Stream OK - $1"
exit $STATE_OK
else
echo "STREAM WARNING - Stream too small ! - $1"
exit $STATE_WARNING
fi
else
echo "STREAM CRITICAL - streamripper returned state: $STATUS"
exit $STATE_CRITICAL
fi
;;
esac

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Le temps imparti est dépassé. Merci de recharger le CAPTCHA.