- Home
- Monitoring
- Port monitoring
TCP port monitoring for databases, mail servers and SSH
Open a TCP connection to any public host and port. If the handshake completes, the service is listening; if it is refused or times out from the confirming regions, you hear about it.
- 30 monitors free
- No credit card
- Failures confirmed from other regions
- Amsterdam19msopen
- London28msopen
- Connect time19 ms
- Port5432
- Timeout10 s
Illustrative example
Check it now, in your browser
No account. Port monitoring: type a target and see roughly what it looks at. Nothing you type is stored.
A browser cannot open raw TCP, UDP or ICMP connections, and the public check API only speaks HTTP(S). So instead of a fake result, here is the command a monitor automates: it runs it on a schedule from several regions and confirms failures.
What a port monitor looks at
TCP connect
A completed handshake counts as up. Connection refused and timeouts are reported separately in the failure cause.
Connect time
The time to complete the handshake is stored per check, a quick signal for a saturated database host.
Configurable timeout
Set a timeout between 1 and 120 seconds; the default is 30.
Public targets only
Private ranges are refused. For UDP services use the separate UDP monitor, and for certificates use SSL monitoring.
Port monitoring: what an alert looks like
The same event arrives as an e-mail, a Telegram message or a Slack card. This is the wording the channels send; the host, times and numbers are made up.
db.clienta.com:5432
db.clienta.com:5432 · Connection refused on db.clienta.com:5432 · confirmed from Amsterdam (AMS), London (LON)
| Error | Connection refused on db.clienta.com:5432 |
|---|---|
| Confirmed by | Amsterdam (AMS), London (LON) |
| Since | 14:02:11 UTC |
| Target | db.clienta.com:5432 |
| Next step | Check the server / hosting panel. Acknowledge so the team knows you are on it. |
AcknowledgeOpen incident
Tenium · checked from Amsterdam · 14:02 UTC
Tenium alerts
🔴 DOWN · db.clienta.com:5432 · Connection refused on db.clienta.com:5432 · confirmed from Amsterdam (AMS), London (LON)
reply /ack or acknowledge · open incident
TTenium APP 2:02 PM
DOWN · db.clienta.com:5432
db.clienta.com:5432 · Connection refused on db.clienta.com:5432 · confirmed from Amsterdam (AMS), London (LON)
- Error: Connection refused on db.clienta.com:5432
- Confirmed by: Amsterdam (AMS), London (LON)
- Target: db.clienta.com:5432
AcknowledgeOpen incident
Check the server / hosting panel. Acknowledge so the team knows you are on it. · checked from Amsterdam
Port monitoring: e-mail, Discord and Google Chat work on every plan; Slack, Telegram, Teams and Mattermost start on Starter. There are no SMS or voice-call alerts.
Response time with a threshold
Every check stores how long the response took. Port monitoring: drag the threshold and see when a slow-response alert would have fired.
How fast you find out
Pick a plan to see its check interval and how long a failure takes to reach you, including the confirmation round.
Port monitoring: a failure lands at a random moment between two checks, so on average you wait half an interval, and the worst case is a whole interval plus the confirmation window. A single failing region is not enough: all two regions must agree before an incident opens. The other regions are asked straight away, and we allow up to 60 seconds for the answers.
How to set up port monitoring in 30 seconds
Enter the target
Add the host and set the port number, and Tenium fills in a sensible timeout and default confirmation settings.
Pick an interval
Fastest check interval: 30 s on Pro and Agency, 1 min on Starter, 5 min on Free. Slower intervals are available on every plan.
Choose alert contacts
Choose who is told. Email, Discord and Google Chat work on every plan, Slack, Telegram, Teams and Mattermost start on Starter, webhooks on Pro.
Save
The first check runs within seconds. If a check ever fails, other regions re-check it before an incident opens, so one bad route does not page you.
What each error means
This is the text an incident shows in its Error line, the usual cause, and the first thing to look at.
ECONNREFUSEDConnection refused on db.clienta.com:5432
The host is up but nothing is listening on the port: the service crashed or was never started. The fastest failure to diagnose.
Shown as: Connection refused on db.clienta.com:5432
TIMEOUTTimeout after 10 s connecting to db.clienta.com:5432
The SYN got no answer. A firewall dropping packets, an overloaded host, or a security group that lost our checker’s address.
Shown as: Timeout after 10 s connecting to db.clienta.com:5432
EHOSTUNREACHHost unreachable
There is no route to the host: a network outage or a routing change between a region and your provider.
Shown as: Host unreachable
ECONNRESETConnection reset by peer
The host accepted the connection and killed it at once, often a connection limit or a rate-limiting rule.
Shown as: Connection reset by peer
ENOTFOUNDDNS lookup failed for db.clienta.com
The name does not resolve. Check the record before blaming the service.
Shown as: DNS lookup failed for db.clienta.com
Port monitoring by plan
| Free $0/mo | Starter $7/mo | Pro $29/mo | Agency $59/mo | |
|---|---|---|---|---|
| Available | ✓ | ✓ | ✓ | ✓ |
| Monitors | 30 | 100 | 300 | 1000 |
| Fastest interval | 5 min | 1 min | 30 s | 30 s |
| Regions | 1 | 2 | 2 | 2 |
| Custom headers | — | — | ✓ | ✓ |
| Response-time alerts | — | — | ✓ | ✓ |
| Escalation to a second contact | — | — | ✓ | ✓ |
| Status pages | 1 | 3 | 10 | Unlimited |
Other monitor types
What a completed handshake proves
A port monitor connects to host:port over TCP and succeeds the moment the three-way handshake finishes. The time that took is stored as the response time, and the socket is closed at once without sending data. That is proof that something accepted the connection, no more. It does not prove that the service behind the port is healthy, that authentication works, or that a query would return rows. A database that accepts connections but is stuck on every query still passes this check.
Be aware that load balancers, reverse proxies and some CDNs accept connections on behalf of a backend that may be dead. If the port you probe terminates at a proxy, the monitor tells you about the proxy. Probe a port on the real machine when you need to know about the real machine.
Refused, timed out, or not found
The failure message is a triage tool in itself:
- "Connection refused": the host is alive and reachable, but nothing listens on that port. The service crashed or stopped.
- "Timeout after 10 s connecting to host:port": packets vanish. A firewall drops them, the host is down, or the route is broken. This is also what you see when a security group changes and forgets to allow the checkers.
- "DNS lookup failed": the name does not resolve from the checker, so look at your records before the server.
- "Connection reset" or unreachable messages: a device in the path is actively rejecting or has no route.
Ports people actually monitor
Mail: 25, 465 and 587 for SMTP, 993 for IMAP, 995 for POP. A mail server that stops listening produces silence rather than errors for users, so this is often the only warning. Remote access: 22 for SSH, 3389 for RDP. Databases and caches: 3306 for MySQL, 5432 for PostgreSQL, 6379 for Redis, 27017 for MongoDB, but see the next section before exposing them. Games with a TCP listener, such as Minecraft Java on 25565, are a natural fit as well. For anything that talks UDP, use the UDP monitor instead.
Never open a database to the world for a monitor
The monitor must reach the port from the public internet, which tempts people to expose a database or cache to everyone. Do not. Restrict the rule to the addresses on the checker IP list, which are published for exactly this purpose; a firewall rule that allows only those addresses keeps the port closed to everyone else. If that is still too much, monitor the application's own health URL, which exercises the database from inside, and use the port check only for services that are public by design, such as mail and SSH.
The IP list can change as regions are added, so subscribe to its updates or review the rule when you see unexplained timeouts. A good habit is to name the firewall rule after the monitor, so whoever tidies the rules next year knows that removing it will silence a check and not just clean up a list. For SSH specifically, a restricted source rule plus key-only login keeps the exposure small.
Timeouts, intervals and TLS ports
The default timeout is 30 seconds, but a TCP handshake that takes more than 5 to 10 is already a symptom, so most port monitors benefit from a shorter value. Intervals follow your plan: 5 min on Free, 1 min on Starter, 30 s on Pro and Agency. Port monitoring is on every plan.
On a port that wraps traffic in TLS, 465 or 993 for example, the plain check only shows that the listener exists. Add an SSL monitor with the same port to verify the certificate. There is no send-and-expect feature on the TCP monitor, so you cannot test a banner or a protocol conversation; use an HTTP or keyword monitor where the service has a web interface.
Port monitoring questions
Can I check that an SMTP server answers with a banner?
No, the monitor only completes the TCP handshake and closes the connection. It will notice a stopped mail server but not one that accepts connections and then misbehaves.
How is a port monitor different from ping?
Ping asks the operating system whether the host answers, while a port check asks whether a specific service is listening. A host can pass one and fail the other, which is why pairing them quickly narrows down a failure.
What happens if the port is firewalled for everyone except me?
The checkers will time out. Allow the published checker addresses, or monitor something that is already public instead of opening a private service.
Is there a limit on port monitors?
They count toward your plan's total monitors: 30 on Free, 100 on Starter, 300 on Pro and 1000 on Agency.
Start port monitoring free
30 monitors on the Free plan, no card needed, with failures confirmed from other regions (2 regions live today). Upgrade when the client list grows.