5

我在 CentOS 5.x 服务器上安装了 RabbitMQ,用于在我的程序之间传递消息。我已经rabbitmqadmin按照https://www.rabbitmq.com/management-cli.html上的说明进行了安装,并且过去曾在我的服务器上使用过它。

据我所知,这个特定的服务器似乎配置错​​误。我的网络搜索未能让我尝试获取有关如何解决此问题的更多信息。

错误:

[root@server ~]# python26 /usr/local/bin/rabbitmqadmin list nodes
*** Could not connect: [Errno -2] Name or service not known
[root@server ~]# 

我尝试了几个不同rabbitmqadmin的命令,它们给出了相同的结果。如果我在没有额外参数的情况下运行命令,它会显示正常的帮助对话框。我有这个设置并在其他几台服务器上工作。

知道根本问题是什么吗?如果没有,无论如何要获取更多详细信息,例如详细信息?

更新:

我只是试图检查 rabbitmq 的版本,它也产生了一个错误:

[root@server ~]# rabbitmqctl status
Status of node rabbit@server ...
Error: unable to connect to node rabbit@server: nodedown

DIAGNOSTICS
===========

attempted to contact: [rabbit@server]

rabbit@server:
  * connected to epmd (port 4369) on server
  * epmd reports node 'rabbit' running on port 25672
  * TCP connection succeeded but Erlang distribution failed
  * suggestion: hostname mismatch?
  * suggestion: is the cookie set correctly?

current node details:
- node name: rabbitmqctl25451@server
- home dir: /var/lib/rabbitmq
- cookie hash: WXaeZT7XXm13naagfRX5cg==

[root@server ~]# 

我要看看我是否能从中找到一些东西......我觉得这很奇怪,因为服务器可以很好地传递消息并且可以通过 Web 控制台进行监控。

二郎版本:

[root@server rabbitmq]#  erl -eval 'erlang:display(erlang:system_info(otp_release)), halt().'  -noshell
"R14B04"
[root@server rabbitmq]# 

Rabbitmq 版本:

[root@server rabbitmq]# python26 /usr/local/bin/rabbitmqadmin --version
rabbitmqadmin 3.3.5
[root@server rabbitmq]# 
4

2 回答 2

7

经过大量的挖掘和挫折,我发现了我的问题......我发布解决方案以防其他人有类似的经历

以前,我发现如果您在 linux 服务器上设置 RabbitMQ,然后更改主机名,它可能会破坏一些 rabbit 配置。

关于这个问题的令人敬畏的部分是有人将服务器的名称从所有大写字母更改为小写......

我已经解决了以下两种方法之一:

解决方案1:

将主机名恢复为以前的名称。因此,带有附加服务器名称的 rabbitmq 引用再次起作用。

解决方案2:

如果要保持服务器名称更改,则可以创建如下rabbitmq-env.conf文件/etc/rabbitmq

NODENAME=rabbit@OLDHOSTNAME

如果你不确定你以前的名字是什么,你可以通过ls在你的/var/lib/rabbitmq/mnesia/文件夹中做一个来引用它。然后,您将看到一个与您需要指定的节点名匹配的文件夹。

参考:https ://www.rabbitmq.com/man/rabbitmq-env.conf.5.man.html

更新:

主机名是 CaSE SenSiTIve...有人更改了我的主机名,唯一的区别是这种情况...所以花了一段时间才注意到...

于 2015-04-07T22:36:14.267 回答
0

昨天我因为同样的问题浪费了几个小时,而且它是全新安装的,所以问题是我的用户和 root 用户的 erlang cookie 与 rabbitmq 用户的不同。

  • 找出用户 rabbitmq 的 HOME:

    # cat /etc/passwd | grep rabbitmq
    
  • 检查 cookie 是否彼此不同:

    # vimdiff /var/lib/rabbitmq/.erlang.cookie ~/.erlang.cookie
    
  • 如果它们不同,请从 rabbitmq 为您想要访问服务器的用户复制 cookie:

    # cp /var/lib/rabbitmq/.erlang.cookie ~/.erlang.cookie
    

参考:

于 2017-05-07T14:52:58.980 回答