Skip to content

pt-mongodb-summary

收集 MongoDB 集群的信息,从多个数据源汇总给出集群概览。

语法

bash
pt-mongodb-summary [OPTIONS] [HOST:[PORT]]

不带参数运行时,默认尝试连接 localhost 的 27017 端口。 工具通过执行管理命令并格式化输出来收集 MongoDB 实例信息。

注意

  • 运行用户需要具有 clusterAdminroot 内置角色。
  • 无法从要求 SSL 连接的 MongoDB 实例收集统计信息。
  • 为获得更好的结果,host 应该是 mongos 服务器。

用法示例

以下命令假定 MongoDB 在本机 localhost:27017 可达;需指定远程时用 --host/--port、位置参数 HOST:PORT--uri(完整 URI 不能同时与 --host/--port 混用)。建议通过 -u 用户名 -p(不带值交互询问)提供认证,避免命令里出现明文密码。命令可直接复制,替换主机与端口即可。

场景:本机默认概览

日常巡检直接跑,汇总本机实例与集群状态:

bash
pt-mongodb-summary

场景:指定远程主机端口

连指定 IP 与端口的 mongos 节点做概览(host 用 mongos 结果最佳):

bash
pt-mongodb-summary --host 10.0.0.1 --port 27017

场景:用 URI 连接

用完整 MongoDB URI 连接,密码不放命令里(由配置或密钥管理提供):

bash
pt-mongodb-summary --uri=mongodb://user@10.0.0.1:27017

场景:JSON 输出便于采集

把概览导出为 JSON,方便接入 CMDB 或监控:

bash
pt-mongodb-summary --uri=mongodb://10.0.0.1:27017 -f json

场景:调整运行中操作采样

延长采样间隔、增加采样次数,得到更稳的 Running Ops 统计:

bash
pt-mongodb-summary --running-ops-samples 10 --running-ops-interval 2000

场景:带认证的用户名连接

指定账号与认证库连接(密码交互输入):

bash
pt-mongodb-summary --host 10.0.0.1 -u analyst -p -a admin

选项

选项说明
-a, --authenticationDatabase用于建立凭据和权限的数据库,默认 admin
-c, --no-version-check运行报告前不检查 MongoDB 版本
-f, --output-format输出格式:textjson,默认 text
-h, --help显示帮助并退出
--host要连接的 MongoDB 服务器主机名或 IP
-i, --running-ops-interval运行中操作采样间隔(毫秒),默认 1000
-l, --log-level日志级别:panicfatalerrorwarninfodebug,默认 error
-p, --password认证密码;选项与值之间不加空格(-p<password>);不带值时交互式询问
--port要连接的 MongoDB 服务器端口
-s, --running-ops-samples运行中操作的采样次数,默认 5
--sslCAFile用于认证的 SSL CA 证书文件路径
--sslPEMKeyFile用于认证的 SSL 客户端 PEM 文件路径
--uri完整 MongoDB URI(描述主机与选项)。命令行选项优先于 URI 设置;提供完整 URI 时不能同时指定 --host--port。例:mongodb://admin:secret@localhost:27017
-u, --username认证用户名
-v, --version显示版本信息并退出

输出说明

输出分为以下部分(各部分均由相应的管理命令汇总而来):

  • Instances:列出连接到当前实例的所有主机。通过 listShards 命令及对每个实例执行 replSetGetStatus,收集其 ID、类型与副本集。
  • This host:当前 MongoDB 实例及底层操作系统的概览,汇总自 hostInfogetCmdLineOptsserverStatus 以及 OS 进程信息。
  • Running Ops:insert、query、update、delete、getMore、command 操作计数的最小/最大/平均值, 通过以固定间隔(每秒)运行 5 次 serverStatus 获得。
  • Security:安全设置信息,解析 getCmdLineOpts 输出并查询 admin.system.usersadmin.system.roles 集合。
  • Oplog:oplog 详情。收集集群中每个主机的 oplog 统计,返回 TimeDiffHours 最小的那个。
  • Cluster wide:分片与非分片数据库、集合的数量和大小。通过 listDatabases 以及对每个库的每个集合执行 collStats 获得。

其他信息

  • 作者:Carlos Salguero

  • 通用说明:已知问题的反馈方式、PTDEBUG 调试安全提示、系统要求基线,见 通用说明

更多细节请阅读 官方文档

Percona Toolkit 中文文档 · 社区维护的第三方学习站