まったく新しいシャード 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"
}
]
}
ユーザーを追加する必要があるインスタンスを理解していないだけだと思います。