2016-03-24 7 views
1

Ich bin neu bei RabbitMQ und Linux. Ich verfolge Clustering bei https://www.rabbitmq.com/clustering.htmlKann nicht bei rabbitMQ cluster: Fehler: nodedown

Ich habe drei Knoten alle CentOS 7 ausgeführt wird (auf virtuellen Maschinen mit Statik IPs).

Ich habe den Erlang Cookie auf alle Maschinen kopiert.

Ich habe in Wirten gesetzt hosts-Datei als die folgende Diese auf Maschine 2

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 
::1   localhost localhost.localdomain localhost6 localhost6.localdomain6 
192.168.198.100 rabbit1 
127.0.0.1 rabbit2 
192.168.198.102 rabbit3 

Aber Henne versucht rabbit2 beitreten rabbit1 mit

rabbitmqctl join_cluster [email protected] 

bekomme ich folgende Fehler

Clustering node [email protected] with [email protected] ... 
Error: unable to connect to nodes [[email protected]]: nodedown 

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

attempted to contact: [[email protected]] 

[email protected]: 
    * connected to epmd (port 4369) on rabbit1 
    * epmd reports node 'rabbit' running on port 25672 
    * TCP connection succeeded but Erlang distribution failed 
    * suggestion: hostname mismatch? 
    * suggestion: is the cookie set correctly? 
    * suggestion: is the Erlang distribution using TLS? 

current node details: 
- node name: '[email protected]' 
- home dir: /var/lib/rabbitmq 
- cookie hash: YlXmRhqgpV9H7lgqXslI1g== 

Könnte mir jemand helfen, herauszufinden, was damit nicht stimmt?

+0

Kannst du 'rabbit1' von' rabbit2' pingen? –

+0

@DavinTryon: Ja kann ich. –

Antwort

4

sind Ihre Knoten [email protected] genannt:

Clustering node [email protected] with [email protected] 

Sie benötigen, um zu überprüfen, was die hostname Befehl gibt. Damit Clustering funktioniert, muss es z. rabbit1. Wenn es localhost zurückgibt, überprüfen Sie die Konfiguration Ihrer Hosts. Wie das geht, hängt von der Verteilung ab.

Auf den Debian und Fedora VMs, die ich hier habe, ist der Hostname in /etc/hostname konfiguriert. So würden Sie etwas wie benötigen:

echo rabbit1 > /etc/hostname 

Aber bitte beachten Sie zuerst Ihre Verteilung Dokumentation und Tools.

+0

Danke. Das Ändern des Hostnamens (localhost) auf RabbitX auf jeder Maschine löste das Problem. –

+0

Aber könntest du erklären, was clustername ist, sehe ich, dass es auf allen Knoten auf rabbit @ rabbit2 gesetzt ist. Warum? –

+0

RabbitMQ wählt das erste Mitglied des Clusters willkürlich als Clusternamen aus. Sie können es mit 'rabbitmqctl set_cluster_name $ new_cluster_name' beliebig ändern –

0

Ich gehe davon aus, dass Sie 192.168.198.102 zu Ihrer rabbit2 VM gesetzt haben, also könnten Sie versuchen, die Zeile in/etc/hosts von 127.0.0.1 rabbit2 zu 192.168.198.102 rabbit2 zu ändern.

Auch ein Tipp, versuchen Sie mit Docker anstelle von VMs, es ist schneller und leichter.