Cara Monitoring Starlink dengan Prometheus dan Grafana (Lengkap dengan Docker dan Exporter)


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:

http://localhost:9090/targets

Pastikan:

  • job starlink berstatus UP

Setup Grafana

Buka Grafana:

http://localhost:3000

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 :

Leave a Reply

Your email address will not be published. Required fields are marked *