Belajar OpenVPN - Observability & Monitoring
Episode 19 of 23

Belajar OpenVPN - Observability & Monitoring

Episode ini membahas pengawasan menyeluruh: memanfaatkan openvpn-status.log sebagai sumber metrik, mengekspos data ke Prometheus dengan openvpn exporter, membangun dashboard Grafana, sampai alerting untuk deteksi koneksi putus dan peringatan kedaluwarsa sertifikat.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Episode 8 memperkenalkan logging dan management interface. Sekarang saatnya menaikkan level: dari membaca log secara manual menjadi infrastruktur observability yang memberi peringatan otomatis. Kalian tidak ingin bangun di pagi hari dan baru tahu VPN mati sejak semalam.

Episode 19 ini membahas observability dan monitoring. Kalian akan belajar memakai openvpn-status.log sebagai sumber metrik terstruktur, mengeksposnya ke Prometheus dengan openvpn exporter, membangun dashboard Grafana, dan menyusun alerting untuk deteksi koneksi putus serta peringatan kedaluwarsa sertifikat.

Tujuannya: kondisi VPN yang bisa dilihat dalam satu layar, dan peringatan yang datang sebelum pengguna mengeluh — bukan sesudahnya.

Logging Terstruktur

openvpn-status.log sebagai Sumber Metrik

File status dari episode 8 adalah tambang emas metrik. Format versi 3 menampilkan daftar client lengkap dengan byte masuk dan keluar, serta durasi koneksi:

Contoh status-version 3
OpenVPN CLIENT LIST
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
arman,203.0.113.7:51000,104857600,52428800,1723456789
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
10.8.0.5,arman,203.0.113.7:51000,1723456799

Baris arman,203.0.113.7:51000,104857600,52428800,1723456789 adalah satu client dengan metrik traffic dan waktu koneksi. Dari baris seperti ini, setiap tool monitoring bisa menghitung jumlah client aktif, throughput, dan durasi sesi.

Menjadikan Log Terstruktur

Agar mudah di-parse, aktifkan format status yang stabil dan hindari file status yang ditulis manual:

Konfigurasi status yang konsisten
status /var/log/openvpn-status.log
status-version 3
status-version-txt 3
status-timeout 60

status-timeout 60 membuat file status diperbarui setiap 60 detik. status-version 3 menjamin format stabil yang dikenal banyak tool. Dengan ini, exporter dan pipeline log bisa membaca data tanpa tebak-tebakan.

Metrik ke Prometheus

Peran openvpn exporter

Prometheus menarik metrik dari endpoint HTTP yang disediakan sebuah exporter. Untuk OpenVPN, openvpn_exporter membaca file status dan mengekspos metrik seperti openvpn_active_clients, openvpn_client_bytes_received, dan openvpn_client_bytes_sent:

Jalankan openvpn_exporter
openvpn_exporter -openvpn.status_paths /var/log/openvpn-status.log

openvpn_exporter -openvpn.status_paths /var/log/openvpn-status.log melayani metrik di port 9176 secara default. Eksporter juga bisa membaca management interface untuk data tambahan — persis yang dibuka di episode 8.

Menambahkan Target di Prometheus

Tambahkan target exporter ke konfigurasi Prometheus:

Target Prometheus
scrape_configs:
  - job_name: openvpn
    static_configs:
      - targets:
          - vpn1.example.com:9176
          - vpn2.example.com:9176

Dua target vpn1 dan vpn2 mengumpulkan metrik dari dua server sekaligus. Prometheus lalu mengevaluasi aturan alert dan menyimpan time series yang bisa dikueri di Grafana.

Dashboard Grafana

Membangun Tampilan Tunggal

Grafana mengubah metrik menjadi grafik. Dashboard yang baik untuk VPN menampilkan: jumlah client aktif dari waktu ke waktu, throughput masuk dan keluar, daftar client yang terhubung, dan riwayat koneksi. Semua data ini tersedia dari metrik exporter.

Query Prometheus yang umum untuk menampilkan client aktif:

Query client aktif
sum(openvpn_active_clients)

sum(openvpn_active_clients) menjumlahkan client aktif dari semua server. Tambahkan grafik per server dengan label, dan grafik throughput dari delta byte dengan fungsi rate.

Anotasi dan Panel

Panel Grafana bisa dibedakan per environment dengan label dari target. Anotasi bisa menandai waktu deployment atau pemeliharaan, sehingga lonjakan anomali mudah dihubungkan dengan kejadian operasional. Dashboard menjadi alat komunikasi antara tim jaringan dan tim platform.

Alerting

Deteksi Penurunan Jumlah Client

Alert yang paling mendasar: jumlah client aktif turun drastis di luar jam normal. Ini bisa menandakan server mati atau peristiwa gangguan massal:

Aturan alert penurunan client
groups:
  - name: openvpn
    rules:
      - alert: OpenVPNClientCountDrop
        expr: |
          sum(openvpn_active_clients) < 5
        for: 5m
        labels:
          severity: warning

Aturan sum(openvpn_active_clients) < 5 for 5m memicu alert jika client aktif di bawah 5 selama 5 menit. Ambang dan durasi disesuaikan dengan profil organisasi — jaringan kantor kosong di akhir pekan pasti memicu alert palsu.

Monitoring Kedaluwarsa Sertifikat

Sertifikat yang kedaluwarsa adalah alasan umum client gagal connect. Alerting berbasis node_exporter dan blackbox tidak bisa menangkap ini; gunakan prometheus ssl_exporter atau script yang mengekspor tanggal kedaluwarsa sertifikat server:

Cek kedaluwarsa sertifikat
openssl x509 -in /etc/openvpn/server/server.crt -noout -enddate

openssl x509 -in ... -noout -enddate menampilkan tanggal akhir berlaku sertifikat. Jadikan output ini metrik Prometheus, lalu buat aturan alert yang memicu 30 hari sebelum kedaluwarsa.

Alerting Berbasis Log dengan Loki

Loki memudahkan alerting dari log. Contoh nyata: memantau pola error di journald dan memicu alert ketika error berulang muncul:

Query log error di Loki
{job="systemd-journal"} |~ "TLS Error|Fatal error"

{job="systemd-journal"} |~ "TLS Error|Fatal error" menyeleksi baris log yang memuat pola error. Dengan aturan alert di Loki atau Grafana, setiap lonjakan error langsung memberi tahu tim.

Penutup

Inti yang harus dibawa pulang:

  • openvpn-status.log versi 3 adalah sumber metrik yang stabil dan terstruktur.
  • openvpn_exporter mengekspos metrik status ke Prometheus.
  • Grafana menyatukan metrik menjadi dashboard yang mudah dibaca.
  • Alert penurunan client mendeteksi gangguan lebih cepat.
  • Kedaluwarsa sertifikat harus dipantau dan diberi peringatan.
  • Loki memungkinkan alerting berbasis pola log error.

Di episode 20 selanjutnya kita akan membahas OpenVPN Access Server dan CloudConnexa — mengelola VPN lewat web UI dengan integrasi LDAP, RADIUS, dan SAML SSO, memakai CloudConnexa untuk zero-trust network access, sampai membandingkan kapan memilih self-hosted dan kapan memilih layanan terkelola. Setelah episode ini, kalian tahu opsi komersial di sekitar OpenVPN.

Belajar OpenVPN - Observability & Monitoring | Belajar OpenVPN