2016-10-15 3 views
1

私はMongo v3.2レプリカセット/クラスタの設定に問題があります。私はmongodのログに、A)からのインラインコメントと、レプリカセットを初期化したノードと、B)別のノード(残りのピアは同じ問題を抱えている)からのインラインコメントを追加しました。要するに、問題は、他のすべてのノードからノードへのハートビートは、レプリカセットがHostUnreachableのために失敗し続けることですが、他のすべてのノードからうまく動作するため、さらにデバッグする方法がわかりません。だから私はそれがネットワークアクセスの問題だとは思わない。いくつかのグーグルの後、私はこれが私のMongo設定ファイル(またはその欠如)にあるbindIp設定によると仮定しましたが、そこにあるすべてのノードIPをリストすることはそのトリックをしていないようです。MongoDBレプリカセットHealtcheck - HostUnreachable

MongoDBの設定ファイルに

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

はなぜ、このヘルスは、(私はpingことができ、私はさらにデバッグまたは多分mongodの外に離れて接続失敗を再現することができますどのように失敗し、および/またはすることができhere- &ログを参照してください。 mongo経由で各ホストのすべてのピアに接続します)?ありがとう!

更新: options: { config: "/etc/mongod.conf", net: { bindIp: true }, replication: { replSet: "rs0" } } 私はmongodログは、むしろ私のMongoの設定ファイルで設定リストよりbindIp: trueを示していることに気づきました。それは問題なのだろうか?フィールドの型がビットunclear in docsでも同じ結果ですので、配列の代わりにカンマ区切りの文字列を指定しようとしました。

答えて

1

他のマシンのipsをbindIpに設定しているようですが、他のマシンが到達可能なマシンのIPアドレスを使用する必要があります。

たとえば、あなたのmongo-initial.qマシン上で、あなたのbindIpは次のようにする必要があります:

"bindIp": "127.0.0.1,10.0.11.2" 

詳細情報here

すべてが修正されるかどうかわかりませんが、開始です。

+0

ああ、そうだけどまだ運がない:(「スタートアップ時にローカルレプリカセット設定文書が見つかりませんでした:NoMatchingDocument:local.system.replsetでレプリカセット設定文書が見つかりませんでした」「」 bindIpオプションは配列ではなく 'mongod'ログにも' true'として記録されます(元の投稿のgistを参照してください)私は何かが誤って設定されているように感じますが、 –

+0

それは...リストではなくコンマで区切られた文字列でなければならなかった –

+0

うわー私はそれを見ませんでしたそれを反映するように私の答えを更新します – andresk

1

解決策は私にはまだ100%意味がありませんが、bindIps設定を配列ではなくカンマ区切り文字列に変更する必要がありました。配列はYAMLでは動作しますが、JSONでは動作しないようです。それが前にboolとしてログアウトした理由はまだ分かりません。 @andreskは私の解決策について何か間違っていると指摘しました。私のbindIpには私のピアIPがありましたが、自分のホストはありませんでした。

関連する問題