2016-10-15 4 views
1

Ich habe Probleme beim Einrichten meines Mongo v3.2 Replikat-Sets/Clusters. Ich habe mongod s Protokolle mit Inline-Kommentaren von A) den Knoten I initialisiert die Replikat-Set von und B) einen anderen Knoten (Rest der Peers haben dasselbe Problem). Kurz gesagt, das Problem ist, dass der Heartbeat von allen anderen Knoten zu dem Knoten, den ich initial eingerichtet habe, aufgrund von HostUnreachable fehlschlägt, aber ich bin mir nicht sicher, wie ich weiter debuggen soll, da mongo <initial node> von allen anderen Knoten funktioniert also denke ich nicht, dass es ein Netzwerkzugriffsproblem ist. Nach einigem Googeln nahm ich an, dass dies auf die bindIp-Einstellung zurückzuführen war, die ich in meiner Mongo-Konfigurationsdatei hatte (oder deren Fehlen), aber das Auflisten aller Knoten-IPs dort scheint den Trick nicht zu machen.MongoDB Replikat-Set Healtcheck - HostUnerreichbar

Siehe die mongodb Konfigurationsdateien & Protokolle hier-

https://gist.github.com/tejasmanohar/f0e705fb0d9e96f68e05e1ab20c478be

Warum diese Health könnte versagen und/oder, wie ich weiter debuggen können oder vielleicht die ausgefallene Verbindung reproduzieren außer außerhalb von mongod (ich kann ping und verbinden über mongo mit allen Peers von jedem Host)? Vielen Dank!

Update: options: { config: "/etc/mongod.conf", net: { bindIp: true }, replication: { replSet: "rs0" } } bemerkte ich, dass die mongod Logs zeigen bindIp: true statt einer Liste in meiner Mongo Konfigurationsdatei festgelegt. Ist das problematisch? Ich versuchte, eine durch Komma getrennte Zeichenkette anstelle von einem Array zur Verfügung zu stellen, da der Typ des Feldes ein Bit unclear in docs ist, aber das gleiche Ergebnis.

Antwort

1

Es scheint, dass Sie die IPs der anderen Maschinen auf bindIp setzen, aber Sie sollten die IP-Adresse des Computers verwenden, die von den anderen erreichbar ist.

Zum Beispiel auf Ihrer mongo-initial.q Maschine, sollte Ihr bindip wie:

"bindIp": "127.0.0.1,10.0.11.2" 

Mehr Infos here.

Ich weiß nicht, ob es alles repariert, aber es ist ein Anfang.

+0

Ah, das ist richtig ... aber immer noch kein Glück :(. Ich sehe '" Lokales Replikat Set Konfigurationsdokument beim Start nicht gefunden; NoMatchingDocument: Replikat Set Konfigurationsdokument in local.system.replset gefunden "' at Startup auf allen Knoten. Ist das problematisch? Die bindIp Option wird auch protokolliert als 'true' in' mongod' logs anstatt ein Array (siehe Gist aus dem ursprünglichen Beitrag). Ich habe das Gefühl, dass ich etwas falsch konfiguriere, aber ' –

+0

Das war es ... musste eine durch Kommas getrennte Zeichenkette sein, keine Liste –

+0

Wow, ich habe das nicht gesehen Ich werde meine Antwort aktualisieren, um sie wiederzugeben – andresk

1

So macht die Lösung mir noch nicht 100% Sinn, aber ich musste bindIps Einstellung in eine durch Komma getrennte Zeichenfolge anstelle eines Arrays ändern. Array scheint in YAML, aber nicht in JSON zu funktionieren. Verstehe immer noch nicht, warum es sich vorher als Bool ausgeloggt hat. @andresk zeigte etwas anderes falsch über meine Lösung - meine bindIp Einstellung hatte meine Peer-IPs, aber nicht den eigenen Host.