3

まったく新しいシャード MongoDb (3 つの構成サーバー、3 つのノードのレプリカ セット) をセットアップしました。オンラインのドキュメントに従いましたが、実際には問題はありませんでした。データベースとコレクションを分割しました。mongos はシステムに接続します。それはすべてうまくいっています。

私が把握していないことの 1 つは、シャード システムでの認証のしくみです。6 つのノードすべてにキーファイルを設定しました。ユーザーを追加したいときは、mongos から行うのですか? レプリカ セットの各ノードにログインし、ユーザーも追加する必要がありますか? ユーザーを構成サーバーに追加する必要がありますか?

特に、mongos を介して MMS ユーザーを作成しました。これにより、mms-monitoring-agent がさまざまなサーバーについて十分に認識できるようになりました。しかし、実際にはそれらのいずれからもデータを読み取ることはできません。次のようなエラーが表示されます。

ask failure `serverStatus`. Err: `Failed command to mongoshard1:27017 running 
[{serverStatus 1} {recordStats 0} {locks 0}] against DB admin. 
Err: `not authorized on admin to execute command { serverStatus: 1, recordStats: 0, locks: 0 }`

mongos 経由で接続して admin を使用すると、私が見ているユーザーを表示:

{
"_id" : "admin.mms",
"user" : "mms",
"db" : "admin",
"roles" : [
    {
        "role" : "readAnyDatabase",
        "db" : "admin"
    },
    {
        "role" : "clusterMonitor",
        "db" : "admin"
    }
]
}

ユーザーを追加する必要があるインスタンスを理解していないだけだと思います。

4

1 に答える 1

0

以下の手順で問題が解決することを願っています:

  1. 認証を有効にせずにシャード クラスターをセットアップします (キーファイルを使用しなくても)。
  2. admin db を使用し、mongoose を使用して「siteUserAdmin」や「siteRootAdmin」などのスーパー ユーザーを追加します。
  3. 次に、各マシン (または mongo プロセス) を auth で再起動し、キーファイルも使用します。
  4. mogoose に接続して「siteRootAdmin」で認証し、その他の必要なすべてのユーザーを作成してロールを付与します。
于 2016-07-02T19:09:50.700 に答える