You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ReportPortal analyzer服务无法连接RabbitMQ问题求助

ReportPortal自动分析功能失效(analyzer服务无法启动)

问题现象

通过K8s部署ReportPortal(Helm Chart版本25.5.30),整体运行正常,但自动分析功能失效,核心原因是analyzer服务无法启动。

相关日志

API Pod日志

2025-06-03 15:32:47.705 2025-06-03 13:32:47,609 - [un8qThWMTjKjDSy8SF4-4Q] - INFO - analyzerApp.amqp - Trying to connect to amqp://reportportal-rabbitmq.reportportal.svc.cluster.local:5672/analyzer?heartbeat=30
2025-06-03 15:32:47.706 2025-06-03 13:32:47,609 - [xy61hSzYS9-D13MzhYNnNA] - INFO - analyzerApp.amqp - AMQP connection established.
2025-06-03 15:32:47.706 2025-06-03 13:32:47,604 - [ofVyUEV-QzapYgMIoePE7w] - ERROR - analyzerApp.amqp - Connection/channel lost. Reconnecting. Exchange: 'analyzer-default'. Queue: 'index_suggest_info'.
2025-06-03 15:32:47.706 Traceback (most recent call last):
2025-06-03 15:32:47.706   File "/backend/app/amqp/amqp.py", line 187, in receive
2025-06-03 15:32:47.706     self._bind_queue(channel, queue, self._config.amqpExchangeName)
2025-06-03 15:32:47.706   File "/backend/app/amqp/amqp.py", line 147, in _bind_queue
2025-06-03 15:32:47.706     channel.queue_bind(exchange=exchange_name, queue=name, routing_key=name)
2025-06-03 15:32:47.706   File "/venv/lib64/python3.11/site-packages/pika/adapters/blocking_connection.py", line 2570, in queue_bind
2025-06-03 15:32:47.706     self._flush_output(bind_ok_result.is_ready)
2025-06-03 15:32:47.706   File "/venv/lib64/python3.11/site-packages/pika/adapters/blocking_connection.py", line 1339, in _flush_output
2025-06-03 15:32:47.706     raise self._closing_reason  # pylint: disable=E0702
2025-06-03 15:32:47.706     ^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-06-03 15:32:47.706 pika.exceptions.ChannelClosedByBroker: (404, "NOT_FOUND - no exchange 'analyzer-default' in vhost 'analyzer'")

RabbitMQ Pod日志

2025-06-03 16:00:36.600 2025-06-03 14:00:36.117476+00:00 [error] <0.8690128.0> Channel error on connection <0.8690983.0> (10.19.172.218:43084 -> 10.19.227.194:5672, vhost: 'analyzer', user: 'rabbitmq'), channel 1:
2025-06-03 16:00:36.600 2025-06-03 14:00:36.117476+00:00 [error] <0.8690128.0> operation queue.bind caused a channel exception not_found: no exchange 'analyzer-default' in vhost 'analyzer'

排查信息

已确认analyzer-default交换机未被创建,未修改analyzer服务的任何默认配置。


解决方案

1. 检查RabbitMQ初始化Job状态

ReportPortal部署时,RabbitMQ的交换机、队列等资源由rabbitmq-init-job负责初始化。先确认该Job是否成功执行:

# 查看Job状态
kubectl get jobs -n reportportal
# 查看Job执行日志
kubectl logs <rabbitmq-init-job-pod-name> -n reportportal

如果Job执行失败,根据日志修复问题后,重新执行该Job:

kubectl delete job <rabbitmq-init-job-name> -n reportportal
# 等待Helm自动重建Job或手动触发

2. 手动创建缺失的交换机

若初始化Job无法正常修复,可直接在RabbitMQ的analyzer虚拟主机中创建analyzer-default交换机:

方式一:通过RabbitMQ管理界面

  • 访问RabbitMQ管理控制台,切换到analyzer虚拟主机
  • 进入Exchanges页面,点击Add a new exchange
  • 填写名称为analyzer-default,类型选择topic,勾选Durable,点击Add exchange

方式二:通过命令行操作

# 进入RabbitMQ Pod
kubectl exec -it <rabbitmq-pod-name> -n reportportal -- bash
# 授予用户权限(若未授权)
rabbitmqctl set_permissions -p analyzer rabbitmq ".*" ".*" ".*"
# 创建交换机
rabbitmqadmin declare exchange name=analyzer-default type=topic durable=true vhost=analyzer

3. 重启analyzer服务

交换机创建完成后,重启analyzer Pod:

kubectl rollout restart deployment/reportportal-analyzer -n reportportal

4. 验证功能恢复

等待analyzer Pod启动完成后,查看Pod日志确认无AMQP连接错误,同时测试ReportPortal的自动分析功能是否正常运行。

内容的提问来源于stack exchange,提问作者makeiteasy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 23:30:00