Kuidas ma ehitasin lihtsa Interneti kvaliteedi monitooringu (ja miks see tegelikult kasulik on)
Kui sul on kunagi olnud tunne, et “internet on täna kuidagi aeglane”, aga speedtest näitab täiesti normaalset tulemust, siis sa tead probleemi.
Latency hüppab, paketid kaovad, DNS uimerdab… aga seda kõike on keeruline tõestada. Eriti siis, kui pead ISP-le ticketi avama või kliendile selgitama, miks VPN lagib.
Sealt tuli mul idee. Panen püsti lihtsa, pidevalt töötava mõõtmisagendi, mis kogub päris andmeid, mitte ainult ühekordset snapshoti nagu speedtest.
Mis see lahendus teeb?
Kasutasin Docker image’it netprobe, mis jookseb taustal ja teeb regulaarselt:
- ping ruuterisse (local gateway)
- ping tuntud saitidele (nt Google, YouTube)
- DNS päringud erinevatele resolveritele
- (valikuline) speedtest
Kõik tulemused kirjutatakse lokaalsesse SQLite andmebaasi ja kuvatakse web UI-s.
Ehk siis sul tekib ajalugu, mitte ainult hetkeseis.

Minu setup (lihtne ja robustne)
Mul jookseb see LXC konteineris (Debian Trixie) Proxmoxis.
Miks nii?
- eraldatud keskkond, ei sega hosti
- lihtne deploy
- väga väike resource usage
Sees kasutan Docker Compose’i:
services:
netprobe:
image: bmmbmm01/netprobe:latest
container_name: netprobe
restart: unless-stopped
environment:
WEB_PORT: 8080
DB_PATH: /data/netprobe.sqlite
PROBE_INTERVAL: 60
PING_COUNT: 4
SITES: fast.com,google.com,youtube.com
ROUTER_IP: X.X.X.X
DNS_TEST_SITE: google.com
DNS_NAMESERVER_1: Google_DNS
DNS_NAMESERVER_1_IP: 8.8.8.8
DNS_NAMESERVER_2: Quad9_DNS
DNS_NAMESERVER_2_IP: 9.9.9.9
DNS_NAMESERVER_3: CloudFlare_DNS
DNS_NAMESERVER_3_IP: 1.1.1.1
DNS_NAMESERVER_4: My_DNS_Server
DNS_NAMESERVER_4_IP: X.X.X.X
WEIGHT_LOSS: 0.6
WEIGHT_LATENCY: 0.15
WEIGHT_JITTER: 0.2
WEIGHT_DNS_LATENCY: 0.05
THRESHOLD_LOSS: 5
THRESHOLD_LATENCY: 100
THRESHOLD_JITTER: 30
THRESHOLD_DNS_LATENCY: 100
SPEEDTEST_ENABLED: "True"
SPEEDTEST_INTERVAL: 14400
APP_TIMEZONE: Europe/Tallinn
ports:
- "8080:8080"
volumes:
- /home/dmitri/Netprobe/data:/data
cap_add:
- NET_RAWMiks need valikud?
- /data mount tähendab, et andmetest on lihtne teha backupi ja ringi kolida teise hosti peale kui vajadus tekkib
- NET_RAW on vajalik ICMP pingide jaoks
- PROBE_INTERVAL 60 sekundit annab piisava täpsuse ilma liigse koormuseta
- SITES on päris teenused, mitte ainult IP aadressid
Mis on Internet Quality Score?
Süsteem arvutab ühe numbri vahemikus 0 kuni 100, mis näitab kui hea su ühendus parasjagu on.
Interneti kvaliteedi skoor
Interneti kvaliteedi skoor on mõõdik, mis annab ülevaate sinu internetiühenduse kvaliteedist igal ajahetkel. See koosneb neljast komponendist:
- Paketikaotus 60.0%
- Latentsus 15.0%
- Jitter 20.0%
- DNS vastuse aeg 5.0%
Paketikaotus
See näitab, kui suur osa pakette läheb kaduma.
Ideaalis peaks see olema 0%, väikeste hüpetega tipptundidel.
Pidev paketikaotus võib viidata:
- vigasele kaablile või modemile
- ISP seadmete probleemile
- ISP ülekoormusele

Latentsus
Aeg, mis kulub paketil sihtkohta jõudmiseks ja tagasi tulemiseks. Minu seadistuses mõõdan latentsust teenuste nagu fast.com, google.com ja youtube.com suunas.
Kõrge latentsus tähendab aeglast tunnetust isegi siis, kui kiirus on suur.
Võimalikud põhjused:
- probleemid sisemises võrgus
- ISP routing
- kehv ühendus välismaailma

Jitter
Jitter mõõdab latentsuse kõikumist.
See mõjutab otseselt:
- videokõnesid
- VoIP kõnesid
- online mänge
Kõrge jitter tähendab ebastabiilset ühendust ja tuntavaid katkestusi.

DNS vastuse aeg
DNS on esimene samm peaaegu iga ühenduse puhul.
Kui DNS on aeglane:
- veebilehed avanevad aeglaselt
- samas speedtest võib olla täiesti korras
Probleem võib olla:
- DNS serveris
- või üldises latentsuses

Interneti ribalaius (perioodilised kiirusetestid)
See on klassikaline Mbps number.
Aga oluline asi, mida paljud ei tea:
halb kasutajakogemus ei tähenda alati väikest kiirust
Sageli on tegelikud süüdlased:
- packet loss
- jitter
- DNS

Mul on näiteks kodus 100/100 Mbit/s ühendus.
Kui teha teste, siis näen, et allalaadimine on maksimaalselt umbes 85 Mbit/s ja üleslaadimine samuti.
Esimene mõte võiks olla, et teenusepakkuja ei täida oma lubadusi.
Tegelikult ei ole probleem ISP-s.
Mul on tulemüüris meelega seadistatud traffic shaping, ehk WAN liidesele on pandud kiirusepiirang.
Miks ma seda teen?
Põhjus on bufferbloat.
Mis on bufferbloat?
Bufferbloat on võrgu seadmete tarkvaraga seotud probleem, mis põhjustab internetiühenduse latentsuse järske tõuse olukorras, kus mõni seade võrgus laadib alla või üles andmeid.
Tulemus:
- latentsus kasvab
- jitter suureneb
- ühendus muutub “uimaseks”
- videokõned ja mängud hakkavad lagima
Ja kõige olulisem:
👉 speedtest võib samal ajal näidata täiesti normaalset kiirust
Kuidas seda lahendada?
Üks levinud lahendus ongi:
👉 piirata ühendust natuke alla maksimumi
Näiteks:
- 100 Mbit/s ühendus
- limiter seatud ~80–90 Mbit/s peale
Sellega saavutad, et:
- järjekorrad tekivad sinu seadmes (kus sa kontrollid neid)
- mitte ISP seadmetes (kus sa ei kontrolli midagi)
Tulemus
Kuigi maksimaalne kiirus on veidi väiksem:
- latentsus on stabiilsem
- jitter on väiksem
- ühendus tundub kiirem ja “sujuvam”
Ehk reaalses kasutuses on kogemus parem.
Bufferbloat test, tehtud ühes arvutis üle wifit.

Miks see tegelikult kasulik on?
Kodukasutajale
Kui:
- Netflix jääb bufferdama
- Teams lagib
- mängus tekivad katkestused
siis saad lõpuks näidata, et probleem on päriselt olemas, mitte lihtsalt tunne.
IT adminidele
Siin tuleb päris väärtus välja:
- saad eristada kas probleem on LAN-is või ISP-s
- näed mustreid, näiteks kindlatel kellaaegadel
- saad teha reaalse andme põhise troubleshootingu
Väikeettevõttele
Kui töö sõltub internetist, näiteks:
- VoIP
- VPN
- pilveteenused
siis see lahendus annab:
- varajase indikatsiooni probleemidest
- ajaloolise ülevaate
- reaalse aluse ISP-ga suhtlemiseks
Mida ma ise sellest õppisin?
Kõige huvitavam asi oli see, et probleemid ei ole pidevad.
Need on lühikesed spike’id.
Ilma sellise tööriistata:
- sa ei märka neid
- sa ei saa neid tõestada
Kokkuvõte
See lahendus on:
- odav
- lihtne
- praktiline
Ja kõige tähtsam, see annab sulle päris pildi interneti kvaliteedist, mitte ainult ühe speedtesti tulemuse.