Een lokale TCP-relay kan de HTTPS-rapporten van Monit via SOCKS vervoeren zonder zelf het TLS-eindpunt te worden. De routering moet de naam van de collector voor HTTPS behouden en tegelijk de relay zijn werkelijke bestemmingsadres geven.

Stel dat de collector collector.example is op 203.0.113.40:443. In een bestaande socat-opstelling heeft de relay deze vorm:

socat TCP4-LISTEN:9900,bind=127.0.0.1,reuseaddr,fork \
  SOCKS4:socks.example:203.0.113.40:443,socksport=1080

Hier neemt 127.0.0.1:9900 Monits lokale verbinding aan. socks.example:1080 is de SOCKS4-server, die wordt gevraagd verbinding te maken met het werkelijke adres van de collector op poort 443. Vervang alle documentatieadressen door de waarden van de implementatie.

Los de naam van de collector lokaal op naar die listener, en behoud de naam in monitrc:

127.0.0.1 collector.example

set mmonit https://monit:[email protected]:9900/collector

De eerste regel is een hosts-bestanditem; de tweede is de Monit-configuratie. Gebruik de werkelijke inloggegevens van de collector met de vereiste URL-codering. Een hosts-bestandstoewijzing beïnvloedt ook andere toepassingen die die naam op de machine gebruiken.

De HTTPS-handshake blijft van de collector, dus behoud de hostnaam en het beoogde certificaatverificatiebeleid. De URL wijzigen naar localhost verandert de identiteit die Monit laat verifiëren.

De relay gebruikt bewust het werkelijke IP van de collector in plaats van de naam op te zoeken die naar loopback is omgeleid. Werk dat IP bij wanneer het adres van de collector verandert. Houd de listener beschikbaar als onderdeel van het rapportagepad; fork geeft geaccepteerde relayverbindingen een aparte afhandeling.

Gerelateerde artikelen