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

v2.0.4
Latest Release
8001
App Port
Nginx
TLS Proxy
Riset & Dokumentasi Teknis oleh HARRY DERTIN SUTISNA ALSYUNDAWY IT SOLUTION
0

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+.

KomponenVersi / StatusPeran
hyperglassv2.0.4Looking glass BGP/NOC (Python API + UI)
Listen defaultport 8001Default di hyperglass/models/system.py (host, port = 8001)
RediswajibCache query. Sejak 2.0.4 error response tidak di-cache
Node.js18+Dibutuhkan saat hyperglass setup membangun UI
Nginxreverse proxyTLS ke 127.0.0.1:8001. Bukan PHP-FPM
PerangkatSSH / NetmikoJuniper, Cisco, MikroTik, FRR, dll. lewat devices.yaml
hyperglass meng-query router lewat SSH/API. Ini bukan PHP Looking Glass dan tidak memakai MySQL.
1

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.

Python: v2.0.4 dirilis 2024. Jika 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.
2

Persyaratan Sistem

SpesifikasiMinimalRekomendasi
CPU2 vCPU4 vCPU
RAM2 GB4 GB
Storage15 GB30 GB SSD (build UI)
OSDebian 12 / 13 Ubuntu 24.04 / 26.04 LTS
Ke routerSSH dari host hyperglass ke setiap perangkat di devices.yaml
Port
PortBindFungsi
22publik terbatasSSH admin host
80 / 443publikNginx + ACME
8001hanya 127.0.0.1Aplikasi hyperglass
6379hanya 127.0.0.1Redis
3

Persiapan Server

Bash
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
Jika 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).
4

Instalasi Python (venv + v2.0.4)

Bash
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:

Bash
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
5

Inisialisasi konfigurasi

Perintah resmi: hyperglass setup. Jangan menimpa file hasil setup dengan YAML karangan.

Bash
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:

Kunci bind (sesuaikan nama file hasil setup)
host: 127.0.0.1
port: 8001
debug: false
Jangan membuat blok fiktif seperti 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.
6

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_ROUTER jika memakai kunci; atau uji interaktif sebelum nologin ketat.
  • User systemd hyperglass memakai shell nologin. Untuk uji SSH, sementara beri shell atau pakai sudo -u hyperglass ssh ... dengan -i ke key di home-nya.
  • v2.0.4 memperbaiki traceroute IPv6 Juniper (#264), cache AS Path (#267), dan perintah MikroTik (#268).
Bash
sudo chmod 640 /etc/hyperglass/*.yaml
sudo chown hyperglass:hyperglass /etc/hyperglass/*.yaml
7

systemd Auto-Start

/etc/systemd/system/hyperglass.service
[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
Bash
sudo systemctl daemon-reload
sudo systemctl enable --now hyperglass.service
sudo systemctl status hyperglass.service --no-pager
ss -tlnp | grep 8001
8001 harus 127.0.0.1:8001. Jika 0.0.0.0, perbaiki YAML lalu systemctl restart hyperglass.
8

Nginx reverse proxy + HTTPS

/etc/nginx/sites-available/hyperglass.domain.tld
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;
    }
}
Bash
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
9

Verifikasi

Bash
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.

10

Troubleshooting

GejalaPenyebabPerbaikan
pip gagal di Python baruv2.0.4 belum support 3.13+venv Python 3.11/3.12
setup gagal di tahap UINode < 18Node 20, ulang setup
502 Nginxservice mati / bukan :8001journalctl -u hyperglass
Query timeoutSSH/ACL routerUji SSH dari user hyperglass
Cache AS Path salahbug lamaPastikan benar 2.0.4 (#267)
Traceroute IPv6 Juniperwait timerDiperbaiki 2.0.4 (#264)
redis-cli sebagai user hyperglass gagaluser nologin, tidak perluPakai redis-cli ping sebagai admin
11

Keamanan & Best Practices

  • Jangan buka 8001 dan 6379 ke publik.
  • User router hanya perintah looking glass.
  • chmod 640 pada YAML berisi rahasia.
  • Rate-limit Nginx jika layanan publik.
  • Backup /etc/hyperglass.
Cron backup
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
Berdasarkan thatmattlove/hyperglass v2.0.4 (2024-07-01). Ditinjau ulang 16 Agustus 2026 — belum ada rilis lebih baru di GitHub Releases.