OpenVPN täglich neu starten? Wählen Sie den Fehler, nicht die Uhr
Ein Neustart nach Kalender ist Wartung, keine Wiederherstellung. Entscheiden Sie, ob der Peer, der Prozess oder die Anwendung ausgefallen ist, und geben Sie dieser Schicht den Auslöser, den sie braucht.
Sie erben einen Cron-Job, der OpenVPN jeden Tag um 04:10 neu startet, und er hält die Dinge seit einem Jahr stabil. Er trennt aber auch einen gesunden Tunnel zu einer festen Stunde und tut nichts gegen den Ausfall, der tatsächlich mittags passiert. Ein Neustart nach Kalender ist eine Wartungsentscheidung. Wiederherstellung ist ein anderes Design mit einem bestimmten Auslöser.
Drei Fehlerbilder brauchen drei verschiedene Eigentümer. Wählen Sie zuerst den Fehler, dann folgt der Mechanismus.
Drei Fehler, drei Eigentümer
Ein Tunnel kann stehen, während sein Peer verschwunden ist: Der Prozess läuft, die Schnittstelle existiert, und nichts Nützliches läuft hindurch. Ein Prozess kann tot sein, während der Peer in Ordnung ist; dann kann ihn nur das zurückbringen, was ihn gestartet hat. Eine Anwendung hinter dem Tunnel kann defekt sein, während Tunnel und Peer gesund sind, und ein Neustart des Clients weitet dann den Ausfall aus, ohne die Ursache zu berühren. Diese drei Fälle zu trennen, ist die ganze Entscheidung.
Jeder hat sein eigenes Signal und seinen eigenen Eigentümer. Lebendigkeit gehört zum VPN-Protokoll, der Prozesslebenszyklus gehört zum Dienstmanager, und die Anwendungsgesundheit gehört zum Monitoring mit engem Auftrag.
Was eine Lebendigkeitsoption kann und was nicht
keepalive ist ein Helfer, der zu einem Paar aus Ping und Ping-Restart entfaltet wird, wie die Referenz zu den Link-Optionen beschreibt, und die Timeouts, die er erzeugt, sind auf Server und Client nicht identisch. Vom Server gesendete Werte können außerdem überschreiben, was ein Client lokal konfiguriert hat, weshalb ein Timeout, der in einer lokalen Datei richtig aussieht, nicht der wirksame sein muss.
Das macht ihn zum richtigen Werkzeug für einen verlorenen Peer und zum falschen Werkzeug für einen toten Prozess, denn ein beendeter Prozess kann seine eigenen Timer nicht ausführen. Er sagt auch nichts darüber, ob eine Anwendung hinter dem Tunnel antwortet, weil der Austausch zwischen den beiden VPN-Endpunkten stattfindet. Ein Timeout-Paar aus einer anderen Bereitstellung zu kopieren, ohne Rolle, erwartete Unterbrechungen und Reauthentifizierungsverhalten zu prüfen, ist der Weg, auf dem ein stabiler Tunnel zu flattern beginnt.
Was dem Dienstmanager gehört
Wenn der Daemon beendet wird, entscheidet der Manager, der ihn gestartet hat, was als Nächstes passiert. Eine auf Fehler ausgerichtete Neustartrichtlinie mit Verzögerung und Startratenbegrenzung behandelt eine Crash-Schleife, ohne sie in eine Fork-Bombe zu verwandeln. Diese Einstellungen reagieren auf Prozessergebnisse und Timeouts und erkennen keinen Prozess, der lebt, aber nutzlos ist. Das ist keine Lücke, die man mit einer breiteren Richtlinie flicken müsste; es ist die Grenze zwischen Lebenszyklus und Lebendigkeit.
Eigentum zählt genauso viel wie die Einstellungen. Eine Verbindung, die von einem Desktop-Netzwerkmanager gestartet wurde, sollte dessen Wiederherstellungsregelung behalten, und eine konkurrierende Dienstunit für dieselbe Schnittstelle gibt einem Tunnel zwei Eigentümer. Wählen Sie einen und schreiben Sie auf, welcher es ist.
Wann ein geplanter Neustart berechtigt ist
Ein zeitgesteuerter Neustart kann eine vernünftige Wartungsmaßnahme sein: Er hat einen Eigentümer, ein Fenster, eine benannte Instanz und einen unabhängigen Zugang. Was er nicht sein kann, ist eine allgemeine Zuverlässigkeitsrichtlinie, die außerdem alle zu einer festen Stunde trennt.
Wenn der Neustart existiert, um ein bekanntes Leck oder einen festgefahrenen Zustand zu umgehen, schreiben Sie das in die Beschreibung der Unit, sonst behält die nächste Person ihn für immer.
Testen Sie die Fälle, die zählen: Der Peer verschwindet, während der Prozess läuft, der Prozess endet, ein Wiederholungsversuch braucht frische Anmeldedaten, und der Tunnel kehrt zurück, während die Anwendung defekt bleibt. Beobachten Sie, welche Komponente reagiert und welchen Zustand sie hinterlässt.
Die richtige Frage ist nicht, wie oft neu gestartet werden soll, sondern was den Fehler zuerst bemerken sollte.