当前位置:首页 > Linux > 正文

如何在Linux系统中检查EMQ服务的实时运行状态?

在Linux系统中,可通过命令 systemctl status emqx查看EMQX服务的运行状态,使用 emqx_ctl status可获取详细节点信息,包括版本、运行时长及集群状态,日志路径 /var/log/emqx或 netstat检查端口(1883/8083)也可辅助确认服务状态。

EMQ X状态查看指南

EMQ X是一款高性能的开源MQTT消息代理服务器,广泛用于物联网通信场景,在Linux系统中检查EMQ X的运行状态,可以通过多种方式实现,以下是详细的步骤说明,涵盖命令行工具、API接口及图形化界面操作,帮助用户全面掌握服务状态。


通过systemctl查看服务状态

EMQ X通常通过systemd管理服务,通过以下命令可快速确认服务是否正常运行:

systemctl status emqx

  • 输出关键信息
    • Active: active (running):表示服务已启动。
    • 若状态为inactive或failed,需检查日志(见第五部分)。


使用emqx_ctl命令行工具

EMQ X提供了内置的emqx_ctl工具,支持深入查询节点状态与运行时数据。

查看节点基础状态

emqx_ctl status

  • 输出示例: Node 'emqx@127.0.0.1' is started # 节点已启动

获取实时运行统计

emqx_ctl cluster status # 查看集群状态(若为集群部署) emqx_ctl metrics # 显示CPU、内存等资源占用 emqx_ctl listeners # 查看MQTT/TCP、HTTP等监听端口

查看客户端连接与主题信息

emqx_ctl clients list # 列出所有连接的MQTT客户端 emqx_ctl topics # 显示当前活跃的主题及订阅数


通过REST API获取状态

EMQ X的REST API支持以编程方式获取数据,适合自动化监控。

如何在Linux系统中检查EMQ服务的实时运行状态? 第1张

查询节点状态

curl -u admin:public http://localhost:8081/api/v5/nodes

  • 参数说明
    • -u admin:public:默认用户名密码(生产环境需修改)。
    • 返回结果包含节点名称、版本、运行时间等。

获取客户端列表

curl -u admin:public http://localhost:8081/api/v5/clients


Dashboard图形化界面

EMQ X Dashboard提供直观的可视化监控,默认端口为18083,通过浏览器访问:

http://服务器IP:18083

  • 功能概览
    • 仪表盘:总览连接数、消息速率、主题数。
    • 客户端管理:查看在线/离线设备、连接详情。
    • 主题分析:监控消息流向与订阅关系。


查看日志定位问题

日志文件是排查服务异常的必备工具,默认路径为:

如何在Linux系统中检查EMQ服务的实时运行状态? 第2张

tail -f /var/log/emqx/emqx.log # 实时追踪日志

  • 常见日志过滤: grep "error" /var/log/emqx/emqx.log # 筛选错误信息 grep "WARNING" /var/log/emqx/emqx.log # 查找告警信息


常见问题

  1. 命令提示“emqx_ctl未找到”

    确认EMQ X安装路径是否加入PATH环境变量,或使用绝对路径:

  2. Dashboard无法访问

    检查防火墙是否开放18083端口,或修改Dashboard配置(emqx.conf文件)。

  3. 引用说明

    本文操作基于EMQ X 5.x版本,部分命令可能因版本差异需调整,详细参数请参考:EMQ X官方文档

0