Liebes Forum
--
20090623: Update:
Tatsächlich - mit der verbesserten Empfangsqualität (Schüssel hat nun absolut freien Blick in den Himmel) stürzt der VDR nicht mehr ab und läuft nun seit 5 Tagen fehlerfrei (24x7).
--
20090615: Update:
Meine Stabilitätsprobleme hängen mit dem Wetter/Regen direkt zusammen (SNR < ~82). Kommt der Regen und läuft eine Aufnahme, stürzt cx88_dvb ab (zumindest /dev/... ist nicht mehr vorhanden). Ausserdem scheint es besser für den VDR zu sein femon (binary) statt das femon plugin zu benutzen.
"Lösung": Entweder ich kann meinen Empfang bei Regen verbessern, oder ich muss bei fallender Signalqualität (SNR) die aktuellen Timer löschen...
--
"Payback time" - Ich wollte eine Kleinigkeit mit Euch teilen. Meine Haupauge NOVA-S läuft nicht besonders stabil (Mini-ITX board? Power? Kernel modul?). Leider passierte es zu oft, dass eine Aufnahme ins "nichts" ging, d.h. es konnte nicht aufgezeichnet werden. Dies hat verschiedenste Gründe:
[list=a]
[*]DVB device (/dev/dvb/adapter0/frontend0) nicht mehr vorhanden
[*]vdr selbst nicht erreichbar (tcp port 2001)
[*]vdr-admin nicht erreichbar (tcp port 8001)[/list=a]
Es hat sich herausgestellt, dass es nicht ausreichte mittels NAGIOS a, b und c zu überwachen - es musste "mehr her". Die Lösung lag im femon plugin vom VDR. Folgendes NAGIOS plugin liest den SNRA vom femon plugin aus und stellt die "performance values" NAGIOS zur Vefügung:
#!/bin/sh
#
# filename: check_vdrsignalstrength.sh
# History:
# 0.1 20090525 - Creation / LGS aka Heinzharald
# 0.02 20090531 - Included CRIT value in in/output
# Check correct card
# Synopsis:
# NAGIOS plugin that checks VDR femon plugin in order
# to assure sufficient signal-noise-ratio.
# TODO:
# - Cycle through all available cards (via NEXT/PREV commands)
# - More sophistication? E.g. detect tuned channel (SNR will
# vary per channel.
# - Catch CRITICAL states
# - "Correct" handling of CRIT limit
MYSVDRP=/usr/bin/svdrpsend
MYWARN=$1
MYCRIT=$2
# Number of cards in system, beginning with "0"
MYCARDS=0
# Need to run this to catch error states of plugin.
# These could be that femon is listening/tuned to a card
# that is actually not installed e.g. #8.
# So, what card are we tuned to?
curcard=`$MYSVDRP PLUG femon SNRA | \
sed -n -e 's#.*\#\([0-9]\+\).*#\1#p'`
# Card should be 0 to x depending on cards in VDR,
# currently sufficient if tuned to one of the installed ones.
if [ $curcard -gt $MYCARDS ]; then
$MYSVDRP PLUG femon OPEN | fgrep -e Error
$MYSVDRP PLUG femon CLOSE | fgrep -e Error
fi
# sed is your friend
b=`$MYSVDRP PLUG femon SNRA | \
sed -n -e 's#.*\(\([0-9]\{2\}\)\)\%.*#\1#p'`
if [ $b -ge $MYWARN ]; then
echo -n "OK"
EX=0
else
echo -n "WARNING"
EX=1
fi
echo " - SNRA=$b;warning=$MYWARN;critical=$MYCRIT|SNRA=$b;$MYWARN;$MYCRIT"
exit $EX
Alles anzeigen
Es wird in Euer NAGIOS plugins Verzeichnis abgelegt (mit den korrekten
Berechtigungen) und der folgende Eintrag macht es im NAGIOS verfügbar (gehört in die NAGIOS commands.cfg):
define command {
command_name vdr_signalstrength
command_line $USER1$/check_vdrsignalstrength.sh "$ARG1$" "$ARG2$"
}
Und dies geht z.B. in Eure NAGIOS services.cfg oder localhost.cfg
define service{
use local-service
host_name YOURHOSTNAME
service_description check_vdr-signalstrength
check_command vdr_signalstrength!80!50
}
Das ganze wurde auf einem Debian Lenny, mit dem e-tobi kernel "2.6.28-etobi.2-486" (vielen dank, Tobi), NAGIOS 2.6, Etobi multipatch VDR 1.6.0-2 getestet.
Der code ist verbesserbar - Eure Kommentare (diff patches?) sind willkommen. Nun hoffe ich Fehler "rechtzeitiger" zu erkennen - für einen höheren "WAF"
Lars aka Heinzharald
PS: FWIW - hier ist noch eine nagiosgrapher Datei (check_vdrsignalstrength.ncfg):
# ---
# NagiosGrapher Template for check_vdr-signalstrength
# based on template for GSM-related checks
#
# check_vdr-signalstrength
# Author: LGS
# Date: 20090526
# ---
# check_vdr-signalstrength
define ngraph{
service_name check_vdr-signalstrength
graph_perf_regex SNRA=(\d+)
graph_value signalstrength
graph_units signalstrength in %
graph_legend signalstrength
rrd_plottype AREA
rrd_color 009E3B
graph_upper_limit 100
graph_lower_limit 0
}
define ngraph{
service_name check_vdr-signalstrength
type GPRINT
print_source signalstrength
print_function LAST
print_format %2.2lf %%
print_description
}
define ngraph{
service_name check_vdr-signalstrength
graph_perf_regex ;(\d+);
graph_value warning
graph_legend warning strength
rrd_plottype LINE2
rrd_color FFFF00
}
define ngraph{
service_name check_vdr-signalstrength
type GPRINT
print_source warning
print_function LAST
print_format %2.2lf %%
}
define ngraph{
service_name check_vdr-signalstrength
graph_perf_regex ;(\d+)$
graph_value critical
graph_legend critical strength
rrd_plottype LINE2
rrd_color FF0000
}
define ngraph{
service_name check_vdr-signalstrength
type GPRINT
print_source critical
print_function LAST
print_format %2.2lf %%
}
define ngraph{
service_name check_vdr-signalstrength
type CDEF
graph_value cdef_total
graph_calc signalstrength
rrd_plottype LINE1
rrd_color 000000
}
define ngraph{
service_name check_vdr-signalstrength
type VDEF
graph_value vdef_total
graph_calc signalstrength,AVERAGE
rrd_plottype LINE2
rrd_color 006CFF
graph_legend average strength
}
define ngraph{
service_name check_vdr-signalstrength
type GPRINT
print_source signalstrength
print_function AVERAGE
print_format %2.2lf %%
print_eol left
}
define ngraph {
print_description Caution: Signal strength for shifting channels
service_name check_vdr-signalstrength
type COMMENT
}
Alles anzeigen
Und so sieht dies dann als RRD Grafik aus: