端口监控
确保关键服务处于监听状态——不仅仅是你的Web服务器。可监控任意主机上的任意TCP端口。
超越 HTTP:监控整个技术栈
支撑业务的大多数服务其实并不是 Web 服务器。数据库监听 5432(Postgres)、3306(MySQL)、27017(MongoDB)、6379(Redis)。邮件通过 25、465、587、993、995 端口传输。SSH 用 22。游戏服务器用发行商选择的端口。内网微服务通过防火墙,由平台团队配置任意端口。这些服务都不使用 HTTP 协议。你在网站可用性工具里看不到它们。而一旦这些服务停止监听,总会带来明显的影响。
端口监控可以弥补这个空白。你只需提供主机和端口,监控器在每次检查时会打开一个 TCP 连接以验证服务是否在监听。如果连接失败——如守护进程崩溃、防火墙变更、主机宕机、我们的网络与服务之间通信异常——你会收到告警。
可监控对象
- 数据库:5432(Postgres)、3306(MySQL/MariaDB)、1433(SQL Server)、27017(MongoDB)、6379(Redis)、9042(Cassandra)、11211(Memcached)。
- 邮件服务器:25(SMTP)、465(SMTPS)、587(submission)、110(POP3)、143(IMAP)、993(IMAPS)、995(POP3S)。
- 远程访问:22(SSH)、3389(RDP)、5900(VNC)。
- 文件传输:21(FTP)、990(FTPS)、445(SMB)、2049(NFS)。
- 自定义或内部服务:GraphQL 网关、gRPC、队列(RabbitMQ 5672、Kafka 9092)、搜索(Elasticsearch 9200、Solr 8983)、游戏服务器、IoT 设备。
检测原理
监控器会用 5 秒超时打开到 host:port 的原始 TCP 连接。如果收到 SYN/ACK,说明端口可达且服务在监听,检查通过。如果是 connection refused、超时或 no route,检查失败,并会记录内核返回的错误信息(如“connection refused”,“operation timed out”,“no route to host”),便于快速定位问题。
监控器不会尝试使用应用层协议进行通信——不会发送 SQL 查询,也不会发 SMTP HELO。这保证了检查快速且无副作用,尤其适用于每分钟要检测上百个服务的场景。如果你需要应用级验证,请将端口监控与 heartbeat 或自定义 API 监控结合使用。
结合 HTTP 与 ping 检查
对于每一个公共服务,配合使用三种监控可以构建清晰的诊断流程。Ping 确认主机在网络中在线。端口监控确认服务正在监听。HTTP/API 监控确认服务响应正常。一旦出故障,哪一层发生异常就明确地指示了排查方向。只有 HTTP 挂了,说明应用程序崩溃。端口也挂了,说明守护进程崩溃。Ping 也挂了,说明机器或网络本身不可达。
配置方法
打开工具,点击“添加监控”,选择类型“TCP 端口”,粘贴主机名(不带协议),填写端口号(1-65535),设定检查周期。保存后,从下一个周期起,监控器将每分钟打开一次 TCP 连接,记录往返时间,在端口关闭的瞬间会通过 Email、Telegram、Slack、Discord 或短信推送告警,确认阈值与静默规则与其他告警保持一致。
常见问题
-
任何 TCP 端口,范围 1 至 65535。常见场景有:SMTP(25/587/465)、POP3(110/995)、IMAP(143/993)、数据库监听端口(PostgreSQL 5432、MySQL 3306、Redis 6379、MongoDB 27017)、SSH(22)、FTP(21),以及各类自定义应用端口。
-
只检测可用性——监控器会建立 TCP 连接并判断守护进程是否接受连接,不会进行协议层 handshake。如果你需要协议感知的检查(如 SMTP banner 验证、数据库查询响应),请使用 HTTP 检查(针对 HTTP 服务)或自托管 heartbeat agent。
-
默认 10 秒。每个监控可单独配置。如果 TCP 连接在超时时间内未建立,则检查失败,提示 "connection timeout"。长距离连接(如从欧洲检测亚洲服务器)可能需要更长超时。
-
目前不支持。UDP 是无连接协议——没有“连接已接受”这种状态。基于 UDP 的服务通常需要协议特定的探测(如 53 端口的 DNS 查询、161 端口的 SNMP get)。请改用 heartbeat 监控。
-
不能——端口检查仅检测纯粹的 TCP 可用性。如果你想验证端口上的 TLS 证书,请使用带端口的 HTTPS 检查(如
https://api.example.com:8443/),可同时检查可用性和证书。
UptimeRobot · Pingdom · BetterStack · Oh Dear · Site24x7 · StatusCake · Sentry · Uptrends · Cronitor · New Relic