Rabbitmq重启失败问题解决

问题点说明:
    今天早上,开发人员反映Rabbitmq有问题,我试着登录页面访问http://IP:15672,出现了报错信息,因为当时忙着处理,报错页面没有截下来。
    后面想重启一下Rabbitmq看能不能解决问题,发现居然重启不了,然后查看了下日志信息,找到了Rabbitmq无法重启的报错信息,根据报错信息解决了无法重启的问题,并且重启后,之前的故障也恢复正常了,但是仍然不知道为什么之前会出现故障!

  一、错误场景再现:

1.1 重启Rabbitmq时的报错场景:

[root@public44 ~]# systemctl restart rabbitmq-server

Rabbitmq报错日志

1.2 查看Rabbitmq的启动日志:

[root@public44 rabbitmq]# tail -fn 500 rabbit@huaweicloud.log-20170724
  • Rabbitmq的日志存放路径默认在/var/log/rabbitmq,找到相关日志信息

Rabbitmq日志信息

  二、问题点定位和解决:

2.1 通过错误日志定位‘无法重启’的故障问题

Rabbitmq报错信息

按照上面的理解,应该是这个意思: badmatch,{error,nxdomain}:匹配失败,域名错误。
域名?那不就是URL?URL能有什么错误,对了,URL不是有端口号么?会不会端口号被占用了,无法启动?

2.2、查看Rabbitmq-server的端口号占用情况

  • Rabbitmq-server默认占用的端口号有:5672、15672、25672、4369

[root@public44 ~]# ss -tnlp |grep  15672
[root@public44 ~]# ss -tnlp |grep  5672
[root@public44 ~]# ss -tnlp |grep  25672
[root@public44 ~]# ss -tnlp |grep  4369

Rabbitmq端口查询

  • 我们发现,15672端口确实是被占用的,我们再看下pid=50850的进程是什么东西?

[root@public44 ~]# ps aux |grep 50850

进程占用查询

  • 可以看到,仍然是rabbitmq的进程在占用,可能之前restart重启的时候,没有关闭干净,所以我们手动kill掉!   

[root@public44 ~]# kill -9 50850

  三、解决结果确认:

3.1、再次启动Rabbitmq-server:成功

[root@public44 ~]# systemctl start rabbitmq-server
[root@public44 ~]# systemctl status rabbitmq-server

重新启动Rabbitmq

3.2、查看Rabbitmq-Server服务监听端口:正常

[root@public44 ~]# ss -tnlp |grep 5672

端口查询

3.3、浏览器访问 http://IP:15672 :正常

页面访问

Jimmy's Blog ,版权所有丨如未注明,均为原创丨本网站采用BY-NC-SA协议进行授权,转载请注明转自:https://www.xjimmy.com/rabbitmq-restart-failed.html

Leave a Comment