rabbtimqadmin - 无法连接:[Errno -2]名称或服务未知

时间:2015-04-07 21:00:27

标签: rabbitmq rabbitmqctl rabbitmqadmin

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

据我所知,看起来这个特定的服务器配置错误。我试图获取有关如何解决此问题的更多信息后,我的网络搜索失败了。

错误:

[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控制台进行监控。

Erlang版本:

[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]# 

2 个答案:

答案 0 :(得分:6)

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

以前,我发现如果你在Linux服务器上设置RabbitMQ,那么更改它可以打破一些兔子配置的主机名。

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

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

解决方案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 ...如果有人在我身上更改了主机名,唯一的区别就在于......所以需要一段时间才能注意到......

答案 1 :(得分:0)

昨天我已经因为同样的问题而丢失了几个小时并且处于全新安装状态,所以问题是来自我的用户和root用户的erlang cookie与来自rabbitmq用户的erlang cookie不同。

  • 找出用户rabbitmq的主页:

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

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

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

参考文献: