在监控MongoDB的运行状况上,常用的命令行命令是 mongostat 和 mongotop。但是,当开启了授权后,使用mongostat就不那么顺利了,需要给管理账户授权角色才可以。
使用
mongo --port 27017 -u myUserAdmin -p abc123 --authenticationDatabase admin
登录终端后,使用下面命令创建角色。
use admin
db.createRole(
{
role: "mongostatRole",
privileges: [
{ resource: { cluster: true }, actions: [ "serverStatus" ] }
],
roles: []
}
)
还没有完,将角色授权给操作用户
db.grantRolesToUser("mongoadmin",
[
{
role: "mongostatRole",
db: "admin"
}
])
这样,admin就被赋予了上面的角色,如图所示:
使用,下面的命令就可以执行mongostat了。
mongostat --host=192.168.8.234:27017 -u mongoadmin -p mongoadmin --authenticationDatabase=admin
结果如图:
参考链接:
https://docs.mongodb.com/manual/tutorial/manage-users-and-roles/#create-a-role-to-run-mongostat