Får du det du betaler for fra din internettleverandør?

Hjemme på Lekvam er ikke gode alternativene til internettoppkobling mange. Alt må via gamle kobberlinjer og maks ned-hastighet er 6mbit, og på en god dag 0.5mbit opp.

Kobberlinjene går tidvis i luftstrekk(!) mot den gamle telefonsentralen og i østavind med gode kast fører dette til en del pakketap til og fra Internettet. Det er forsåvidt ikke helt krise, men internettleverandøren vår har i tillegg automatiske mekanismer for å båndbreddebegrense kunder med dårlig signal på linjene sine! Derfor blir vi tidvis nedgradert til både 5 og 4 og 1.5 mbit, alt avhengig av uværets art.

For å bygge sak har jeg kjørte en speedtest (https://github.com/rsvp/speedtest-linux) hver tredje time siden problemene begynte å oppstå og grafet dette.

isp_bandwidth

I løpet av 5 mnd har vi 5 ganger bedt vår ISP om å ordne opp, og det er tydeligvis tid for å sende en ny epost... Denne gang skal de også få lov til å fortelle om hvilke preventive tiltak de har tenkt å iverksette for at dette ikke skal skje igjen.

Fordi jeg har en server på Internett™, har jeg også satt opp SmokePing som grafer latens og pakketap.

isp_smokeping

Det er viktig å sette opp monitorering mot et par referanse-noder også (som elg.no eller en pålitelig og åpen DNS-tjener). Slik kan du kryss-sjekke at uregelmessigheter ikke tilfeldigvis er på server-siden.

isp_smokeping_ref

Her er det du trenger for å sette opp din egen båndbredde-overvåking. Det er en god unnskyldning til å kjøpe seg en Raspberry Pie f.eks. Hver tredje time kjører jeg en speedtest, og to minutter etter oppdater jeg grafen.

0 */3 * * * ~/bin/speedtest.sh >> speedtest.log
2 */3 * * * cat speedtest.log > isp.csv && gnuplot plotisp.plot && cp isp.png /var/www/html/
torvald@vognskjul:~$ cat plotisp.plot
set xdata time
set timefmt "%Y-%m-%d, %H:%M"
set format x "%d. %b"
set xlabel 'Date'
set ylabel 'Mbit'
set grid
set term png
# From hardcoded start point - until today
set xrange ["2017-12-19, 00:00" : time(0)]
set title "Internett ISP-navn, updated ".strftime("%Y-%m-%d, %H:%M", time(0))

set output 'isp.png'
set xtics rotate by -45 offset -0.0,0 font ",10"

plot 'isp.csv' using 1:4 with lines title 'download',  'isp.csv' using 1:5 with lines title 'upload'

Cover photo by Taduuda on Unsplash