ubuntu 18.04中的Rabbitmq服务器安装错误



我正在尝试安装rabbitmq。所以我面临的问题如下。为了安装,我使用这个博客

Reading package lists... Done
Building dependency tree       
Reading state information... Done
rabbitmq-server is already the newest version (3.8.7-1).
The following packages were automatically installed and are no longer required:
erlang-diameter erlang-edoc erlang-erl-docgen erlang-eunit erlang-ic erlang-inviso erlang-nox erlang-odbc erlang-percept erlang-ssh libodbc1 libsctp1
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up rabbitmq-server (3.8.7-1) ...
Job for rabbitmq-server.service failed because the control process exited with error code.
See "systemctl status rabbitmq-server.service" and "journalctl -xe" for details.
invoke-rc.d: initscript rabbitmq-server, action "start" failed.
● rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Mon 2020-08-31 17:20:23 IST; 4ms ago
Process: 6118 ExecStart=/usr/lib/rabbitmq/bin/rabbitmq-server (code=exited, status=1/FAILURE)
Main PID: 6118 (code=exited, status=1/FAILURE)
Aug 31 17:20:23 mahesh-Latitude-3500 systemd[1]: Failed to start RabbitMQ broker.
dpkg: error processing package rabbitmq-server (--configure):
installed rabbitmq-server package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
rabbitmq-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

很多次我删除了rabbitmq的所有包并再次安装,但都没有成功。

我试着用下面的命令来解决这个问题,就像我从其他博客中得到的一样。

$ sudo apt-get update --fix-missing
$ sudo dpkg --configure -a
$ sudo apt-get install -f
$ sudo apt-get install rabbitmq-server -y --fix-missing

运行systemctl status rabbitmq-server.service后的日志

rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Mon 2020-08-31 17:43:11 IST; 1s ago
Process: 1878 ExecStart=/usr/lib/rabbitmq/bin/rabbitmq-server (code=exited, status=1/FAILURE)
Main PID: 1878 (code=exited, status=1/FAILURE)

以及运行journalctl -xe后的日志

-- Unit rabbitmq-server.service has begun starting up.
Aug 31 17:44:17 mahesh-Latitude-3500 rabbitmq-server[3761]: Configuring logger redirection
Aug 31 17:44:19 mahesh-Latitude-3500 rabbitmq-server[3761]:   ##  ##      RabbitMQ 3.8.7
Aug 31 17:44:19 mahesh-Latitude-3500 rabbitmq-server[3761]:   ##  ##
Aug 31 17:44:19 mahesh-Latitude-3500 rabbitmq-server[3761]:   ##########  Copyright (c) 2007-2020 VMware, Inc. or its affiliates.
Aug 31 17:44:19 mahesh-Latitude-3500 rabbitmq-server[3761]:   ######  ##
Aug 31 17:44:19 mahesh-Latitude-3500 rabbitmq-server[3761]:   ##########  Licensed under the MPL 2.0. Website: https://rabbitmq.com
Aug 31 17:44:19 mahesh-Latitude-3500 rabbitmq-server[3761]:   Doc guides: https://rabbitmq.com/documentation.html
Aug 31 17:44:19 mahesh-Latitude-3500 rabbitmq-server[3761]:   Support:    https://rabbitmq.com/contact.html
Aug 31 17:44:19 mahesh-Latitude-3500 rabbitmq-server[3761]:   Tutorials:  https://rabbitmq.com/getstarted.html
Aug 31 17:44:19 mahesh-Latitude-3500 rabbitmq-server[3761]:   Monitoring: https://rabbitmq.com/monitoring.html
Aug 31 17:44:19 mahesh-Latitude-3500 rabbitmq-server[3761]:   Logs: /var/log/rabbitmq/rabbit@mahesh-Latitude-3500.log
Aug 31 17:44:19 mahesh-Latitude-3500 rabbitmq-server[3761]:         /var/log/rabbitmq/rabbit@mahesh-Latitude-3500_upgrade.log
Aug 31 17:44:19 mahesh-Latitude-3500 rabbitmq-server[3761]:   Config file(s): (none)
Aug 31 17:44:19 mahesh-Latitude-3500 rabbitmq-server[3761]:   Starting broker...
Aug 31 17:44:19 mahesh-Latitude-3500 rabbitmq-server[3761]: BOOT FAILED
Aug 31 17:44:19 mahesh-Latitude-3500 rabbitmq-server[3761]: ===========
Aug 31 17:44:19 mahesh-Latitude-3500 rabbitmq-server[3761]: Error during startup: {error,{could_not_start_listener,"::",5672,eaddrinuse}}
Aug 31 17:44:20 mahesh-Latitude-3500 rabbitmq-server[3761]: {"init terminating in do_boot",{error,{could_not_start_listener,"::",5672,eaddrinuse}}}
Aug 31 17:44:20 mahesh-Latitude-3500 rabbitmq-server[3761]: init terminating in do_boot ({error,{could_not_start_listener,::,5672,eaddrinuse}})
Aug 31 17:44:20 mahesh-Latitude-3500 rabbitmq-server[3761]: [1B blob data]
Aug 31 17:44:20 mahesh-Latitude-3500 rabbitmq-server[3761]: Crash dump is being written to: /var/log/rabbitmq/erl_crash.dump...done
Aug 31 17:44:20 mahesh-Latitude-3500 systemd[1]: rabbitmq-server.service: Main process exited, code=exited, status=1/FAILURE
Aug 31 17:44:20 mahesh-Latitude-3500 systemd[1]: rabbitmq-server.service: Failed with result 'exit-code'.
Aug 31 17:44:20 mahesh-Latitude-3500 systemd[1]: Failed to start RabbitMQ broker.
-- Subject: Unit rabbitmq-server.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- Unit rabbitmq-server.service has failed.
-- 
-- The result is RESULT.
Aug 31 17:44:30 mahesh-Latitude-3500 systemd[1]: rabbitmq-server.service: Service hold-off time over, scheduling restart.
Aug 31 17:44:30 mahesh-Latitude-3500 systemd[1]: rabbitmq-server.service: Scheduled restart job, restart counter is at 179.
-- Subject: Automatic restarting of a unit has been scheduled
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- Automatic restarting of the unit rabbitmq-server.service has been scheduled, as the result for
-- the configured Restart= setting for the unit.
Aug 31 17:44:30 mahesh-Latitude-3500 systemd[1]: Stopped RabbitMQ broker.
-- Subject: Unit rabbitmq-server.service has finished shutting down
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- Unit rabbitmq-server.service has finished shutting down.
Aug 31 17:44:30 mahesh-Latitude-3500 systemd[1]: Starting RabbitMQ broker...
-- Subject: Unit rabbitmq-server.service has begun start-up
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- Unit rabbitmq-server.service has begun starting up.

什么都没用。请帮忙。

提前谢谢。

问题很可能是rabbitmq试图使用的端口当前正被另一个进程使用。这在journalctl -xe的输出中说明

... : Error during startup: {error,{could_not_start_listener,"::",5672,eaddrinuse}}

您可以在带有的机器上看到当前正在使用的所有端口

$ lsof -i -P -n

或专门检查该端口

$ lsof -i -P -n|grep 5672

因此,您可以使用端口5672终止进程,也可以更改rabbitmq使用的端口