与RabbitMQ服务器相关的错误

7

我正在尝试使用devstack在Ubuntu 12.04上设置OpenStack。现在,我遇到的错误是:

Setting up rabbitmq-server (2.7.1-0ubuntu4) ...
Starting rabbitmq-server: FAILED - check /var/log/rabbitmq/startup_{log, _err}
rabbitmq-server.
invoke-rc.d: initscript rabbitmq-server, action "start" failed.
dpkg: error processing rabbitmq-server (--configure):
 subprocess installed post-installation script returned error exit status 1
No apport report written because MaxReports is reached already
                                                              Errors were encountered while processing:
 rabbitmq-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
++ err_trap
++ local r=100
++ set +o xtrace
stack.sh failed

有什么想法为什么我会得到这个错误?

你有查看过/var/log/rabbitmq/startup_{log, _err}吗? - pinepain
我做了,但是提示rabbitmq启动失败! - Pensu
7个回答

20

我曾两次遇到此问题,当 /etc/hosts 文件中的主机名或 IP 地址不匹配时会出现这种情况。因此,请检查在该文件中提供的 IP 地址和主机名是否正确。

  1. 运行 sudo cat /etc/hostname 命令以查看您的主机名。

输出:

yoursite
  1. 运行命令 sudo nano /etc/hosts

文件内容为:

127.0.0.1 yoursite

正如您从 cat /etc/hostname 看到的那样,主机名与 /etc/hosts 中的相同:

  1. 运行sudo rabbitmq-server start启动 rabbitmq 服务器。

1
在 /etc/hosts 文件中,第一行是 127.0.0.1 localhost。还需要添加一行 127.0.0.1 yoursite 吗?对不起我的英语! - Eduardo Pascual Aseff
@EduardoPascualAseff 是的,每一行都是其他程序引用的另一个链接。 - chris Frisina
这个在我升级版本之后帮助解决了问题。 - undefined

4
尝试删除文件夹 /var/lib/rabbitmq 并重新运行 ./stack.sh。
如果这样还是不行,在stach.sh失败后运行以下命令:
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq chown -R rabbitmq:rabbitmq /var/log/rabbitmq
service rabbitmq-server restart
使用 "rabbitmqctl status" 检查 rabbitmq 的状态。

3

我也遇到了类似的问题。RabbitMQ依赖于能够解析主机名,运行以下命令:

echo "127.0.0.1 $(hostname -s)" | sudo tee -a /etc/hosts

该命令可以解决问题。


2

这种方法适用于我。

首先执行

sudo vim /etc/hosts

然后设置

127.0.0.1 <hostname>

接着打开防火墙。

sudo rabbitmq-plugins enable rabbitmq_management
sudo service rabbitmq-server restart

0

为了保持一个干净的环境,这种情况是不会发生的。你必须运行devstack多次,其中一次失败了,但你没有清理它。

运行命令pf -ef | grep rabbitmq,杀掉所有rabbitmq进程。然后再运行./stack.sh 就没问题了。

强烈建议在运行./stack.sh之前先运行./unstack.sh && ./clean.sh


0

只是为了确保,请查看您的本地网络

ip add

如果没有“lo”网络,则应启用它:
ifconfig lo up

然后再次重新启动服务器,看看现在是否可以正常工作

systemctl start rabbitmq-server

0

我曾经遇到过同样的问题,尽管我的/etc/hosts和DNS都没有问题。我怀疑是SystemV init脚本在网络还没有准备好的时候就启动了。我在CentOS 7.8上将启动脚本改写为systemd,现在看起来运行良好。

[Unit]
Description=RabbitMQ
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
RuntimeDirectory=rabbitmq
PrivateTmp=true
Restart=on-failure
RestartSec=10

WorkingDirectory=/opt/data/rabbitmq/
User=rabbitmq
Group=rabbitmq

ExecStart=/opt/app/rabbitmq/default/sbin/rabbitmq-server
ExecStop=/opt/app/rabbitmq/default/sbin/rabbitmqctl stop
ExecStop=/bin/sh -c "while ps -p $MAINPID >/dev/null 2>&1; do sleep 1; done"

StandardOutput=journal
StandardError=inherit

[Install]
WantedBy=multi-user.target

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接