Docs 菜单
Docs 主页
/
MongoDB Ops Manager
/

自动化

在此页面上

  • 自动化功能仅在 64 位架构上运行
  • 使用自己的硬件
  • 网络
  • 自动化配置
  • 大小调整
  • 频繁的连接超时
  • 部署
  • MongoDB 助手权限
  • 移除有问题的 MongoDB 主机
  • 确保 TLS 证书包含主题备用名称
  • 将配置文件存储在现有集群的内存中

Ops Manager 自动化允许您使用 Ops Manager 用户界面来部署、配置和管理 MongoDB 部署。Ops Manager 自动化依赖于 MongoDB 助手,该助手必须安装在每台服务器上的部署中。MongoDB 助手定期轮询 Ops Manager 服务以确定当前目标,并不断向 Ops Manager 报告其状态。

Ops Manager 仅提供 MongoDB 助手的 64 位下载文件。

  • 如果您手动部署自动化,请确保每台服务器上都有一个 MongoDB 助手。

  • 如果手动部署代理,则必须创建 MongoDB 的 dbPath 和 MongoDB 二进制文件的目录,并确保运行代理的用户拥有这些目录。

    如果您使用 rpm 包进行安装,助手以 mongod 用户身份运行;如果使用 deb 包,助手以 mongodb 用户身份运行。如果使用 tar.gz 压缩包文件进行安装,您可以作为任何用户运行助手。

所有主机都必须能够允许 MongoDB 端口之间的通信。 默认值为27017 ,但您可以在 Ops Manager 界面中配置备用端口范围。

MongoDB Agent必须MongoDB Ops Manager 能够通过端口8080 (HTTP ) 或端口8443 ( HTTPS ) 连接到 。有关访问权限端口和IP地址的更多信息,请参阅安全概述。

执行滚动更新时, MongoDB Agent会尝试避免停机。 它需要从集群的其他成员收集状态。 连接问题( mongodmongos之间),例如主机名解析或防火墙配置错误,可能会阻止MongoDB Agent确定远程进程状态并完成更改。

确保集群的所有成员都能相互通信:

  1. 对于非分片集群:

    1. 登录到每个mongod

    2. 从该mongod主机登录到副本集的所有其他节点。

  2. 对于分片集群:

    1. 登录到每个mongod

    2. 从该mongod主机登录该分片的所有其他节点。

    3. 登录到每个mongos

    4. 由此, mongos主机:

      1. 登录其他mongos主机。

      2. 登录到每个分片的所有其他节点。

MongoDB 助手每 10 秒从每个集群节点中收集状态,以确保环境处于预期状态。作为该评估的一部分,MongoDB Agent 创建一个连接,检查某些文件以确定状态,然后关闭该连接。这些频繁的短暂连接是 MongoDB 助手日常活动的一部分,应该不会影响性能。

在完成自动化配置后,确保部署计划满足您的部署需求。在确认部署之前,检查主机名和端口。

  • 确保为主机配置足够的空间来运行 MongoDB 并支持数据集的要求。

  • 确保您预配足够数量的主机来运行部署。 每个mongod都应在自己的主机上运行。

由于以下一个或多个原因,MongoDB 助手可能会经常出现连接超时:

  • 连接超时

  • 高网络延迟

  • 服务器负载过高

  • 大型 SSL 密钥

  • CPU 速度不足

默认情况下,连接在 40 秒后超时。MongoDB 建议逐渐增加 dialTimeoutSeconds MongoDB 助手配置设置值,以防止连接频繁地过早超时。不过,增加该值也会增加部署将来配置更改所需的时间。尝试小幅增加值,直到确定部署的最佳值。

要了解更多信息,请参阅 MongoDB 助手连接设置中的 dialTimeoutSeconds

在某些条件适用时,将出现一个显示 We have detected a potential problem while deploying...(我们在部署时检测到一个潜在问题...)横幅。以下是一些示例。

如果您已添加或重新启动部署,并且部署保持 In Progress(进行中)状态几分钟,则会显示该横幅。

此时,您有 4 个选择:

  1. 单击 View Diagnostics(连接)。

    View Diagnostics(查看诊断)模式窗口显示部署期间可能出现的任何错误。

  2. 单击 View Status(连接)。

    Automation Status模态显示部署进程、上次报告部署状态的时间、尝试完成的任务以及部署状态。

    要了解关于任何单个进程状态的更多信息,您可以单击省略号图标并选择View DetailsView Agent Logs

    • View Details 显示该流程的部署计划是什么以及 MongoDB 助手当前处于该计划的哪个阶段。

    • View Agent Logs 打开新的浏览器窗口,其中显示 Deployment(部署)> Agents(助手)> Agent Logs(助手日志)屏幕,并且默认显示 MongoDB 助手日志内容。单击 View(查看)菜单以选择不同的助手日志。

  3. 单击 View Agent Logs(连接)。

    打开新的浏览器窗口,其中显示 Deployment > Agents > Agent Logs 屏幕,并且默认显示 MongoDB 助手日志内容。单击 View 菜单以选择不同的助手日志。

  4. 单击 Allow Override & Edit Configuration(连接)。

    如果诊断出错误并需要更正部署配置,请按照以下步骤编辑部署。

如果关闭部署并且仍找不到解决方案,请从 Ops Manager 中删除部署

如果 MongoDB 助手的自动化模块无法与 Ops Manager 应用程序 API endpoint 或 MongoDB Server 进程通信,Ops Manager 会在项目中显示警告横幅。您可以通过以下两种方式之一解决此问题,具体取决于您是否希望 MongoDB 助手进行通信:

如果 MongoDB 助手应与 Ops Manager 主机或 MongoDB 实例进行通信,请为每个 MongoDB 助手确认以下内容:

  1. 助手已在每台主机上启动并运行。

  2. 助手和MongoDB Ops Manager应用程序API端点可以通信。

如果 MongoDB 助手的自动化模块应与 Ops Manager 应用程序 API endpoint 或 MongoDB Server 进程进行通信,请为每个自动化 MongoDB Server 部署确认以下内容:

  1. 单击警告横幅中的 Allow Editing & Override Current Configuration 链接。

  2. 删除主机上运行的为不需要的 MongoDB 助手提供服务的所有进程mongodmongos )。

权限问题可能导致自动化功能无法完成更改。如果 View Status(查看状态)或 View Diagnostics(查看诊断)报告与权限相关的错误(例如 open /data/db/mongod.lock: permission denied ),请确保 MongoDB 助手用户拥有 dbpathlogpath 文件并具有它们的读写权限。

您可以使用控制台或 API 将过时、损坏或有问题的主机从自动化中移除。这可能包括无法访问 MongoDB 助手的情况。

要使用控制台删除有问题的主机,请执行以下操作:

  1. 导航到您的项目。

  2. 单击 Servers(连接)。

  3. 找到有问题的主机。

  4. 单击 ,然后单击 Remove Server(移除服务器)。

    Ops Manager 将显示 Are you sure you want to remove this server>(是否确实要删除该服务器?)模式窗口。

  5. 如果要删除此服务器,请在 Enter the host name 字段中输入提供的主机名,然后单击 Remove

    警告

    当您点击 Remove 时,Ops Manager 会删除该主机的所有监控数据。Ops Manager 不会对此操作提供确认或取消。

    如果您不想删除服务器,请单击 Cancel

  6. 单击 Review & Deploy 查看您所做的更改。

    Ops Manager 会显示建议进行的更改。

    • 如果满意,请单击 Confirm & Deploy(确认和部署)。

      Ops Manager 此时删除所有进程和助手。

    • 如果要进一步更改配置,请单击Cancel

要使用 API 删除有问题的主机,请执行以下操作:

  1. 获取当前的自动化配置。

  2. 编辑自动化配置 JSON 文件。

  3. 进程副本集中删除过时的节点。

  4. 更新自动化配置文件。

  5. 等待几分钟。

  6. 检查 Agents(助手)视图。

  7. 确认主机不再显示在助手列表中。

警告

从 11.12.0.7384 版本开始,MongoDB 助手要求 TLS 证书在“主题备用名称”字段中包含一个值。在升级到 11.12.0.7384 之前,确保 MongoDB 部署中使用的所有 TLS 证书包含 SAN[1]

[1] MongoDB使用MongoDB Agent Go语言编写了 。Go1.17 删除了使用 X.509 CommonName 字段作为主机名 的功能 当 SAN 不存在时。当客户端验证 TLS 证书时,客户端会根据证书的 SAN 或主题标识名 (DN) 字段中的值检查证书适用的主机名。在创建TLS证书时,有些人会使用主题公用名 (CN) 字段来存储主机名。 CN 有其局限性,因此不适合用来存储主机名。 这些限制包括64个字符的最大长度,并且不支持名称限制。 RFC2818 在 5 月弃用了使用 CN2000 存储主机名的方式。如果证书的SAN字段中没有值,该 RFC 会要求客户端回退到 CN。 RFC6125 删除了2011 .Go1 中的要求。15禁用对 RFC2818 的遵守 并使用 RFC6125 将 CN 设置为可选的做法。实际上,此更改要求您添加SAN值或启用 CNs.Go 1 。 17 删除了在不存在 SAN 的情况下使用 CN 的变通方法。在当前版本的MongoDB Agent 助手中,您 必须 使用 SAN 。要了解更多信息,请参阅 Fraser Tweedale 关于此主题的博文

如果您使用的是 Ops Manager version 4.2 或版本 4.4.0 - 4.4.6、在将 enableLocalConfigurationServer 设置为 true 并重新启动 MongoDB 助手时可能会遇到错误。

该问题仅影响在创建后将 enableLocalConfigurationServer 设置为 true 的现有集群。如果在创建集群之前设置该值,则不会触发该问题。

要安全地更改现有集群的此设置,请执行以下操作:

  1. 在 MongoDB 助手配置文件末尾,添加:

    enableLocalConfigurationServer=true
  2. 关闭 MongoDB 助手管理的每个进程。

  3. 通过运行以下命令重新启动 MongoDB 助手:

    service mongodb-mms-automation-agent restart
  4. 重新启动已关闭的 MongoDB 进程。

  5. 验证automation-mongod.conf文件是否具有__rest扩展指令。

有关在内存中存储配置文件的更多信息,请参阅配置 MongoDB 助手管理配置文件和密码的方式

后退

身份验证