在Linux系统中,消息队列(MQ)作为分布式架构的核心组件,承担着异步通信、系统解耦、流量削峰等关键任务,无论是IBM MQ、RabbitMQ、RocketMQ还是Kafka等主流MQ产品,准确查看其版本信息都是运维和开发中的基础操作,本文将详细介绍不同MQ产品在Linux环境下查看版本的具体方法,包括命令行工具、配置文件查询及API接口调用等场景,并附常见问题解答。
IBM MQ版本查看方法
IBM MQ(原WebSphere MQ)是企业级消息队列产品,其版本信息可通过官方命令行工具或配置文件获取。
使用dspmqver
命令(推荐)
dspmqver
是IBM MQ提供的专用版本查询命令,需确保MQ已正确安装且环境变量(如PATH
)包含/opt/mqm/bin
路径,执行以下命令:
dspmqver
示例输出:
Name: IBM MQ Queue Manager
Version: 9.2.0.0
Level: 0920.230521.0000
Build date: 20230521
Build type: FC
Commit: 1234567
输出中Version
字段为核心版本号(如9.2.0.0),Level
为补丁级别,若提示command not found
,需检查安装路径或手动添加:
export PATH=/opt/mqm/bin:$PATH
通过MQ管理界面查看
若启动了IBM MQ Console(默认端口9443),访问https://<server>:9443/ibmmq/console
,登录后进入“队列管理器”概览页,版本信息会显示在页面顶部。
查看安装包信息
通过系统包管理工具(如rpm
或dpkg
)查询已安装的IBM MQ RPM/DEB包:
# CentOS/RHEL rpm -qa | grep mqseries # Ubuntu/Debian dpkg -l | grep ibm-mq
输出示例:mqseries-client-9.2.0.0-1.x86_64
,可间接确认版本。
RabbitMQ版本查看方法
RabbitMQ是广泛使用的开源MQ,支持命令行、配置文件及HTTP API三种查询方式。
使用rabbitmqctl
命令
rabbitmqctl
是RabbitMQ的管理工具,需以rabbitmq
用户或root用户执行(建议切换至rabbitmq
用户):
sudo -u rabbitmq rabbitmqctl status
示例输出(截取版本部分):
{rabbitmq,"3.11.0"}, {kernel,"6.5.2"}, {erts,"13.2.1"}, ...
其中rabbitmq
字段后的11.0
即为版本号,若仅需版本号,可结合grep
过滤:
rabbitmqctl status | grep "rabbitmq," | awk -F'"' '{print $2}'
通过HTTP API查询
RabbitMQ Management插件(默认启用)提供HTTP接口,访问http://<server>:15672/api/versions
(需先启用插件rabbitmq-plugins enable rabbitmq_management
):
curl -u guest:guest http://localhost:15672/api/versions
示例输出(JSON格式):
{"rabbitmq":"3.11.0","erlang":"25.2.3"}
rabbitmq
字段即为版本号。
查看配置文件
RabbitMQ版本信息可能存储在配置文件中,路径为/etc/rabbitmq/rabbitmq.conf
或/etc/rabbitmq/rabbitmq-env.conf
,搜索version
关键字:
grep -i version /etc/rabbitmq/rabbitmq.conf
RocketMQ版本查看方法
RocketMQ是阿里巴巴开源的分布式MQ,版本查询可通过命令行工具或日志文件实现。
使用mqadmin
命令
mqadmin
是RocketMQ的管理工具,需先设置ROCKETMQ_HOME
环境变量并确保bin
目录在PATH
中,查询Broker版本:
mqadmin brokerStatus -n localhost:9876
示例输出:
brokerVersion: 4.9.3 brokerBootTimestamp: 1690000000000 ...
brokerVersion
即为版本号,若查询NameServer版本,可执行:
mqadmin clusterStatus -n localhost:9876
查看启动日志
RocketMQ Broker启动时会输出版本信息,日志路径默认为$ROCKETMQ_HOME/logs/broker.log
:
tail -f $ROCKETMQ_HOME/logs/broker.log | grep "RocketMQ Version"
示例输出:
2023-07-20 10:00:00 INFO main - RocketMQ Version:4.9.3, Commit ID:12345678
通过包管理工具查询
若通过RPM/DEB包安装,可使用以下命令:
# CentOS/RHEL rpm -qa | grep rocketmq # Ubuntu/Debian dpkg -l | grep rocketmq
Kafka版本查看方法
Kafka是分布式流处理平台,版本查询可通过命令行工具或Broker API实现。
使用kafka-topics.sh
命令
kafka-topics.sh
是Kafka的脚本工具,需设置KAFKA_HOME
并确保bin
目录在PATH
中,通过--version
参数直接查询:
kafka-topics.sh --version
示例输出:
8.1
通过Broker API查询
Kafka Broker启动时会监听版本信息,使用kafka-broker-api-versions.sh
工具:
kafka-broker-api-versions.sh --bootstrap-server localhost:9092
示例输出(截取版本部分):
{ "errorCode": 0, "error message": null, "apiVersions": [ {"apiKey": 18, "minVersion": 0, "maxVersion": 9, "supportedVersions": "0-9"}, ... ], "throttleTimeMs": 0 }
若需直接获取版本号,可结合grep
和awk
解析输出,或访问http://<broker>:8080/versions
(需启用JMX HTTP接口)。
查看安装目录
Kafka版本信息可能记录在安装目录的VERSION
文件中:
cat $KAFKA_HOME/VERSION
示例输出:
8.1
其他MQ版本查看方法
ActiveMQ
ActiveMQ可通过activemq
命令或管理界面查询:
activemq --version
或访问http://<server>:8161/admin/
,登录后查看首页底部版本信息。
ZeroMQ
ZeroMQ是轻量级消息库,版本信息可通过libzmq
库查询:
pkg-config --modversion libzmq
或直接查看头文件:
grep "#define ZMQ_VERSION" /usr/include/zmq.h
MQ版本查询方法对比表
MQ类型 | 常用命令/工具 | 关键参数/路径 | 输出示例 | 注意事项 |
---|---|---|---|---|
IBM MQ | dspmqver |
无 | Version: 9.2.0.0 | 需确保/opt/mqm/bin 在PATH |
RabbitMQ | rabbitmqctl status |
无 | “rabbitmq”,”3.11.0″ | 需以rabbitmq 用户执行 |
RocketMQ | mqadmin brokerStatus |
-n localhost:9876 |
brokerVersion: 4.9.3 | 需设置ROCKETMQ_HOME |
Kafka | kafka-topics.sh --version |
无 | 8.1 | 需设置KAFKA_HOME |
ActiveMQ | activemq --version |
无 | ActiveMQ 5.18.3 | 需启动服务 |
相关问答FAQs
Q1:为什么执行MQ查看版本命令时提示“command not found”?
A:通常因工具未安装或环境变量未配置导致,解决方法:
- 确认MQ已正确安装(如IBM MQ需检查
/opt/mqm
目录是否存在); - 添加工具路径至
PATH
环境变量,例如IBM MQ执行export PATH=/opt/mqm/bin:$PATH
; - 部分MQ(如RabbitMQ)需切换至指定用户(如
sudo -u rabbitmq rabbitmqctl status
)。
Q2:如何通过MQ的配置文件查看版本信息?
A:不同MQ的配置文件位置和关键字不同,以下是常见示例:
- RabbitMQ:检查
/etc/rabbitmq/rabbitmq.conf
,搜索version
; - RocketMQ:查看
$ROCKETMQ_HOME/conf/broker.conf
,部分版本可能记录brokerVersion
; - Kafka:
$KAFKA_HOME/config/server.properties
中无直接版本信息,但可通过$KAFKA_HOME/VERSION
文件查询; - IBM MQ:配置文件
/opt/mqm/qmgrs/<qmgr_name>/qm.ini
中可能包含Version
字段。
若配置文件未记录版本,建议优先使用命令行工具或日志文件查询。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/28682.html