You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不使用WireShark的情况下查看VerneMQ集群中客户端连接的节点?

查询VerneMQ集群客户端连接节点的方法(无需WireShark)

当然有!VerneMQ本身提供了好几套原生工具和接口,完全不用抓包就能精准定位客户端连接的节点,下面是最常用的几种实用方式:

1. 使用VerneMQ自带的命令行工具 vmq-admin

这是运维人员最常用的直接方式,vmq-admin是VerneMQ官方内置的管理CLI,每个集群节点默认都自带。

  • 要查询指定客户端的连接节点,直接在任意集群节点上运行:
    vmq-admin session show --client-id "你的客户端ID"
    
    如果需要按用户名批量过滤,也可以用:
    vmq-admin session show --username "目标用户名"
    
  • 执行后输出的表格里,node列会清晰显示该客户端当前连接的集群节点名称(比如vernemq@node1.example.com)。

小贴士:如果需要用脚本处理结果,可以加上--format json参数,输出结构化的JSON数据,方便后续解析。

2. 通过VerneMQ的HTTP API查询

如果需要自动化或通过程序查询,VerneMQ的REST API是更灵活的选择:

  • 先确保集群已开启HTTP API(在vernemq.conf里配置api.listeners.http.default = 0.0.0.0:8888即可开启)。
  • 发送GET请求到API端点,带上客户端ID过滤参数:
    GET /api/v1/sessions?client_id=你的客户端ID
    
  • 返回的JSON响应中,每个会话对象的node字段就是客户端连接的节点信息。

注意:为了安全,建议不要开启匿名API访问,而是在配置里设置api.auth.username和api.auth.password,请求时带上身份验证信息。

3. 自定义钩子(针对开发/实时监控场景)

如果你的业务系统需要实时感知客户端的连接节点,可以利用VerneMQ的钩子机制:

  • 在客户端连接成功时,触发on_client_connect或on_client_connected钩子,钩子函数可以直接获取到当前客户端连接的节点信息,再同步到你的业务监控平台或数据库中。
  • 这种方式适合需要长期跟踪客户端连接状态、集成自有运维系统的场景。

内容的提问来源于stack exchange,提问作者ytw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:48:58