暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

如何设置 PMM 来监控MongoDB

原创 由迪 2021-10-23
870

概括

  • 创建 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会话中运行命令,直到下一个数据库实例重新启动。

默认情况下,分析是关闭的,因为它会对数据库服务器的性能产生不利影响。

在配置文件中设置分析

  1. 编辑配置文件(通常是/etc/mongod.conf)。

  2. 创建或将其添加到该operationProfiling部分。(阅读更多。)

    operationProfiling:
      mode: all
      slowOpThresholdMs: 200
      rateLimit: 100 # (Only available with Percona Server for MongoDB.)
    
    复制

    重要的

    这是一个YAML文件。缩进很重要。

  3. 重新启动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 服务。

使用用户界面

  1. 选择  配置→ PMM 库存添加实例 

  2. 选择MongoDB – 添加远程实例

  3. 输入或选择字段的值。

  4. 单击添加服务



在命令行上

用于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证书。

检查服务

使用用户界面

  1. 选择  配置→ PMM 库存库存清单 
  2. 在“服务”选项卡中查找匹配的服务类型(MongoDB)、服务名称地址以及添加服务时使用的任何其他值。
  3. 查看“代理”选项卡以检查正在使用的所需数据源。
  4. 如果您的 MongoDB 实例配置为使用 TLS,请单击将TLS 用于数据库连接复选框并填写 TLS 证书和密钥。
    1. 如果您使用 TLS,身份验证机制将自动设置为MONGODB-X509



在命令行上

在此命令的输出中查找您的服务。

pmm-admin inventory list services --service-type=mongodb
复制

检查数据

  1. 打开MongoDB 实例概览仪表板。
  2. 服务名称设置为新添加的服务。

查询分析

  1. 打开PMM 查询分析
  2. 过滤器面板中:
    1. 服务名称下,选择您的服务。
    2. 服务类型下选择mongodb

移除服务

使用用户界面

  1. 选择  配置→ PMM 库存库存清单 
  2. 在第一列中,单击要删除的服务的复选框。
  3. 点击  删除
  4. 在“确认操作”对话框窗口中:
    1. (可选)选择强制模式也可以删除关联的代理。
    2. 单击继续

在命令行上

pmm-admin remove mongodb SERVICE_NAME
复制
  • SERVICE_NAME:服务添加的名称。(用 找到它pmm-admin list。)

也可以看看

  •  页面更新 2021-09-10
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论