it-artikel:linux:probleme-mit-der-internetverbindung-automatisch-protokollieren-mit-dem-kabelbw-isp-logger.sh-script

This is an old revision of the document!


Probleme mit der Internetverbindung automatisch protokollieren mit dem kabelbw-isp-logger.sh script

Ich bin seit April 2009 Kunde bei KabelBW und habe immer wieder MASSIVE Probleme mit meiner Internetverbindung. Zum Teil habe ich mal einige Stunden ruhe, aber dann gibt es auch wieder ganze Tage oder Wochenenden an denen meine Verbindung alle 2-5 Minuten für min 20-30 Sekunden oder gar mehrere Minuten zusammenbricht. Währen dieser Zeit ist sogar meine ISDN Telefonleitung weg, da KabelBW (echt Intelligent!:-() auf VoIP setzt. d.H. verliert mein Kabelmodem die Verbindung zum ISP sind mein Internet sowie meine Telefonleitung WEG!

Das letzte Wochenende war EXTREM! Ich habe jeden Ausfall den ich mitbekommen habe eigenhändig protokolliert und dokumentiert. Habe dann mehrfach an KabelBW geschrieben, Webformulare ausgefüllt und jedes mal das Protokoll als Beweis mit angehängt. Damit ich die Ausfälle nun nicht mehr alle per Hand dokumentieren muss habe ich dieses kleine shell Script entwickelt mit dessen Hilfe eine beliebige Internetverbindung permanent rund um die Uhr überprüft und sämtliche Ausfälle protokolliert werden.

Es ist sehr einfach gestrickt. Ich prüfe einfach nur per Ping DREI unterschiedliche Hosts im Internet ab. Einer davon ist direkt beim ISP (in meinem Fall KabelBW), zumindest dieser hat bei einer stabilen Verbindung praktisch IMMER online zu sein. Sind nun einmal alle drei Hosts gleichzeitig nicht erreichbar, so muss ein Problem mit der Internet Verbindung zum ISP vorliegen, da es sehr unwahrscheinlich ist, dass Zeitgleich DREI Hosts von unterschiedlichen Firmen an drei verschiedenen Stellen auf der Erde ausfallen können.

Es werden in einem Logfile sowie im Syslog die Vorkommnisse mit Datum und Uhrzeit, Sekunden genau protokolliert.

#!/bin/bash
#
# KabelBW Internet Ausfall Protokollierer V 1.3 (2009-05-20)
# by Axel Werner [mail@awerner.homeip.net]
#
#
#
# History:
#
#	2009-05-18	Public Release 1.1 - it now only logs CHANGES of the last State
#			and does not log every bad linktest anymore. Also added more
#			Hosts so there is a better fault tolerance if one host may
#			be not alive at some time. But its pretty rare that all three
#			Hosts are dead at the same time. So if all three are dead,
#			there must be a problem with the internet link to the ISP.
#
#	2009-05-19	Added a Line for better Visibility in logfile
#
#	2009-05-20	Change: Logging Date now is been determined at the start of
#			the Sampling, not at the End. Since Pings can take some
#			Time on failing hosts the Date in the logs is often too
#			late. so in logs it seems the interupted link was only
#			seconds, while in real the interupt been often +10secs
#			longer.
#
#	2009-05-25	Fix/add: added hosts to the status display.
#
#
#
# User Config goes here
ISP=KabelBW
HOST1=smtp.kabelbw.de
HOST2=web.de
HOST3=gmail.com
logfile=~/kabelbw-ausfaelle.log
#logfile=~/kabelbw-test.log


#####################################################################################
#initialize flags
LINK=good
LASTLINK=good
HOST1GOOD=yes
HOST2GOOD=yes
HOST3GOOD=yes
DATE=`date`

while true ; do
	clear
	DATE=`date`
	#Check HOST1
	if ping -c1 -W 2 $HOST1 ; then 
		HOST1GOOD=yes
	else
		HOST1GOOD=no
	fi

	#Check HOST2
	if ping -c1 -W 2 $HOST2 ; then 
		HOST2GOOD=yes
	else
		HOST2GOOD=no
	fi

	#Check HOST3
	if ping -c1 -W 2 $HOST3 ; then 
		HOST3GOOD=yes
	else
		HOST3GOOD=no
	fi


	if [ "$HOST1GOOD" = "no" -a "$HOST2GOOD" = "no" -a "$HOST3GOOD" = "no" ] ; then 
		LINK=bad
		beep -f 1000 -n -f 2000 -n -f 1500
	else
		#As long just ONE Host of three is available, the link is still mentioned good!
		LINK=good
	fi


	if [ "$LINK" = "bad" -a "$LASTLINK" = "good" ] ; then
		# Link lost...has been ok before.		
		LASTLINK=bad
		logger "Verbindung zu $ISP verloren! Die Hosts "$HOST1", "$HOST2" sowie "$HOST3" waren zeitgleich nicht erreichbar."
		echo "$DATE -  Verbindung zu $ISP verloren! Die Hosts "$HOST1", "$HOST2" sowie "$HOST3" waren zeitgleich nicht erreichbar." >> $logfile
	fi



	if [ "$LINK" = "good" -a "$LASTLINK" = "bad" ] ; then
		# Link restored....been lost before.
		LASTLINK=good
		logger "Verbindung zum Internet wiederhergestellt."
		echo `date`" -  Verbindung zum Internet wiederhergestellt." >> $logfile
		echo "--------------------------------------------------------------------------------------------" >> $logfile
	fi

	echo 
	echo 
	echo 
	echo 
	echo "HOST1GOOD ($HOST1):	$HOST1GOOD"
	echo "HOST2GOOD ($HOST2):		$HOST2GOOD"
	echo "HOST3GOOD ($HOST3):		$HOST3GOOD"
	echo "RECENT LINK:		$LINK"
	echo "LAST LINK:		$LASTLINK"
	echo 
	echo ... PRESS CTRL+C to Exit !
	sleep 2
done

Axel Werner 2009-05-18 20:18

it-artikel/linux/probleme-mit-der-internetverbindung-automatisch-protokollieren-mit-dem-kabelbw-isp-logger.sh-script.1243243817.txt.gz · Last modified: 2009-05-25 11:30 by mail@awerner.myhome-server.de