Unifi Fiber Connection Speed ke InfluxDB

Aku suka monitor kelajuan internet rumah sebab benda ini jarang orang ambil peduli samada mereka dapat kelajuan penuh dan bayaran service bulanan yang dibayar betul-betul berbaloi atau tidak dengan apa yang mereka dapat.

Jadi untuk pengguna biasa mereka susah nak monitor sebab software ini memerlukan sistem yang boleh bekerja 24×7 baru kita boleh dapat kesan samada kelajuan internet rumah yang kita dapat betul-betul konsisten.

Sistem tersebut juga memerlukan network card ( 1 Gbps ) port, cable 5E yang boleh support hingga 1Gbps connection bermaksud infra di rumah juga perlu siap sedia dengan requirement untuk mencapai objektif sekiranya kelajuan internet yang kita subscribe adalah 1Gbps atau 500Mbps. Kebiasaan kalau Wifi router yang lama cuma support hingga 100Mbps sahaja.

Untuk spesifikasi wifi router boleh di-semak di website manufacturer Wifi router tersebut sebab setiap model adalah berbeza.

Jadi, di rumah aku monitor kelajuan internet rumah menggunakan software speedtest-cli dan kemudian data tersebut aku simpan dalam InfluxDB. Software speedtest-cli ini free dan boleh di-install dalam Linux juga.

Aku pakai bash script untuk run software ini setiap 10 saat. Output dia aku simpan dalam log dan kemudian script aku akan susun balik data dan simpan dalam InfluxDB. Kemudian aku guna Grafana untuk lukis graf connection speed Unifi.

Bawah ini bash script yang aku guna untuk buat speed test simpan record dan dari record tuh aku susun balik letak dalam file untuk di-upload dalam database.

#!/bin/bash -x

while true; do
        /usr/local/bin/speedtest --simple --server 10327 > /var/log/speedtest.1.log
        printf "speedtest,tag=unifispeed ping=`cat /var/log/speedtest.1.log | grep Ping | awk '{ print $2 }'`,download=`cat /var/log/speedtest.1.log | grep Download | awk '{ print $2 }'`,upload=`cat /var/log/speedtest.1.log | grep Upload | awk '{ print $2 }'` \n" > /var/log/speedtest.influx.log
        curl -i -XPOST 'https://example.com/write?db=iot' --data-binary @/var/log/speedtest.influx.log
        sleep 10
done

Kalau tengok dari script di atas aku guna server no. 10327, sebab, sekiranya kita nak tunjuk dekat orang TM yang speed kita ada masalah kita mesti guna server TM untuk test connection. Aku tahu sebab dulu semasa orang TM datang rumah dia nak connection test mesti menggunakan server TM sebagai destination server.

Rujukan untuk setiap code server yang speedtest-cli guna ada di-sini.

<server url="http://speedtest-ookla1.tm.net.my:8080/speedtest/upload.php" lat="3.1357" lon="101.6880" name="Kuala Lumpur" country="Malaysia" cc="MY" sponsor="Telekom Malaysia Berhad" id="10327" url2="http://speedtest-ookla2.tm.net.my/speedtest/upload.php" host="speedtest-ookla1.tm.net.my:8080"/>

Leave a Comment