关于IBM Cloud Pak for Integration 3.0.0中MQ实例不支持遥测及MQTT的咨询
解决IBM Cloud Pak for Integration 3.0.0 MQ实例不支持MQTT(Telemetry)的问题
嗨,这个情况我之前处理过——你看到的“telemetry not supported”提示,本质是MQ实例默认没有启用MQTT对应的Telemetry组件,只要补做下面的配置就能搞定,不管你是已经部署好的实例还是以后新建都适用:
一、给已部署的MQ实例开启Telemetry
1. 编辑MQ实例的自定义资源(CR)
你可以通过OpenShift控制台或者oc命令行来修改:
- 命令行方式:执行这条命令找到并编辑你的MQ实例CR:
oc edit mqinstance <你的MQ实例名称> - 控制台方式:进入OpenShift控制台的「Operators → Installed Operators」,找到「IBM MQ」operator,切换到「MQInstances」标签页,找到你的实例后点击「Edit MQInstance」。
2. 添加Telemetry配置段
在CR的spec部分,新增telemetry相关配置,示例如下:
spec: # 保留你原来的其他配置(比如队列管理器名称、存储等) telemetry: enabled: true endpoint: type: route # 如果你只需要集群内部访问,可以选cluster-ip listeners: mqtt: port: 1883 # 标准未加密MQTT端口 mqtts: port: 8883 # TLS加密的MQTT端口 # 可选:如果需要客户端认证,添加这段配置 telemetryAuthentication: clientAuthentication: require users: - name: mqtt_client_user password: <设置你的客户端密码> groups: - mqtt_clients
提示:如果要启用加密的MQTT(mqtts),你需要配置对应的证书,可以用OpenShift自带的证书管理功能,或者上传自定义CA证书。
3. 保存并等待实例更新
修改完CR后保存,IBM MQ Operator会自动触发实例更新,部署Telemetry相关的服务组件。等实例状态变回Ready就可以了。
二、验证MQTT服务是否正常工作
- 回到实例详情页,之前的“telemetry not supported”提示会消失,取而代之的是MQTT的访问地址(如果选了
route类型,会生成对应的OpenShift路由)。 - 用MQTT客户端工具测试连接,比如用
mosquitto命令行工具:# 测试未加密MQTT mosquitto_sub -h <MQTT路由域名> -p 1883 -t "test/topic" -u "mqtt_client_user" -P "<你的密码>" # 测试加密MQTT(需要CA证书) mosquitto_sub -h <MQTT路由域名> -p 8883 -t "test/topic" --cafile <CA证书路径> -u "mqtt_client_user" -P "<你的密码>"
三、新建实例时提前开启Telemetry的小技巧
如果以后再新建MQ实例,在部署流程的「Advanced configuration」步骤里,找到「Telemetry」选项,直接勾选启用,同时配置好端口、认证方式等参数,这样就不会再出现不支持的提示了。
另外补充下:CP4I 3.0.0对应的是IBM MQ 9.2.x版本,这个版本完全支持Telemetry组件,只要配置正确就能正常使用MQTT协议啦。
内容的提问来源于stack exchange,提问作者Daniele Foti
相关产品推荐
相关产品推荐

