概括
- 创建 PMM 帐户并设置权限。
- 配置分析。
- 添加服务。
- 检查服务。
在你开始之前
检查:
- PMM 服务器安装并运行,具有可从客户端节点访问的已知 IP 地址或主机名。
- PMM 客户端已安装,节点已注册到 PMM 服务器。
- 您在客户端主机上拥有超级用户 (root) 访问权限。
- 您对
adminUserAnyDatabase要监视的任何数据库服务器具有或超级用户角色权限。 - 您的 MongoDB 服务器版本为 4.0 或更高版本。
创建 PMM 帐户并设置权限
我们建议使用专用帐户将 PMM 客户端连接到受监控的数据库实例。
此示例创建一个具有查询分析器所需权限的新自定义角色,并添加具有该角色和内置角色的数据库用户clusterMonitor。
用户名 ( user) 和密码 ( pwd) 的值是示例。在使用此代码之前替换它们。
在mongo会话中运行它。
db.getSiblingDB("admin").createRole({
role: "explainRole",
privileges: [{
resource: {
db: "",
collection: ""
},
actions: [
"listIndexes",
"listCollections",
"dbStats",
"dbHash",
"collStats",
"find"
]
}],
roles:[]
})
db.getSiblingDB("admin").createUser({
user: "pmm_mongodb",
pwd: "password",
roles: [
{ role: "explainRole", db: "admin" },
{ role: "clusterMonitor", db: "admin" },
{ role: "read", db: "local" }
]
})
剖析
要使用 PMM 查询分析,您必须打开 MongoDB 的分析功能。
您可以设置分析:
- 永久,通过编辑 MongoDB 配置文件并重新启动数据库实例(推荐);
- 启动 MongoDB 时,通过
mongod在命令行上传递参数; - 通过在
mongo会话中运行命令,直到下一个数据库实例重新启动。
默认情况下,分析是关闭的,因为它会对数据库服务器的性能产生不利影响。
在配置文件中设置分析
编辑配置文件(通常是
/etc/mongod.conf)。创建或将其添加到该
operationProfiling部分。(阅读更多。)operationProfiling: mode: all slowOpThresholdMs: 200 rateLimit: 100 # (Only available with Percona Server for MongoDB.)重要的
这是一个YAML文件。缩进很重要。
重新启动
mongod服务。(例如systemd。)systemctl restart mongod
在命令行上设置分析
mongod --dbpath=DATABASEDIR --profile 2 --slowms 200 --rateLimit 100
--dbpath: 数据库文件的路径(通常是/var/lib/mongo)。--profile:MongoDB 分析级别。值2告诉服务器收集所有操作的分析数据。要降低服务器上的负载,请使用 的值1来仅记录慢速操作。--slowms:如果操作的运行时间超过此毫秒数,则该操作被归类为慢速操作。--rateLimit:(仅适用于 Percona Server for MongoDB。)分析查询的采样率。100每 100次快速查询的均值样本。(阅读更多。)警告
较小的值会提高准确性,但可能会对服务器的性能产生不利影响。
在mongo会话中设置分析
在mongo会话中,应该为每个数据库启用分析器。例如,要在 中启用探查器testdb,请运行以下命令:
use testdb
db.setProfilingLevel(2, {slowms: 0})
如果您已经添加了一个服务,您应该删除它并在更改分析级别后重新添加它。
添加服务
配置数据库服务器后,您可以使用用户界面或命令行添加 MongoDB 服务。
使用用户界面
选择 配置→ PMM 库存→添加实例。
选择MongoDB – 添加远程实例。
输入或选择字段的值。
单击添加服务。
在命令行上
用于pmm-admin使用以下示例命令之一将数据库服务器添加为服务。
成功后,PMM 客户端将打印MongoDB Service added服务的 ID 和名称。使用--environment和-custom-labels选项为服务设置标签以帮助识别它们。
提示
- 添加分片集群的节点时,使用
--cluster myclusterMongoDB 集群摘要仪表板的选项分别添加每个节点以正确填充。 - Atlas 不支持直接连接。连接到 Atlas 实例时,请使用
pmm-admin选项--direct-connection=false。(这样做会阻止副本集状态工作,并且 MongoDB 概览仪表板小部件将显示无效值。)
例子
pmm-admin add mongodb \
--username=pmm_mongodb --password=password \
--query-source=profiler --cluster=mycluster
pmm-admin add mongodb \
--username=pmm_mongodb --password=password \
mongo 127.0.0.1:27017
pmm-admin add mongodb \
--username=pmm_mongodb --password=password \
--service-name=mymongosvc --host=127.0.0.1 --port=27017
通过 UNIX 套接字连接
pmm-admin add mongodb --socket=/tmp/mongodb-27017.sock
通过 SSL/TLS 连接
pmm-admin add mongodb --tls \
--tls-certificate-key-file=PATHTOCER \
--tls-certificate-key-file-password=IFPASSWORDTOCERTISSET \
--tls-ca-file=PATHTOCACERT
--authentication-mechanism=AUTHENTICATION-MECHANISM
--authentication-database=AUTHENTICATION-DATABASE
在哪里:
PATHTOCERT: TLS 证书文件的路径。IFPASSWORDTOCERTISSET: TLS 证书文件的密码。PATHTOCACERT: 证书颁发机构文件的路径。AUTHENTICATION-MECHANISM: 认证机制。默认为空。使用MONGODB-X509的SSL证书。AUTHENTICATION-DATABASE: 认证数据库。默认为空。使用$external的SSL证书。
检查服务
使用用户界面
- 选择 配置→ PMM 库存→库存清单。
- 在“服务”选项卡中查找匹配的服务类型(MongoDB)、服务名称、地址以及添加服务时使用的任何其他值。
- 查看“代理”选项卡以检查正在使用的所需数据源。
- 如果您的 MongoDB 实例配置为使用 TLS,请单击将TLS 用于数据库连接复选框并填写 TLS 证书和密钥。
- 如果您使用 TLS,身份验证机制将自动设置为
MONGODB-X509。
- 如果您使用 TLS,身份验证机制将自动设置为
在命令行上
在此命令的输出中查找您的服务。
pmm-admin inventory list services --service-type=mongodb
检查数据
- 打开MongoDB 实例概览仪表板。
- 将服务名称设置为新添加的服务。
查询分析
- 打开PMM 查询分析。
- 在过滤器面板中:
- 在服务名称下,选择您的服务。
- 在服务类型下选择
mongodb。
移除服务
使用用户界面
- 选择 配置→ PMM 库存→库存清单。
- 在第一列中,单击要删除的服务的复选框。
- 点击 删除。
- 在“确认操作”对话框窗口中:
- (可选)选择强制模式也可以删除关联的代理。
- 单击继续。
在命令行上
pmm-admin remove mongodb SERVICE_NAME
SERVICE_NAME:服务添加的名称。(用 找到它pmm-admin list。)
也可以看看
- 页面更新 2021-09-10






