wgtrack - WireGuard-Verbindungen überwachen

  Development

April 2020

Motivation

Einige meiner WireGuard-Server laufen hinter DSL-Anschlüssen, deren öffentliche IP-Adressen sich ändern können. Somit wird eine Lösung benötigt, die nach Verbindungsabbrüchen die DNS-Namen der WireGuard-Peers erneut auflöst. Außerdem sollen WireGuard-Daten in meinem Telegraf/InfluxDB/Grafana-Monitoring verfügbar sein.

Beschreibung

"wgtrack" überwacht Wireguard-Verbindungen, exportiert Daten fürs Monitoring und aktualisiert nach Bedarf die Endpunkte. Dies alles feingranular konfigurierbar und mit "exponential backoff"-Mechanismen bei anderenden Verbindungsproblemen.

Implementierung

"wgtrack" nutzt Pythons asyncio-Bibliothek. Das Tool besteht aus mehreren kleinen "Bausteinen": Lesen der Konfigurationsdatei, Lesen der WireGuard-Konfigurationsdateien, Logik für die periodisch auszuführenden Vorgänge, Ändern der WireGuard-Endpunkte und Schreiben der Ausgabe fürs Monitoring.

Referenzen