Pemantauan performa jaringan merupakan komponen krusial untuk memastikan ketersediaan layanan dan pengalaman pengguna yang optimal. Speedtest CLI muncul sebagai solusi andal untuk mengukur kecepatan jaringan secara akurat langsung dari terminal Linux. Tool berbasis command-line ini cocok untuk administrator sistem, DevOps engineer, atau tim infrastruktur yang membutuhkan pengujian bandwidth yang mudah diintegrasikan ke dalam pipeline otomasi.
Dibandingkan tools GUI, Speedtest CLI menawarkan kelebihan seperti eksekusi ringan, kompatibilitas dengan script custom, dan kemampuan menghasilkan output terstruktur (JSON/CSV) untuk analisis lanjutan. Artikel ini akan memandu Anda melalui proses instalasi dan konfigurasi tool ini di sistem Linux.
Persiapan dan Instalasi Speedtest CLI di Linux
Syarat Sistem
Sebelum memulai instalasi, pastikan sistem Linux memenuhi persyaratan berikut:
- Sistem operasi berbasis Debian/Ubuntu atau RHEL/CentOS/AlmaLinux (versi 64-bit).
- Akses sudo atau hak akses root untuk menginstal paket.
- Koneksi internet aktif untuk mengunduh dependensi.
- Tools dasar seperti
wget
,curl
, ataugnupg
sudah terinstal (untuk metode instalasi via script).
Untuk memverifikasi ketersediaan tools tersebut, jalankan:
which wget curl # Cek apakah command tersedia
Jika tools belum terinstal, gunakan command sesuai package manager:
# Debian/Ubuntu
sudo apt update && sudo apt install -y wget curl gnupg
# RHEL-based
sudo dnf install -y wget curl gnupg2
Metode Instalasi
Instalasi via Ookla Script Resmi
Metode ini direkomendasikan untuk instalasi standar:
# Unduh dan jalankan instalasi resmi
curl -s https://install.speedtest.net/app/cli/install.deb.sh | sudo bash
# Update repository (Debian/Ubuntu)
sudo apt update
# Instal paket speedtest
sudo apt install -y speedtest
Instalasi via Package Manager
Untuk RHEL-based systems:
# Tambahkan repository Ookla
curl -s https://install.speedtest.net/app/cli/install.rpm.sh | sudo bash
# Instal paket
sudo dnf install -y speedtest
Verifikasi Instalasi
Pastikan Speedtest CLI berjalan dengan perintah:
speedtest --version
Output yang diharapkan:
Speedtest by Ookla 1.2.0.0
Catatan
- Instalasi via script resmi memastikan Anda mendapatkan versi terbaru.
- Jika terjadi error “Permission denied”, pastikan eksekusi script dengan
sudo
. - Untuk sistem tanpa akses internet, gunakan paket offline yang tersedia di website Ookla.
Menjalankan dan Menginterpretasi Hasil Tes
Perintah Dasar Speedtest CLI
Setelah proses instalasi selesai, Anda dapat memulai pengujian jaringan dasar dengan menjalankan perintah berikut di terminal:
speedtest
Secara default, tool akan:
- Mendeteksi server terdekat secara otomatis berdasarkan lokasi geografis.
- Melakukan tes latency (ping), kecepatan unduh (download), dan unggah (upload).
- Menampilkan hasil dalam format human-readable.
Untuk output yang lebih ringkas, gunakan opsi --simple
:
speedtest --simple
Contoh output:
Ping: 12.345 ms
Download: 567.89 Mbit/s
Upload: 123.45 Mbit/s
- Ping: Mengukur latensi jaringan (waktu respons server). Nilai di bawah 50 ms dianggap ideal untuk aplikasi real-time.
- Download Speed: Kecepatan unduh data dari server ke client.
- Upload Speed: Kecepatan unggah data dari client ke server.
Catatan Penting:
- Hasil tes dipengaruhi oleh lokasi server. Speedtest CLI secara default memilih server berdasarkan latensi terendah.
- Hindari menjalankan tes saat ada aktivitas jaringan berat (misal: backup data besar) untuk menghindari false reading.
Parameter Lanjutan untuk Use Case Spesifik
Pemilihan Server Manual
Untuk memilih server tertentu (misal: server internal perusahaan), gunakan --server-id
:
# Tampilkan daftar server tersedia
speedtest --servers
# Jalankan tes ke server spesifik (contoh ID: 12345)
speedtest --server-id=12345
Output Terstruktur (JSON/CSV)
Gunakan opsi --format=json
atau --format=csv
untuk integrasi dengan tool monitoring:
speedtest --format=json --progress=no
Contoh output JSON snippet:
{
"ping": {"latency": 14.7},
"download": {"bandwidth": 72345678},
"upload": {"bandwidth": 12345678},
"server": {"name": "Jakarta Data Center"}
}
- Bandwidth diukur dalam bytes per detik. Konversi ke Mbps:
(nilai bandwidth × 8) / 1,000,000
.
Mode Non-Interaktif untuk Automation
Tambahkan flag --progress=no
untuk menghilangkan progress bar, cocok untuk eksekusi via cron job atau script:
speedtest --progress=no --format=json > speedtest-log-$(date +\%F).json
Menyimpan Hasil ke File
Redirect output langsung ke file untuk dokumentasi:
speedtest --simple > ~/network-report-$(date +\%F).txt
Tips:
- Jadwalkan tes berkala dengan cron job (misal: setiap 1 jam) untuk memantau performa jaringan 24/7.
- Gunakan
--accept-license
dan--accept-gdpr
di environment production untuk menghindari prompt interaktif.
Poin Troubleshooting:
- Jika muncul error “No servers defined”, pastikan koneksi internet aktif dan tidak ada pemblokiran ke
speedtest.net
. - Untuk tes di belakang proxy, tambahkan parameter
--proxy=http://[user:password@]proxyhost:port
.
Analisis Teknis dan Integrasi Dasar
Interpretasi Metrics Jaringan
Hasil tes Speedtest CLI memberikan tiga metrik kunci: latensi, kecepatan unduh, dan kecepatan unggah. Berikut panduan interpretasinya dalam konteks teknis:
- Latensi (Ping)
- Nilai di bawah 50 ms: Ideal untuk aplikasi real-time (VoIP, video conference, gaming).
- Nilai 50–100 ms: Masih diterima untuk browsing umum atau streaming, tetapi mungkin menyebabkan lag pada aplikasi kritikal.
- Nilai di atas 150 ms: Indikasi masalah jaringan serius (misal: routing tidak optimal, kongesti jaringan).
- Download/Upload Speed
- Bandwidth harus mendekati 80–95% dari kapasitas paket internet. Jika jauh di bawah, cek:
- Throttling oleh ISP.
- Interferensi fisik (kabel rusak, WiFi overcrowded).
- Limitasi pada router atau firewall.
- Bandwidth harus mendekati 80–95% dari kapasitas paket internet. Jika jauh di bawah, cek:
- Jitter & Packet Loss
Meski tidak ditampilkan di output dasar, Anda bisa mengukur jitter (variasi latensi) dan packet loss dengan tes berulang:for i in {1..10}; do speedtest --simple | grep "Ping" >> ping-stats.txt; done
Analisis fileping-stats.txt
untuk menghitung deviasi latensi menggunakan tools sepertiawk
:awk '{print $2}' ping-stats.txt | awk '{sum+=$1} END {print "Avg:", sum/NR, "ms"}'
Faktor yang Mempengaruhi Hasil Tes
- Lokasi Server: Server yang jauh secara geografis cenderung memberi latensi lebih tinggi.
- Workload Server: Server Speedtest yang sibuk mungkin memberikan hasil download/upload lebih rendah.
- Kondisi Jaringan Lokal: Penggunaan bandwidth oleh aplikasi lain selama tes.
Integrasi dengan Workflow Monitoring
Scheduling Tes Berkala dengan Cron
Buat cron job untuk menjalankan tes setiap jam dan menyimpan hasil ke log file:
# Buka crontab editor
crontab -e
# Tambahkan baris berikut (tes setiap jam ke file JSON)
0 * * * * /usr/bin/speedtest --format=json --progress=no >> /var/log/speedtest-hourly.log
Parsing Data untuk Reporting
Gunakan script Python sederhana untuk ekstrak metrik dari log JSON:
import json
with open('/var/log/speedtest-hourly.log', 'r') as f:
for line in f:
data = json.loads(line)
download = round((data['download']['bandwidth'] * 8) / 10**6, 2) # Konversi ke Mbps
upload = round((data['upload']['bandwidth'] * 8) / 10**6, 2)
print(f"{data['timestamp']} | Download: {download} Mbps | Upload: {upload} Mbps")
Integrasi dengan Tools Monitoring
- Grafana: Gunakan plugin JSON/CSV datasource untuk visualisasi trend bandwidth.
- Prometheus: Export hasil tes ke format Prometheus menggunakan script custom, lalu scrape via Node Exporter.
- ELK Stack: Kirim log JSON ke Elasticsearch untuk analisis historis dan alerting.
Contoh Use Case: Bandwidth Utilization Alert
Bash script untuk memicu email alert jika download speed di bawah 100 Mbps:
#!/bin/bash
speedtest --simple > temp.txt
download_speed=$(grep "Download" temp.txt | awk '{print $2}')
if (( $(echo "$download_speed < 100" | bc -l) )); then
echo "Peringatan! Kecepatan unduh hanya $download_speed Mbps" | mail -s "Bandwidth Alert" [email protected]
fi
Tips:
- Rotasi Log: Batasi ukuran log file dengan
logrotate
untuk hindari kehabisan disk space. - Permission Management: Pastikan cron job dan script memiliki izin eksekusi (
chmod +x
).
Kesimpulan
Dengan mengintegrasikan Speedtest CLI ke dalam sistem monitoring, Anda dapat mengidentifikasi anomaly jaringan secara proaktif, memvalidasi SLA dari ISP, dan mengoptimalkan alokasi bandwidth. Tools ini menjadi fondasi penting untuk membangun jaringan yang resilient dan berkinerja tinggi.