MMS(mongodb2.4和mongodb2.6版本)的监控代理和备份代理
<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>MMS 监控<ul class="second_class_ul"><li>MongoDB 2.6</li><li>MongoDB 2.4</li></ul></li><li>MMS Monitoring with Database Profiling<ul class="second_class_ul"><li>MongoDB 2.6</li><li>MongoDB 2.4</li></ul></li><li>MMS Monitoring without dbStats<ul class="second_class_ul"><li>MongoDB 2.6</li><li>MongoDB 2.4</li></ul></li><li>MMS 备份<ul class="second_class_ul"><li>MongoDB 2.6</li><li>MongoDB 2.4</li></ul></li></ul></div><p>如果mongodb实例启用了验证,那么MMS的监控代理和备份代理就要求验证并对其授予应有的权限。</p><p>mongodb admin数据库定义所有用户账号。</p>
<p>本节主要正对mongodb2.4和mongodb2.6版本来说的。</p>
<p class="maodian"></p><h2>MMS 监控</h2>
<p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><h3>MongoDB 2.6</h3>
<p>监控mongodb2.6实例,代理用户必需要有clusterMonitor角色。</p>
<div class="dxycode"><pre class="brush:sql;">use admin
db.createUser( { user: "<username>",
pwd: "<password>",
roles: [
{ role: "clusterMonitor", db: "admin" }
] } )</pre></div>
<p>此外,为了与2.4版本兼容,代理可能尝试查询local数据库。只授予clusterMonitor 角色,mongodb日志中会产生验证错误的信息,代理可以从这个错误中恢复,可以放心地忽略这些消息。</p>
<p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><h3>MongoDB 2.4</h3>
<p>要监控mongodb2.4实例,代理用户必需要以下权限:</p>
<ul><li>clusterAdmin</li><li>readAnyDatabase</li></ul>
<div class="dxycode"><pre class="brush:sql;">use admin
db.addUser( { user: "<username>",
pwd: "<password>",
roles: [ "clusterAdmin",
"readAnyDatabase" ] } )</pre></div>
<p>因为基本监控用户不需要dbAdminAnyDatabase 角色,mongodb日志可能会报告下面的信息:command denied: { profile: -1 }。</p>
<p>如果不希望MMS收集profile数据,可以忽略该信息。如果需要收集,就赋予该权限。</p>
<p class="maodian"></p><h2>MMS Monitoring with Database Profiling</h2>
<p>Profiling 可以捕获正在进行的读写操作,cursor 操作和有关数据库的数据库命令的信息。</p>
<p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><h3>MongoDB 2.6</h3>
<p>带数据库profiling监控2.6版本需要clusterMonitor 角色权限。</p>
<div class="dxycode"><pre class="brush:sql;">use admin
db.createUser( { user: "<username>",
pwd: "<password>",
roles: [ { role: "clusterMonitor", db: "admin" } ] } )</pre></div>
<p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><h3>MongoDB 2.4</h3>
<p>带数据库profiling监控2.4版本需要以下角色权限:</p>
<ul><li>clusterAdmin</li><li>readAnyDatabase</li><li>dbAdminAnyDatabase</li></ul>
<div class="dxycode"><pre class="brush:sql;">use admin
db.addUser( { user: "<username>",
pwd: "<password>",
roles: [ "clusterAdmin",
"readAnyDatabase",
"dbAdminAnyDatabase"
] } )</pre></div>
<p class="maodian"></p><h2>MMS Monitoring without dbStats</h2>
<p>监控没有dbStats会产生监控数据没有数据库存储,记录,索引和其他数据的统计。也就是不会收集到dbStats下的数据。</p>
<p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><h3>MongoDB 2.6</h3>
<p>clusterMonitor 角色包含执行dbStats操作的权限。</p>
<div class="dxycode"><pre class="brush:sql;">use admin
db.createUser( { user: "<username>",
pwd: "<password>",
roles: [ { role: "clusterMonitor", db: "admin" } ] } )</pre></div>
<p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><h3>MongoDB 2.4</h3>
<p>监控2.4版本需要clusterAdmin 角色权限。</p>
<div class="dxycode"><pre class="brush:sql;">use admin
db.addUser( { user: "<username>",
pwd: "<password>",
roles: [ "clusterAdmin" ] } )</pre></div>
<p class="maodian"></p><h2>MMS 备份</h2>
<p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><h3>MongoDB 2.6</h3>
<p>要备份的MongoDB2.6实例,备份代理需要以下权限:</p>
<ul><li>clusterAdmin</li><li>readAnyDatabase</li><li>userAdminAnyDatabase</li></ul>
<p>同时,还需要以下的角色:</p>
<ul><li>readWrite 对local库的角色</li><li>readWrite 对admin库的角色</li></ul>
<div class="dxycode"><pre class="brush:sql;">use admin
db.createUser( { user: "<username>",
pwd: "<password>",
roles: [ "clusterAdmin", "readAnyDatabase",
"userAdminAnyDatabase",
{ role: "readWrite", db: "admin" },
{ role: "readWrite", db: "local" },
] } )</pre></div>
<p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><h3>MongoDB 2.4</h3>
<p>要备份的MongoDB2.4实例,备份代理需要以下权限:</p>
<ul><li>clusterAdmin</li><li>readAnyDatabase</li><li>userAdminAnyDatabase</li></ul>
<p>同时,还需要以下的角色:</p>
<ul><li>readWrite 对local库的角色</li><li>readWrite 对admin库的角色</li></ul>
<div class="dxycode"><pre class="brush:sql;">use admin
db.addUser( { user: "<username>",
pwd: "<password>",
roles: [ "clusterAdmin",
"readAnyDatabase",
"userAdminAnyDatabase"
],
otherDBRoles: { local: ['readWrite'],
admin: ['readWrite'] } } )</pre></div>
頁:
[1]