如何为Grafana MQTT插件配置证书以连接HiveMQ云代理
问题背景与现象
- 环境:Ubuntu 20.04.5,Grafana 9.3.6(通过apt-get安装),已安装Grafana MQTT数据源插件(执行命令:
grafana-cli plugins install grafana-mqtt-datasource) - 前置验证:通过mosquitto命令行工具(使用HiveMQ提供的.pem证书)、mosquittopp C++接口(使用
/etc/ssl/certs/路径,直接指定.pem文件方式无效)均成功连接HiveMQ云代理 - 当前故障:在Grafana Web界面添加MQTT数据源时,弹出错误:
error connecting to MQTT broker: network Error : EOF;通过Wireshark抓包确认存在网络交互,推测问题出在证书配置环节,修改grafana.ini无效果且已确认该文件与此问题无关
排查与解决步骤
1. 匹配mosquittopp的证书配置逻辑
Grafana MQTT插件的SSL证书加载逻辑和mosquittopp一致,而非mosquitto命令行的单独指定.pem文件方式:
- 在数据源配置页面的SSL/TLS区域:
- 勾选
Enable TLS选项 CA Cert字段填写Ubuntu系统默认的合并根证书路径:/etc/ssl/certs/ca-certificates.crt,或者直接留空(插件会自动读取系统信任根证书)- 确保
Skip Verify未勾选(测试环境可临时启用排查)
- 勾选
2. 确认Grafana进程的证书读取权限
Grafana默认以grafana用户运行,需确保该用户能读取系统证书目录及文件:
# 检查证书文件权限 ls -l /etc/ssl/certs/ca-certificates.crt # 若其他用户无读取权限,添加权限 sudo chmod o+r /etc/ssl/certs/ca-certificates.crt
3. 同步连接参数
确保Grafana数据源的连接参数和之前成功的mosquittopp配置完全一致:
- Broker地址需带
ssl://前缀,端口使用HiveMQ云代理的默认SSL端口8883 - 填写正确的认证用户名/密码(如果HiveMQ启用了身份认证)
- 指定唯一的Client ID,避免与已在线的客户端冲突
4. 查看日志定位细节
通过Grafana日志获取插件的详细错误信息,辅助排查:
# 实时查看Grafana服务日志 journalctl -u grafana-server -f
如果日志提示证书验证失败,可将HiveMQ提供的.pem证书导入系统信任根证书库:
# 复制证书到系统证书目录 sudo cp /path/to/your/hivemq-cert.pem /usr/local/share/ca-certificates/hivemq.crt # 更新系统证书缓存 sudo update-ca-certificates
内容的提问来源于stack exchange,提问作者amfast
相关产品推荐
相关产品推荐

