Docs 菜单
Docs 主页
/
MongoDB Ops Manager
/

将受监控的流程添加到自动化

在此页面上

  • Overview
  • Considerations
  • 先决条件
  • 步骤

MongoDB Ops Manager自动化允许您直接从 控制台部署、重新配置和升级MongoDB MongoDB Ops Manager数据库。

如果MongoDB Ops Manager已经在监控您的MongoDB进程,您可以将它们添加到自动化中。

自动化依赖于MongoDB Agent ,您可以在每台托管要添加到自动化管理的进程的服务器上安装该助手。 MongoDB助手会定期轮询MongoDB Ops Manager ,以确定目标配置并根据需要部署更改。

自动化并不支持所有MongoDB选项,这可能会导致导入尝试失败。 要学习;了解详情,请参阅 MongoDB设置和自动化支持。

添加需要身份验证的MongoDB 部署时,您可以选择导入该进程的用户和角色。 导入期间, MongoDB Ops Manager会提示您解决导入的用户和角色与托管用户和角色之间可能发生的任何冲突。

将 MongoDB 部署添加到自动化中可能会影响 Ops Manager 项目和 MongoDB 部署的安全设置。

  • 自动化启用了项目安全设置。 如果 MongoDB 部署需要身份验证,但 Ops Manager 项目未启用身份验证设置,则当您将 MongoDB 部署添加到自动化时,Ops Manager 会将项目的安全设置更新为新导入部署的安全设置。

    仅当项目的安全设置当前处于禁用状态时,导入过程才会更新 Ops Manager 项目的安全设置。The import process doesn't disable the project's security setting or change its enabled authentication mechanism.

  • 自动化导入 MongoDB 用户和角色。 以下声明适用于 MongoDB 部署需要身份验证或 Ops Manager 项目已启用身份验证设置的情况。

    如果MongoDB部署包含用户或用户定义的角色,您可以选择导入这些用户和角色,以便MongoDB Ops Manager进行管理。 导入的用户和角色适用于MongoDB Ops Manager项目中的所有托管部署。Synced

    • 如果设立项目的 Enforce Consistent Set 值设置为 Yes, MongoDB Ops Manager将从MongoDB部署中删除导入的用户和角色。

    • 如果将项目的Enforce Consistent Set值设置为No,则Ops Manager将停止管理项目中的未导入用户和角色。这些用户和角色保留在 MongoDB 部署中。 要托管这些用户和角色,您必须直接连接到 MongoDB 部署。

    如果不希望 Ops Manager 项目管理特定用户和角色,请在导入期间使用Authentication & UsersAuthentication & Roles页面删除这些用户和角色,然后再确认和部署更改。 要了解更多信息,请参阅管理或取消管理 MongoDB 用户。

    如果导入的 MongoDB 部署在其数据库中已经有mms-backup-agentmms-monitoring-agent admin用户,则导入过程会使用mms-backup-agent mms-monitoring-agentOps Manager 项目中为 和 用户设置的角色覆盖这些用户的角色。

  • 自动化应用于项目中的所有部署。 项目的更新安全设置,包括由Ops Manager项目托管的所有用户和角色,适用于项目中的所有部署,包括导入的MongoDB部署。

    Ops Manager 使用新设置重新启动项目中的所有部署,包括导入的 MongoDB 部署。 导入后,项目中的所有部署在重新启动时都会使用 Ops Manager 自动化密钥文件。

    导入的部署必须使用与目标项目中现有进程相同的密钥文件,否则导入进程可能无法继续。 要了解更多信息,请参阅源集群和目标集群上的身份验证档案。

    如果项目中的现有部署需要与导入进程不同的安全配置文件,请创建一个新项目,可以将源 MongoDB 部署导入其中。

以下示例适用于 MongoDB 部署需要身份验证或 Ops Manager 项目已启用身份验证设置的情况。

如果导入 MongoDB 用户和自定义角色,一旦 Ops Manager 项目开始管理 MongoDB 部署,无论Enforce Consistent Set值如何,都会发生以下情况:

  • Ops Manager 项目启用身份验证,托管导入的用户和角色,并将新用户和角色同步到其所有托管部署。

  • MongoDB 部署的访问控制已启用,需要身份验证。 MongoDB 部署包含 Ops Manager 项目托管的所有用户和角色。这些用户和角色已将Synced设置为Yes

如果不导入 MongoDB 用户和自定义角色,一旦 Ops Manager 项目开始托管 MongoDB 部署,就会发生以下情况:

如果Enforce Consistent Set设立为Yes

  • Ops Manager 项目启用身份验证,并且不会更改其托管用户和角色。

  • MongoDB 部署的访问控制已启用,需要身份验证。

  • Ops Manager 会从部署中删除未导入的 MongoDB 用户和角色。

  • MongoDB 部署包含 Ops Manager 项目托管的所有用户和角色。这些用户和角色已将Synced设置为Yes

如果Enforce Consistent Set设立为No

  • Ops Manager 项目启用身份验证,并且不会更改其安全设置,包括用户和角色。

  • MongoDB 部署的访问控制已启用,需要身份验证。

  • 未导入的MongoDB用户和角色保留在MongoDB 部署中。

  • MongoDB 部署包含由 Ops Manager 项目管理的所有用户和角色。 这些用户和角色已将Synced设置为Yes

  • 确保您的部署满足部署要求。

  • MongoDB Ops Manager当前必须正在监控MongoDB进程,并且MongoDB Agent必须运行。 进程必须显示在MongoDB Ops Manager Deployment 页面上。

    提示

    另请参阅:

    将现有MongoDB进程添加到MongoDB Ops Manager ,以启用MongoDB Ops Manager能够自动执行和监控MongoDB进程(如果MongoDB Ops Manager当前未执行此操作)。

  • 如果在部署上启用 mongod 作为服务,则可能会导致争用情况,因为systemd mongod在重新启动时启动 ,而不是自动化。为防止出现此问题,请确保在将部署添加到自动化之前禁用mongod服务:

    1. 验证是否已启用mongod服务:

      sudo systemctl is-enabled mongod.service
    2. 如果该服务已启用,请将其禁用:

      sudo systemctl disable mongod.service
  • 如果 Ops Manager 项目未启用身份验证设置,但 MongoDB 进程需要身份验证,请为 Ops Manager 项目添加具有适当角色的 MongoDB Agent 用户。导入过程会显示用户所需的角色。 添加的用户将成为项目的 MongoDB 助手用户。

  • 如果 Ops Manager 项目启用了身份验证设置,请将 Ops Manager 项目的 MongoDB Agent 用户添加到 MongoDB 进程。

    • 要查找MongoDB Agent用户,请依次单击 DeploymentsSecurityUsers

    • 要查找 Ops Manager 项目的 MongoDB Agent 用户的密码,请使用以下方法之一:

      按照“添加MongoDB进程”过程中的步骤在用户界面中启动向导。 当到达显示Do you want to add automation to this deployment?的模态窗口时:

      1. 选择 Add Automation and Configure Authentication

      2. 单击 Show Password(连接)。

      使用自动化配置资源端点:

      curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
      --header "Accept: application/json" \
      --include \
      --request GET "<host>/api/public/v1.0/groups/<Group-ID>/automationConfig"

      在首选文本编辑器中打开mmsConfigBackup文件,找到autoPwd值。

      例子

      如果MongoDB Ops Manager项目使用用户名/密码身份验证,请将项目的MongoDB Ops Manager MongoDB助手用户 mms-automation 添加到要导入的MongoDB部署中的 admin数据库。

      db.getSiblingDB("admin").createUser(
      {
      user: "mms-automation",
      pwd: <password>,
      roles: [
      'clusterAdmin',
      'dbAdminAnyDatabase',
      'readWriteAnyDatabase',
      'userAdminAnyDatabase',
      'restore',
      'backup'
      ]
      }
  • 当您在MongoDB Ops Manager下添加集群时, MongoDB Ops Manager会自动启用日志轮换,这可能会与 mongodmongos 日志的现有 logRotate 配置发生冲突。 要防止这种冲突,请执行以下操作:

    • mongodmongos进程禁用logRotate配置。

    • systemLog.logRotatesystemLog.logAppendmongodmongos 进程 配置 中删除 和 选项 ,以使用默认MongoDB Ops Manager 。

  • 导入进程要求源集群和目标集群上的身份验证凭证和密钥文件相同。 要学习;了解更多信息,请参阅源集群和目标集群上的身份验证档案。

  • 要将现有副本集成功导入 Ops Manager,实例必须运行正常。

1
  1. 如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示该页,请从导航栏的 Projects(项目)菜单中选择所需的项目。

  3. 如果尚未出现,请单击侧边栏中的 Deployment(部署)。

  1. 单击 Clusters(集群)视图。

2
3

如果MongoDB部署需要身份验证或MongoDB Ops Manager项目已启用身份验证,则可以导入MongoDB的用户和角色以供MongoDB Ops Manager进行管理。 导入的用户和角色将Synced用于MongoDB Ops Manager项目中的所有部署。

警告

如果MongoDB Ops Manager项目的 Enforce Consistent Set 值为 YES,则任何未导入的用户和角色都将从MongoDB部署中删除。

如果MongoDB Ops Manager项目的 Enforce Consistent Set 值为 No,则任何未导入的用户和角色将保留在MongoDB部署中,并且不受MongoDB Ops Manager 。

要导入用户和角色:

  1. 选中 Yes, import users and roles from this deployment item 以让MongoDB Ops Manager管理这些MongoDB用户和角色。

  2. 单击 Continue(连接)。

注意

将MongoDB Windows服务添加到自动化

如果要将作为 Windows 服务运行的现有 MongoDB 进程添加到自动化,则自动化:

  • 停止并禁用现有服务

  • 创建并启动新服务

4

如果您选择导入MongoDB用户和角色,并且与自动化部署中已有的用户和角色存在一个或多个冲突,则系统会提示您选择应使用哪个版本的用户和角色:

  1. 选择正确的用户或角色。

  2. 单击 Review & Deploy(连接)。

警告

如果选择不解决冲突,则冲突记录将被当前配置覆盖。 任何不冲突的用户都可以稍后导入。 一旦添加的部署处于自动化状态,您就可以为其创建新的用户和角色,或修改现有的用户和角色。

请参阅MongoDB Ops Manager访问权限以了解如何创建或修改用户,请参阅 MongoDB Ops MongoDB Ops Manager角色以了解MongoDB Ops Manager Ops Manager 中的角色列表和定义。

后退

将现有 MongoDB 进程添加到 Ops Manager