Перейти к содержимому
Калькуляторы

peksus

Новичок
  • Публикации

    1
  • Зарегистрирован

  • Посещение

О peksus

  • Звание
    Абитуриент
  1. Вот, от нефиг делать сделал плагин check_iptv, мониторящий трафик через udp proxy, показывает бит-рейт! :) wget'ает в теч. заданного времени ссылку "http://{HOST}/udp/{UDP}", определяет размер wget-нутого файла и определяет средний бит-рейт Если wget-нутый файл нулевой, то стрима нет. Мне более и не надо, и оч. наглядно оказалось. Канал если на стримере упал, то он и не вещается в сеть. А если картинки или звука нет, то у меня такое за 3-года если и было, то не по вине стримеров - а именно так вещали источники. в services прописываем check_iptv!{HOST}!{UDP}!, например check_iptv!10.10.10.10:14444!239.1.1.1:1234! #!/bin/sh #!/bin/sh ### CHECK HTTP STREAM through UDPXY### if [ -z $1 ] || [ -z $2 ]; then echo "Check IPTV stream through UDP PROXY for Nagios" echo "Downloaded URL with WGET during defined TIME, analyse SIZE downloaded file and calculate bitrate" echo "URL have next form: 'http://<UDP_PROXY_HOST:PORT>/udp/<MULTICAST_GROUP:PORT>'" echo "Syntax: check_iptv <UDP_PROXY_HOST:PORT> <MULTICAST_GROUP:PORT> <THRESHOLD_MAX> <THRESHOLD_MIN> <TIME>" echo " <UDP_PROXY_HOST:PORT> - UDP Proxy host (required)" echo " <MULTICAST_GROUP:PORT> - Multicast group (required)" echo " <THRESHOLD_MAX> - Threshold MAX, Mbit/s, for WARNING code in Nagios, default 6Mbit/s (optional)" echo " <THRESHOLD_MIN> - Threshold Min, Kbit/s, for WARNING code in Nagios, default 500Kbit/s (optional)" echo " <TIME> - Downloaded time, second, default 5 seconds (optional)" exit 3 fi host=$1 udp_host=$2 url="http://$host/udp/$udp_host" #echo $url tmp_file="/tmp/check_$udp_host" #command="/usr/bin/curl $url | head -100 > $tmp_file" if [ -z $5 ]; then time=5 else time=$5 fi if [ -z $3 ]; then threshold_max_mbit=6 else threshold_max_mbit=$3 fi if [ -z $4 ]; then threshold_min_kbit=500 else threshold_min_kbit=$4 fi let threshold_bytes_max=($threshold_max_mbit*1024*1024)/8*$time let threshold_bytes_min=($threshold_min_kbit*1024)/8*$time #echo $threshold_bytes_min command="/usr/bin/wget -O $tmp_file $url" STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 STATE_UNKNOWN=3 STATE_DEPENDENT=4 #echo "/usr/bin/curl $url | head -100 > $tmp_file" ($command > /dev/null)& pid=$! sleep $time kill -9 $pid s=`stat -c %s $tmp_file` #let s=$s*8/1024/1024/$time s_mbit=`expr \( $s \* 8 \) \* 100 / 1024 / 1024 / $time | sed 's/..$/.&/'` if [ $s = 0 ]; then echo $s_mbit"Mbit/s - http://$host/udp/$udp_host" exit $STATE_CRITICAL fi if [ $s -gt $threshold_bytes_max ] || [ $s -lt $threshold_bytes_min ]; then echo $s_mbit"Mbit/s - http://$host/udp/$udp_host" exit $STATE_WARNING fi if [ $s -gt 0 ]; then echo $s_mbit"Mbit/s - http://$host/udp/$udp_host" exit $STATE_OK else echo "$s - UNKNOWN" exit $STATE_UNKNOWN fi rm -Rf $tmp_file