RabbitMQ启动正常,无法访问管理页面
环境
腾讯云服已开放端口:5672/15672
之前可以访问开启延迟队列插件后重启无法访问
问题背景
跟学安装延迟队列插件,服务一直启动并且一直在用没问题的,结果开启插件后重启无法访问了。这里就有个前置认知问题,就是我之前用都没问题那我肯定是rabbitmq-plugins enable rabbitmq_management
开启了网页访问插件的!(坑就在这里)
以下为经历过程,做个记录
查看日志
docker logs rabbitmq
日志内容如下
[info] <0.524.0> Server startup complete; 4 plugins started.
[info] <0.524.0> * rabbitmq_prometheus
[info] <0.524.0> * rabbitmq_web_dispatch
[info] <0.524.0> * rabbitmq_management_agent
[info] <0.524.0> * rabbitmq_delayed_message_exchange
[info] <0.604.0> accepting AMQP connection <0.604.0> (113.90.130.86:1495 -> 172.17.0.3:5672)
[info] <0.604.0> Connection <0.604.0> (113.90.130.86:1495 -> 172.17.0.3:5672) has a client-provided name: rabbitConnectionFactory#749ab7b4:6
[info] <0.604.0> connection <0.604.0> (113.90.130.86:1495 -> 172.17.0.3:5672 - rabbitConnectionFactory#749ab7b4:6): user 'guest' authenticated and granted access to vhost '/'
Note:
可以通过
docker inspect rabbitmq | grep log
查看日志文件所在的物理磁盘位置
当时没仔细看,加上容器日志记录时间是在早上,一度怀疑这个日志是不是不是当前容器记录的启动日志。
确认很多遍日志后,确认启动是没有问题的,那么云服访问最有可能就是端口没有对外开放访问不了了。
尝试开放所有端口
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5b530ef68d2a rabbitmq "docker-entrypoint.s…" 53 minutes ago Up 25 minutes 4369/tcp, 0.0.0.0:5672->5672/tcp, :::5672->5672/tcp, 5671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp, :::15672->15672/tcp rabbitmq
就是把这里看到的所有端口进行放开。
这里已经在病急乱投医了,但是还在想,如果我去ping通ip和端口这样就可以一定确认可以访问,问题不是出在网络上了,于是
ping 网络端口
abc@clcao mq % telnet 175.178.244.122 80
zsh: command not found: telnet
既然没有,那就安装吧brew install telnet
abc@clcao mq % brew install telnet
You have 1 outdated formula installed.
Error: Cannot install under Rosetta 2 in ARM default prefix (/opt/homebrew)!
To rerun under ARM use:
arch -arm64 brew install ...
To install under x86_64, install Homebrew into /usr/local.
M1芯片还安装不了。这里是被迫无奈放弃了网络不通的想法了,最后还是尝试去关闭插件
关闭插件
进入容器
docker exec -it rabbitmq bash
关闭插件
rabbitmq-plugins disable rabbitmq_delayed_message_exchange
重启容器
docker restart rabbitmq
还是连接失败,最后!检查启用的插件时候才发现,rabbitmq_management 被莫名关掉了!
查看启用的插件
rabbitmq-plugins list
看到这里问题就终于解决了,重新启用插件即可!
开启插件
rabbitmq-plugins enable rabbitmq_management
Note:
插件被莫名关掉造成的原因具体还不清楚,但是值得怀疑的就是开启延迟队列插件导致的,因为本来就一直在用的服务,突然访问不了了,其中的变化也就只有这个动作,但同时也因为一直在用,所以潜意识认为一定开启了这个插件
rabbitmq_management
,而实际上在日志部分已经看到了,只是当时没注意,看到4个插件启动就认为启动延迟队列插件rabbitmq_delayed_message_exchange
成功了。
另外,插件的开启不需要重启RabbitMQ