8222 是什么
8222 是 NATS 服务器的监控端口。NATS 在 4222 提供客户端连接,在 6222 做集群路由,在 8222 提供一组 HTTP 监控端点:/varz 看服务器总体状态、/connz 看客户端连接与订阅、/routez 看集群路由、/subsz 看订阅分布。排障时这些端点非常高效,但它们同样会暴露内部拓扑与主题命名,因此只应内网可达,且应限定访问范围。
基本信息
| 服务 | NATS monitoring(8222) |
|---|---|
| 协议 | TCP/HTTP |
| 用途 | 服务器与集群指标查看 |
| 配套端口 | 4222(客户端)、6222(集群路由) |
| 常用端点 | /varz /connz /routez /subsz |
| 安全等级 | 仅内网 |
典型使用场景
- 消息集群排障:查看连接数、消息速率与路由状态
- 订阅治理:核对主题命名与订阅分布是否符合设计
- 容量规划:按连接数与吞吐量评估是否需要扩容
- 安全核查:确认监控口未随集群暴露到外网
- 监控接入:将端点内容转为指标或做定期巡检
- 变更验证:调整集群参数后的效果对比
NATS 常用监控端点
| 端点 | 内容 | 用途 |
|---|---|---|
| /varz | 服务器总体状态 | 版本、连接数、消息收发统计 |
| /connz | 客户端连接列表 | IP、订阅主题、消息量 |
| /routez | 集群路由状态 | 节点互联与订阅同步 |
| /subsz | 订阅详情 | 主题与订阅数量分布 |
常用监控端点
常用监控端点
curl -s http://nats01:8222/varz | head -c 300 # 服务器状态
curl -s http://nats01:8222/routez | head -c 300 # 集群路由
curl -s 'http://nats01:8222/connz?limit=5' | head -c 300 # 连接明细
ss -lntp | grep -E '4222|6222|8222' # 端口核对
# 监控建议: 对连接数与慢消费者指标做告警监控端点的信息量随集群规模放大:/connz 里的客户端 IP 与订阅主题足以还原服务拓扑,因此 NATS 监控口的内网可达范围要按最小必要原则收敛。
把监控口与客户端口放在同一安全域是常见做法:评审时应明确区分用途,客户端口承载业务,监控口只在运维网开放。
NATS 有慢消费者与背压机制:订阅端消费不及时会触发丢弃或断开,排障时要同时看订阅端处理能力,而不是只看服务端指标。
集群路由异常往往先表现为部分消息丢失:核对 /routez 的节点互联状态,比逐台翻日志更快定位是哪条链路断了。