Monitoring koneksi Starlink sangat penting untuk memastikan kualitas internet tetap stabil. Dengan kombinasi Prometheus dan Grafana, kamu bisa melihat performa jaringan secara real-time, mulai dari latency, throughput, hingga status koneksi.
Artikel ini akan membahas setup lengkap, termasuk Docker Compose dan penggunaan exporter dari GitHub.
Arsitektur Monitoring
Sistem monitoring yang digunakan terdiri dari beberapa komponen:
Starlink Dish → Exporter → Prometheus → Grafana
Penjelasan:
- Exporter mengambil data langsung dari Starlink
- Prometheus melakukan scrape data dari exporter
- Grafana menampilkan data dalam bentuk dashboard
Menggunakan Starlink Exporter dari GitHub
Kita menggunakan exporter dari repository berikut:
starlink_exporter
Repository ini ditulis dengan Go dan memang dirancang untuk Prometheus.
Cara Menjalankan Starlink Exporter
Clone repository
git clone https://github.com/danopstech/starlink_exporter.git
cd starlink_exporter
Build binary
go build -o starlink-exporter ./cmd/starlink_exporter
Jalankan exporter
./starlink-exporter --port 9817
Exporter akan tersedia di:
http://localhost:9817/metrics
Setup Prometheus dan Grafana dengan Docker Compose
Berikut konfigurasi Docker Compose yang digunakan.
File docker-compose.yml
version: '3.8'
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
- prometheus-data:/prometheus
ports:
- "9090:9090"
restart: unless-stopped
extra_hosts:
- "host.docker.internal:host-gateway"
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3000:3000"
volumes:
- grafana-data:/var/lib/grafana
restart: unless-stopped
depends_on:
- prometheus
volumes:
prometheus-data:
grafana-data:
Konfigurasi Prometheus
Edit file prometheus.yml:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'starlink'
static_configs:
- targets: ['host.docker.internal:9817']
Konfigurasi ini memungkinkan Prometheus yang berjalan di Docker untuk mengakses exporter yang berjalan di host.
Menjalankan Docker Compose
docker compose up -d
Verifikasi Prometheus
Buka:
Pastikan:
- job
starlinkberstatus UP
Setup Grafana
Buka Grafana:
Login dengan:
- username: admin
- password: admin
Tambahkan Data Source
- Pilih Prometheus
- Gunakan URL:
http://prometheus:9090
Klik Save and Test.
Query Dashboard Starlink
Berikut query yang bisa langsung digunakan di Grafana.
Latency
starlink_dish_pop_ping_latency_seconds * 1000
Download Speed
rate(starlink_dish_downlink_throughput_bytes[1m]) * 8 / 1000000
Upload Speed
rate(starlink_dish_uplink_throughput_bytes[1m]) * 8 / 1000000
Packet Loss
starlink_dish_pop_ping_drop_ratio * 100
Obstruction
starlink_dish_fraction_obstruction_ratio * 100
Status Koneksi
starlink_dish_up
Alert Monitoring
Beberapa alert yang direkomendasikan:
Internet down
starlink_dish_up == 0
Latency tinggi
starlink_dish_pop_ping_latency_seconds > 0.1
Packet loss tinggi
starlink_dish_pop_ping_drop_ratio > 0.05
Kesimpulan
Dengan setup ini, kamu bisa membangun sistem monitoring Starlink yang lengkap dan fleksibel. Prometheus bertugas mengumpulkan data, sementara Grafana menyajikannya dalam bentuk visual yang mudah dipahami.
Menggunakan exporter dari GitHub memberikan fleksibilitas dan stabilitas, terutama jika dibandingkan dengan image Docker yang tidak konsisten.
Setup ini juga bisa dikembangkan lebih lanjut, seperti menambahkan alert ke Telegram atau monitoring multi lokasi.
Pastikan di prometheus hanya ada 1 metrics yang sudah kita buat sendiri contoh :
