HTTPS-Collector-Verkehr von Monit über einen lokalen SOCKS-Relay leiten
Behalten Sie den Hostnamen des Collectors in Monits URL bei, während ein Loopback-Listener die TCP-Verbindung über SOCKS4 führt.
Ein lokaler TCP-Relay kann Monits HTTPS-Berichte über SOCKS befördern, ohne selbst der TLS-Endpunkt zu werden. Das Routing muss den Namen des Collectors für HTTPS erhalten und dem Relay zugleich seine tatsächliche Zieladresse geben.
Angenommen, der Collector ist collector.example unter 203.0.113.40:443. In einer bestehenden socat-basierten Anordnung hat der Relay diese Form:
socat TCP4-LISTEN:9900,bind=127.0.0.1,reuseaddr,fork \
SOCKS4:socks.example:203.0.113.40:443,socksport=1080Hier nimmt 127.0.0.1:9900 Monits lokale Verbindung an. socks.example:1080 ist der SOCKS4-Server, der die tatsächliche Collector-Adresse auf Port 443 verbinden soll. Ersetzen Sie alle Dokumentationsadressen durch die Werte der Bereitstellung.
Lösen Sie den Collector-Namen lokal auf diesen Listener auf und behalten Sie den Namen in monitrc:
127.0.0.1 collector.example
set mmonit https://monit:[email protected]:9900/collectorDie erste Zeile ist ein hosts-Dateieintrag; die zweite ist die Monit-Konfiguration. Verwenden Sie die echten Collector-Anmeldedaten mit der erforderlichen URL-Kodierung. Eine hosts-Datei-Zuordnung wirkt sich auch auf andere Anwendungen aus, die diesen Namen auf dem Rechner verwenden.
Der HTTPS-Handshake gehört weiterhin dem Collector, also behalten Sie dessen Hostnamen und die vorgesehene Zertifikatsprüfung bei. Ändern Sie die URL auf localhost, ändert sich die Identität, die Monit prüfen lässt.
Der Relay nutzt bewusst die echte IP des Collectors, statt den auf Loopback umgebogenen Namen aufzulösen. Aktualisieren Sie diese IP, wenn sich die Collector-Adresse ändert. Halten Sie den Listener als Teil des Berichtswegs verfügbar; fork gibt angenommenen Relay-Verbindungen eine eigene Behandlung.