无法使用systemctl在centos 7中启动rabbitmq服务器

Vig*_*mar 15 rabbitmq centos7

我试图在centos 7中启动rabbitmq服务器.我安装了erlang,因为它是对rabbitmq-server的依赖.包erlang.x86_64 0:R16B-03.7.el7.然后使用package rabbitmq-server-3.2.2-1.noarch.rpm安装rabbitmq.安装成功.我启用了管理控制台uisng rabbitmq-plugins启用rabbitmq_management.但是在启动服务rabbitmq-server时失败了.

[root@tve-centos ~]# systemctl start rabbitmq-server.service
Job for rabbitmq-server.service failed. See 'systemctl status rabbitmq-server.service' and 'journalctl -xn' for details.
[root@tve-centos ~]# systemctl status rabbitmq-server.service
rabbitmq-server.service - LSB: Enable AMQP service provided by RabbitMQ broker
   Loaded: loaded (/etc/rc.d/init.d/rabbitmq-server)
   Active: failed (Result: exit-code) since Fri 2014-09-12 13:07:05 PDT; 8s ago
  Process: 20235 ExecStart=/etc/rc.d/init.d/rabbitmq-server start (code=exited, status=1/FAILURE)

Sep 12 13:07:04 tve-centos su[20245]: (to rabbitmq) root on none
Sep 12 13:07:05 tve-centos su[20296]: (to rabbitmq) root on none
Sep 12 13:07:05 tve-centos su[20299]: (to rabbitmq) root on none
Sep 12 13:07:05 tve-centos rabbitmq-server[20235]: Starting rabbitmq-server: FAILED - check /var/log/rabbitmq/startup_{log, _err}
Sep 12 13:07:05 tve-centos rabbitmq-server[20235]: rabbitmq-server.
Sep 12 13:07:05 tve-centos systemd[1]: rabbitmq-server.service: control process exited, code=exited status=1
Sep 12 13:07:05 tve-centos systemd[1]: Failed to start LSB: Enable AMQP service provided by RabbitMQ broker.
Sep 12 13:07:05 tve-centos systemd[1]: Unit rabbitmq-server.service entered failed state.
Run Code Online (Sandbox Code Playgroud)

和日志显示/ var/log/rabbitmq/startup_log BOOT FAILED ===========

Error description:
   {could_not_start,rabbitmq_management,
                    {could_not_start_listener,[{port,15672}],eacces}}

Log files (may contain more information):
   /var/log/rabbitmq/rabbit@tve-centos.log
   /var/log/rabbitmq/rabbit@tve-centos-sasl.log
Run Code Online (Sandbox Code Playgroud)

但没有进程使用端口15672

但是,如果我尝试使用/ usr/sbin/rabbitmq-server启动它.我成功启动了该服务.但我的要求是使用systemctl启动它.

chr*_*ley 20

更好的答案是实际修复SELinux和防火墙.

打开端口:

firewall-cmd --permanent --add-port=5672/tcp
firewall-cmd --reload
setsebool -P nis_enabled 1
Run Code Online (Sandbox Code Playgroud)

这对我行得通.

  • @pyCthon try without my typo :-) the boolean is actually `nis_enabled` not `nisenabled`. Sorry (2认同)

Kar*_*ikJ 4

看来是端口问题。为了确认

systemctl stop firewalld
systemctl disable firewalld 
Run Code Online (Sandbox Code Playgroud)

并在 /etc/selinux/config 文件中暂时禁用 SELinux

SELINUX=disabled
Run Code Online (Sandbox Code Playgroud)

尝试重新启动计算机并查看问题是否仍然存在。

  • 作为一项规则,人们应该始终运行防火墙并启用 SELINUX;因此,一旦发现问题,强烈建议重新打开这些功能。您可以运行 tcpdump 来帮助找出哪些防火墙端口被阻止(或者从启用rabbitmq已知需要的端口开始),并且您可以使用audit2allow来找出哪些SELINUX策略/布尔值正在阻止该服务。请参阅@chriscowley 的回答。 (4认同)