概括
- 创建 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 mycluster
MongoDB 集群摘要仪表板的选项分别添加每个节点以正确填充。 - 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