Cloud Manager 自动化允许您使用 Cloud Manager 用户界面来部署、配置和托管 MongoDB 部署。Cloud Manager 自动化依赖于 MongoDB 代理,该代理必须安装在部署中的每台服务器上。MongoDB 代理会定期轮询 Cloud Manager 服务以确定当前目标,并不断向 Cloud Manager 报告其状态。
自动化功能仅在 64 位架构上运行
Cloud Manager 仅提供 MongoDB Agent 的 64 位下载。
使用自己的硬件
如果您手动部署自动化,请确保每台服务器上都有一个 MongoDB 助手。
如果手动部署代理,则必须创建 MongoDB 的
dbPath和 MongoDB 二进制文件的目录,并确保运行代理的用户拥有这些目录。如果您使用
rpm包进行安装,助手以mongod用户身份运行;如果使用deb包,助手以mongodb用户身份运行。如果使用tar.gz压缩包文件进行安装,您可以作为任何用户运行助手。
网络
与 MongoDB 端口的连接
所有主机必须能够允许 MongoDB 端口之间的通信。 默认值为27017 ,但您可以在 Cloud Manager 界面中配置备用端口范围。
MongoDB Agent必须能够通过端口 443 ( HTTPS ) 连接到 cloud.mongodb.com。 有关访问权限端口和IP地址的更多信息,请参阅安全概述。
集群内连接问题
执行滚动更新时, MongoDB Agent会尝试避免停机。 它需要从集群的其他成员收集状态。 连接问题( mongod和mongos之间),例如主机名解析或防火墙配置错误,可能会阻止MongoDB Agent确定远程进程状态并完成更改。
确保集群的所有成员都能相互通信:
频繁的自动化连接
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 个选择:
单击 View Diagnostics(连接)。
View Diagnostics(查看诊断)模式窗口显示部署期间可能出现的任何错误。
单击 View Status(连接)。
Automation Status模态显示部署进程、上次报告部署状态的时间、尝试完成的任务以及部署状态。 您可以通过以下方式筛选结果:
在Filter processes搜索栏中输入主机名。
从 Process Type 下拉菜单中选择一个或多个流程类型。
从 Automation State 下拉菜单中选择一个或多个自动化状态。
要了解关于任何单个进程状态的更多信息,您可以单击省略号图标并选择View Details或View Agent Logs 。
View Details 显示该流程的部署计划是什么以及 MongoDB 助手当前处于该计划的哪个阶段。
View Agent Logs 打开新的浏览器窗口,其中显示 Deployment(部署)> Agents(助手)> Agent Logs(助手日志)屏幕,并且默认显示 MongoDB 助手日志内容。单击 View(查看)菜单以选择不同的助手日志。
单击 View Agent Logs(连接)。
打开新的浏览器窗口,其中显示 Deployment > Agents > Agent Logs 屏幕,并且默认显示 MongoDB 助手日志内容。单击 View 菜单以选择不同的助手日志。
单击 Allow Override & Edit Configuration(连接)。
如果诊断出错误并需要更正部署配置,请按照以下步骤编辑部署。
如果关闭部署后仍无法找到解决方案,请从 Cloud Manager中删除该部署。
MongoDB 助手已关闭或未通信
如果 MongoDB Agent 的自动化模块无法与 Cloud Manager API endpoint或 MongoDB Server 进程通信,Cloud Manager 会在项目中显示警告横幅。您可以通过以下两种方式之一解决此问题,具体取决于您是否希望 MongoDB 代理进行通信:
MongoDB 助手需要通信
如果 MongoDB Agent 应与 Cloud Manager 主机或 MongoDB 实例通信,请为每个 MongoDB Agent 确认以下内容:
MongoDB 助手不需要通信
如果 MongoDB 助手的自动化模块应与 Cloud Manager API endpoint或 MongoDB Server 进程通信,请为每个自动化 MongoDB Server 部署确认以下内容:
单击警告横幅中的 Allow Editing & Override Current Configuration 链接。
MongoDB 助手权限
权限问题可能导致自动化功能无法完成更改。如果 View Status(查看状态)或 View Diagnostics(查看诊断)报告与权限相关的错误(例如 open /data/db/mongod.lock:
permission denied ),请确保 MongoDB 助手用户拥有 dbpath 和 logpath 文件并具有它们的读写权限。
移除有问题的 MongoDB 主机
您可以使用控制台或 API 将过时、损坏或有问题的主机从自动化中移除。这可能包括无法访问 MongoDB 助手的情况。
要使用控制台删除有问题的主机,请执行以下操作:
在MongoDB Cloud Manager中,转到项目的Processes 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Database 标题下的 Processes。
显示“进程”页面。
删除托管。
找到有问题的主机。
单击 ,然后单击 Remove Server(移除服务器)。
Cloud Manager 显示Are you sure you want to remove this server>模态。
如果要删除此服务器,请在 Enter the host name 字段中输入提供的主机名,然后单击 Remove。
警告
当您点击Remove时,Cloud Manager 会删除该主机的所有监控数据。Cloud Manager 不会对此操作进行确认或取消。
如果您不想删除服务器,请单击 Cancel。
单击 Review & Deploy 查看您所做的更改。
Cloud Manager 会显示您建议的更改。
如果满意,请单击 Confirm & Deploy(确认和部署)。
Cloud Manager 此时会删除所有进程和代理。
如果要进一步更改配置,请单击Cancel。
要使用 API 删除有问题的主机,请执行以下操作:
编辑自动化配置 JSON 文件。
等待几分钟。
在MongoDB Cloud Manager中, Go项目的 Agents 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Database 标题下的 Agents。
显示“代理”页面。
确认主机不再显示在助手列表中。
确保 TLS 证书包含主题备用名称
警告
从11.11.0.7349-1 版本开始,MongoDB 助手要求TLS证书在“主题备用名称”字段中包含一个值。 在升级到MongoDB Agent 11.11.0.7355或更高版本之前,请确保 MongoDB 部署中使用的所有TLS证书都包含SAN 。[1]
| [1] | MongoDB用Go语言编写了MongoDB 助手。 Go1.17 删除了在不存在 SAN 时使用 X.509 CommonName字段作为主机名 的能力。当客户端验证 TLS 证书时,客户端会从以下字段中的值检查证书应用的主机名: cert 的 SAN 或主题标识名 (DN) 字段。在创建 TLS 证书时,有些人会使用主题公用名 (CN)字段来存储主机名。CN 有其局限性,因此不适合用来存储主机名。这些限制包括最大长度为 64 个字符,并且不支持名称限制。RFC 2818 已于 2000 5 月弃用使用 CN存储主机名的功能。如果证书的SAN字段中没有值,该 RFC 会要求客户端回退到 CN。RFC 6125 删除了 2011 中的要求。Go1。15禁用对RFC 2818的遵守,并使用将 CN 设为可选的RFC 6125实践。实际上,此更改要求您添加 SAN 值或启用CN 的使用。Go1。17删除了在不存在 SAN 的情况下使用 CN 的变通方法。在当前版本的 MongoDB 助手中,您必须使用SAN。了解更多信息,请参阅Fraser Tweedale 关于此主题的博文 |
将配置文件存储在现有集群的内存中
如果您使用的是 Cloud Manager 版本 4.2 或版本 4.4.0 - 4.4.6、 将enableLocalConfigurationServer设置为true并重新启动 MongoDB 助手时,您可能会遇到错误。
该问题仅影响在创建后将 enableLocalConfigurationServer 设置为 true 的现有集群。如果在创建集群之前设置该值,则不会触发该问题。
要安全地更改现有集群的此设置,请执行以下操作:
在 MongoDB 助手配置文件末尾,添加:
enableLocalConfigurationServer=true 关闭 MongoDB 助手管理的每个进程。
通过运行以下命令重新启动 MongoDB 助手:
service mongodb-mms-automation-agent restart 重新启动已关闭的 MongoDB 进程。
验证
automation-mongod.conf文件是否具有__rest扩展指令。
有关在内存中存储配置文件的更多信息,请参阅配置 MongoDB 助手管理配置文件和密码的方式。