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

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

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

EMQ X状态查看指南

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


通过systemctl查看服务状态

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

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

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

使用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支持以编程方式获取数据,适合自动化监控。

查询节点状态

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

查看日志定位问题

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

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环境变量,或使用绝对路径:

    /usr/lib/emqx/bin/emqx_ctl status
  2. Dashboard无法访问
    检查防火墙是否开放18083端口,或修改Dashboard配置(emqx.conf文件)。


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

0