wgtrack - WireGuard-Verbindungen überwachen
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.