hyperglass Looking Glass
Instalasi rilis resmi terbaru di Debian 12/13 & Ubuntu 24.04/26.04 dengan Nginx
Subdomain hyperglass.domain.tld · Redis · systemd · reverse proxy :8001
Ringkasan Status Komponen & Arsitektur
Sumber resmi: github.com/thatmattlove/hyperglass. Rilis GitHub terbaru per 16 Agustus 2026 tetap v2.0.4 (1 Juli 2024). Tidak ada tag 2.0.5+.
| Komponen | Versi / Status | Peran |
|---|---|---|
| hyperglass | v2.0.4 | Looking glass BGP/NOC (Python API + UI) |
| Listen default | port 8001 | Default di hyperglass/models/system.py (host, port = 8001) |
| Redis | wajib | Cache query. Sejak 2.0.4 error response tidak di-cache |
| Node.js | 18+ | Dibutuhkan saat hyperglass setup membangun UI |
| Nginx | reverse proxy | TLS ke 127.0.0.1:8001. Bukan PHP-FPM |
| Perangkat | SSH / Netmiko | Juniper, Cisco, MikroTik, FRR, dll. lewat devices.yaml |
Pendahuluan
Pasang hyperglass v2.0.4 di Debian 12/13 atau Ubuntu 24.04/26.04, publik di https://hyperglass.domain.tld.
Alur: venv /opt/hyperglass → Redis lokal → hyperglass setup (CLI resmi di hyperglass/cli/main.py) menulis /etc/hyperglass → systemd hyperglass start di 127.0.0.1:8001 → Nginx + Let's Encrypt.
pip install hyperglass==2.0.4 gagal di Python 3.13+ (mungkin Ubuntu 26.04), buat venv Python 3.11 atau 3.12. Jangan memakai versi yang tidak ada di GitHub Releases.Persyaratan Sistem
| Spesifikasi | Minimal | Rekomendasi |
|---|---|---|
| CPU | 2 vCPU | 4 vCPU |
| RAM | 2 GB | 4 GB |
| Storage | 15 GB | 30 GB SSD (build UI) |
| OS | Debian 12 / 13 Ubuntu 24.04 / 26.04 LTS | |
| Ke router | SSH dari host hyperglass ke setiap perangkat di devices.yaml | |
Port
| Port | Bind | Fungsi |
|---|---|---|
22 | publik terbatas | SSH admin host |
80 / 443 | publik | Nginx + ACME |
8001 | hanya 127.0.0.1 | Aplikasi hyperglass |
6379 | hanya 127.0.0.1 | Redis |
Persiapan Server
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git ca-certificates gnupg lsb-release ufw \
nginx certbot python3-certbot-nginx \
python3 python3-venv python3-pip python3-dev build-essential \
redis-server nodejs npm
python3 --version
node --version
sudo systemctl enable --now redis-server
sudo redis-cli ping
sudo adduser --system --group --home /opt/hyperglass --shell /usr/sbin/nologin hyperglass
sudo mkdir -p /opt/hyperglass /etc/hyperglass /var/log/hyperglass
sudo chown -R hyperglass:hyperglass /opt/hyperglass /etc/hyperglass /var/log/hyperglass
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw --force enable
node --version < 18, pasang Node 20 LTS dari NodeSource. Pastikan Redis hanya listen localhost (bind 127.0.0.1 ::1 di /etc/redis/redis.conf).Instalasi Python (venv + v2.0.4)
sudo python3 -m venv /opt/hyperglass
sudo /opt/hyperglass/bin/pip install --upgrade pip wheel setuptools
sudo /opt/hyperglass/bin/pip install 'hyperglass==2.0.4'
sudo /opt/hyperglass/bin/hyperglass --help
sudo chown -R hyperglass:hyperglass /opt/hyperglass
Jika PyPI gagal, pasang dari tarball rilis resmi:
curl -fsSL -o /tmp/hyperglass-2.0.4.tar.gz \
https://github.com/thatmattlove/hyperglass/archive/refs/tags/v2.0.4.tar.gz
sudo /opt/hyperglass/bin/pip install /tmp/hyperglass-2.0.4.tar.gz
Inisialisasi konfigurasi
Perintah resmi: hyperglass setup. Jangan menimpa file hasil setup dengan YAML karangan.
sudo -u hyperglass /opt/hyperglass/bin/hyperglass setup
ls -la /etc/hyperglass
sudo -u hyperglass /opt/hyperglass/bin/hyperglass --help
Di model sistem v2, bind memakai kunci host dan port (default port 8001). Setelah setup, buka file YAML yang dihasilkan dan set host ke loopback jika kunci itu ada:
host: 127.0.0.1
port: 8001
debug: false
listen_address atau site.url jika file hasil setup tidak memakai kunci itu. Samakan dengan skema yang ditulis installer. Yang wajib: proses tidak listen di 0.0.0.0:8001.devices.yaml
Edit contoh yang dibuat hyperglass setup di /etc/hyperglass/. Isi address, platform, dan kredensial sesuai perangkat Anda. Jangan menyalin skema dari versi 1.x.
- User router read-only (show/display saja).
- Uji SSH dulu:
sudo -u hyperglass ssh -o BatchMode=yes user@IP_ROUTERjika memakai kunci; atau uji interaktif sebelum nologin ketat. - User systemd
hyperglassmemakai shell nologin. Untuk uji SSH, sementara beri shell atau pakaisudo -u hyperglass ssh ...dengan-ike key di home-nya. - v2.0.4 memperbaiki traceroute IPv6 Juniper (#264), cache AS Path (#267), dan perintah MikroTik (#268).
sudo chmod 640 /etc/hyperglass/*.yaml
sudo chown hyperglass:hyperglass /etc/hyperglass/*.yaml
systemd Auto-Start
[Unit]
Description=hyperglass looking glass
Documentation=https://github.com/thatmattlove/hyperglass
After=network-online.target redis-server.service
Wants=network-online.target
Requires=redis-server.service
[Service]
Type=simple
User=hyperglass
Group=hyperglass
WorkingDirectory=/opt/hyperglass
Environment=PATH=/opt/hyperglass/bin:/usr/bin
ExecStart=/opt/hyperglass/bin/hyperglass start
Restart=on-failure
RestartSec=5
NoNewPrivileges=true
PrivateTmp=true
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now hyperglass.service
sudo systemctl status hyperglass.service --no-pager
ss -tlnp | grep 8001
127.0.0.1:8001. Jika 0.0.0.0, perbaiki YAML lalu systemctl restart hyperglass.Nginx reverse proxy + HTTPS
upstream hyperglass_app {
server 127.0.0.1:8001;
keepalive 16;
}
server {
listen 80;
listen [::]:80;
server_name hyperglass.domain.tld;
location / {
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Connection "";
proxy_read_timeout 120s;
proxy_pass http://hyperglass_app;
}
}
sudo ln -sfn /etc/nginx/sites-available/hyperglass.domain.tld /etc/nginx/sites-enabled/hyperglass.domain.tld
sudo nginx -t
sudo systemctl reload nginx
sudo certbot --nginx -d hyperglass.domain.tld --agree-tos -m [email protected] --redirect
Verifikasi
curl -4 -I https://hyperglass.domain.tld
curl -6 -I https://hyperglass.domain.tld
curl -sS -I http://127.0.0.1:8001/
sudo journalctl -u hyperglass.service -n 80 --no-pager
redis-cli ping
Buka https://hyperglass.domain.tld, pilih router, uji query ke prefix milik Anda.
Troubleshooting
| Gejala | Penyebab | Perbaikan |
|---|---|---|
| pip gagal di Python baru | v2.0.4 belum support 3.13+ | venv Python 3.11/3.12 |
| setup gagal di tahap UI | Node < 18 | Node 20, ulang setup |
| 502 Nginx | service mati / bukan :8001 | journalctl -u hyperglass |
| Query timeout | SSH/ACL router | Uji SSH dari user hyperglass |
| Cache AS Path salah | bug lama | Pastikan benar 2.0.4 (#267) |
| Traceroute IPv6 Juniper | wait timer | Diperbaiki 2.0.4 (#264) |
| redis-cli sebagai user hyperglass gagal | user nologin, tidak perlu | Pakai redis-cli ping sebagai admin |
Keamanan & Best Practices
- Jangan buka 8001 dan 6379 ke publik.
- User router hanya perintah looking glass.
chmod 640pada YAML berisi rahasia.- Rate-limit Nginx jika layanan publik.
- Backup
/etc/hyperglass.
0 3 * * 0 tar -czf /var/backups/hyperglass-$(date +\%F).tar.gz \
/etc/hyperglass \
/etc/systemd/system/hyperglass.service \
/etc/nginx/sites-available/hyperglass.domain.tld