MongoDB

本章节为 Cloud Insight 支持的平台服务的文档的示例。

目前能够想到的章节分为以下几个部分:

  • 支持的性能指标
  • 如何配置 MongoDB 监控
  • 常见的问题

性能指标

Cloud Insight 采集 MongoDB 以下性能指标:

  • mongodb.globallock.currentqueue.readers
  • mongodb.globallock.currentqueue.total
  • mongodb.globallock.currentqueue.writers
  • mongodb.globallock.locktime
  • mongodb.globallock.totaltime
  • mongodb.indexcounters.accessesps
  • mongodb.indexcounters.hitsps
  • mongodb.indexcounters.missesps
  • mongodb.indexcounters.missratio
  • mongodb.indexcounters.resetsps
  • mongodb.mem.mapped
  • mongodb.mem.resident
  • mongodb.mem.virtual
  • mongodb.metrics.document.deletedps
  • mongodb.metrics.document.insertedps
  • mongodb.metrics.document.returnedps
  • mongodb.metrics.document.updatedps
  • mongodb.metrics.getlasterror.wtime.numps
  • mongodb.metrics.getlasterror.wtime.totalmillisps
  • mongodb.metrics.getlasterror.wtimeoutsps
  • mongodb.metrics.operation.fastmodps
  • mongodb.metrics.operation.idhackps
  • mongodb.metrics.operation.scanandorderps
  • mongodb.metrics.queryexecutor.scannedps
  • mongodb.metrics.record.movesps
  • mongodb.metrics.repl.apply.batches.numps
  • mongodb.metrics.repl.apply.batches.totalmillisps
  • mongodb.metrics.repl.apply.opsps
  • mongodb.metrics.repl.buffer.count
  • mongodb.metrics.repl.buffer.maxsizebytes
  • mongodb.metrics.repl.buffer.sizebytes
  • mongodb.metrics.repl.network.bytesps
  • mongodb.metrics.repl.network.getmores.numps
  • mongodb.metrics.repl.network.getmores.totalmillisp
  • mongodb.metrics.repl.network.opsps
  • mongodb.metrics.repl.network.readerscreatedps
  • mongodb.metrics.ttl.deleteddocumentsps
  • mongodb.metrics.ttl.passesps
  • mongodb.opcounters.commandps
  • mongodb.opcounters.deleteps
  • mongodb.opcounters.getmoreps
  • mongodb.opcounters.insertps
  • mongodb.opcounters.queryps
  • mongodb.opcounters.updateps
  • mongodb.opcountersrepl.commandps
  • mongodb.opcountersrepl.deleteps
  • mongodb.opcountersrepl.getmoreps
  • mongodb.opcountersrepl.insertps
  • mongodb.opcountersrepl.queryps
  • mongodb.opcountersrepl.updateps
  • mongodb.stats.datasize
  • mongodb.stats.indexes
  • mongodb.stats.indexsize
  • mongodb.stats.objects
  • mongodb.stats.storagesize
  • mongodb.uptime

配置 MongoDB 监控

创建 OneAPM 访问权限

为 OneAPM 创建只读权限的 Admin 用户。OneAPM 需要 admin 权限才能完整采集 MongoDB 性能数据。

在 Mongo Shell 中执行以下指令。

use admin
db.auth("admin", "admin-password")
db.addUser("oneapm", "YourPassword", true)

如果您使用的是 3.0 和以上版本的 MongoDB,那请执行以下指令,来创建只读 Admin 权限。

use admin
db.auth("admin", "admin-password")
db.createUser({"user":"oneapm", "pwd": "YourPassword", "roles" : [ 'read', 'clusterMonitor']})

您可以通过以下指令,查看用户是否创建成功,权限是否正确。

python -c 'from pymongo import Connection; print Connection().admin.authenticate("oneapm", "YourPassword")' | \
grep True && \
echo -e "\033[0;32moneapm user - OK\033[0m" || \
echo -e "\033[0;31moneapm user - Missing\033[0m"

更多 MongoDB 用户的创建管理,请访问 MongoDB 官方文档

编辑配置文件

编辑配置文件 conf.d/mongo.yaml,使 Cloud Insight Agent 可以与 MongoDB 通信。

init_config:

instances:
  - server: mongodb://oneapm:YourPassword@localhost:27016
    tags:
      - tag_key1:tag_value1
      - tag_key2:tag_value2
  - server: mongodb://oneapm:YourPassword@localhost:27017
    tags:
      - tag_key1:tag_value1
      - tag_key2:tag_value2

重启 Agent

重启 OneAPM Cloud Insight Agent,使配置生效。

您也可以通过查看 Agent Info 信息,来验证配置是否成功。当出现以下信息,则代表安装成功。

Checks
======

[...]

mongo
-----
  - instance #0 [OK]
  - Collected 8 metrics & 0 events

有关 Agent Info 信息的查看,请访问帮助中心,查看 Cloud Insight Agent 常用操作

常见问题