TCP port
TCP-poortmonitoring
Elke host, elke poort, en wat het zegt als het antwoordt.
Probeer het nu
Eén check, vanaf één plek, direct, en niets wordt opgeslagen. Een monitor checkt vanaf elke locatie waar we draaien en bevestigt een fout vanaf twee andere continenten voordat iemand wordt gewekt, wat één blik je niet kan laten zien.
Waar het voor is
De check voor een service die geen website is. Een database, een game server, een VPN-endpoint, SSH: dingen die luisteren op een poort en geen HTTP hebben om te vragen en geen pagina om te lezen.
We openen de poort, en de check kan ook eisen dat de service de verwachte begroeting geeft. Een poort die een verbinding accepteert en vervolgens niets zegt, ziet er van buiten uit als een half-dode service, en een simpele open-poortcheck noemt dat gezond.
Zoals elke check hier draait het vanaf Amsterdam, New York, Sydney and Singapore, en een fout wordt bevestigd vanaf twee andere continenten voordat iemand wordt gewekt. Hoe dat werkt.
Wat je kunt instellen
Alles hieronder staat op het formulier wanneer je er een toevoegt, bij elk abonnement.
- Host en poort
- Een hostname of adres en een poort, omdat er geen zinvolle standaardpoort is om te raden.
- Verwachte begroeting
- Een reguliere expressie waar het eerste wat de service zegt aan moet voldoen.
Vragen
Welke poorten zijn de moeite waard om te monitoren met een TCP-check?
Poort 22 voor SSH, 3306 voor MySQL, 5432 voor PostgreSQL, 6379 voor Redis, en elke andere poort waarop je service luistert. Er is geen standaardpoort om op terug te vallen, want een geraden poort is een monitor die iets controleert waar je niet om hebt gevraagd, dus de poort is onderdeel van wat je invoert.
Wat doet de verwachte begroeting?
Het leest de eerste bytes die de service verstuurt en vergelijkt die met een reguliere expressie die je opgeeft, wat een banner grab is. Zonder dit is het gewoon een open poortcontrole, en een open poortcontrole noemt een half-open service gezond: de poort accepteert je verbinding en vervolgens zegt het ding erachter helemaal niets.
Verbinding geweigerd, of een timeout?
Refused betekent dat de host antwoordde en aangaf dat er niets luistert, wat meestal een gestopte service is en niet een machine die offline is. Een timeout betekent dat er helemaal niets terugkwam, wat kan wijzen op een firewall die pakketten dropt, een onbereikbare host, of een netwerkprobleem ertussen. Ze worden apart gerapporteerd om die reden.
Kun je een UDP-poort checken?
Nee, en dat zeggen we liever dan iets aanbieden dat erop lijkt. Een open UDP-poort en een gefilterde UDP-poort zijn van buitenaf niet te onderscheiden tenzij de service ervoor kiest om te antwoorden, dus een UDP-poortcontrole is een gok met een statuslabel. Controleer de service op een andere manier.
Waarom niet netcat gebruiken om de poort vanuit een script te testen?
Voor een poort op een host waar je al een machine naast hebt, is dat een prima controle en kost het één regel. Het probleem is hetzelfde als overal hier: het script draait ergens, en dat ergens kan falen zonder je iets te vertellen. Een verbinding die faalt vanaf één locatie maakt ook geen onderscheid tussen een service die gestopt is en een route die verbroken is, wat twee andere continenten oplossen voordat iemand wordt gebeld.