问题点说明:今天早上,开发人员反映Rabbitmq有问题,我试着登录页面访问http://IP:15672,出现了报错信息,因为当时忙着处理,报错页面没有截下来。
后面想重启一下Rabbitmq看能不能解决问题,发现居然重启不了,然后查看了下日志信息,找到了Rabbitmq无法重启的报错信息,根据报错信息解决了无法重启的问题,并且重启后,之前的故障也恢复正常了,但是仍然不知道为什么之前会出现故障!
一、错误场景再现:
1.1 重启Rabbitmq时的报错场景:
[root@public44~]#systemctlrestartrabbitmq-server
1.2 查看Rabbitmq的启动日志:
[root@public44rabbitmq]#tail-fn500rabbit@huaweicloud.log-20170724
Rabbitmq的日志存放路径默认在/var/log/rabbitmq,找到相关日志信息
二、问题点定位和解决:
2.1 通过错误日志定位‘无法重启’的故障问题
按照上面的理解,应该是这个意思: badmatch,{error,nxdomain}:匹配失败,域名错误。
域名?那不就是URL?URL能有什么错误,对了,URL不是有端口号么?会不会端口号被占用了,无法启动?
2.2、查看Rabbitmq-server的端口号占用情况
Rabbitmq-server默认占用的端口号有:5672、15672、25672、4369
[root@public44~]#ss-tnlp|grep15672
[root@public44~]#ss-tnlp|grep5672
[root@public44~]#ss-tnlp|grep25672
[root@public44~]#ss-tnlp|grep4369
我们发现,15672端口确实是被占用的,我们再看下pid=50850的进程是什么东西?
[root@public44~]#psaux|grep50850
可以看到,仍然是rabbitmq的进程在占用,可能之前restart重启的时候,没有关闭干净,所以我们手动kill掉!
[root@public44~]#kill-950850
三、解决结果确认:
3.1、再次启动Rabbitmq-server:成功
[root@public44~]#systemctlstartrabbitmq-server
[root@public44~]#systemctlstatusrabbitmq-server
3.2、查看Rabbitmq-Server服务监听端口:正常
[root@public44~]#ss-tnlp|grep5672