Docs 菜单
Docs 主页
/
MongoDB Ops Manager
/ /

配置高可用性 Ops Manager 应用程序

在此页面上

  • Considerations
  • 负载均衡器
  • Ops Manager 应用程序数据库的副本集
  • gen.key 文件
  • 升级模式
  • 多区域部署的性能
  • 先决条件
  • 步骤
  • 使用 Ops Manager 应用程序主机池配置负载均衡器。
  • 配置 Ops Manager 以使用负载均衡器。
  • 使用复制主机信息更新每个 Ops Manager 应用程序主机。
  • 将 MongoDB 助手配置文件中的 Ops Manager URL 更改为负载均衡器 URL
  • 启动其中一个 Ops Manager 应用程序。
  • gen.key 文件复制到每个 Ops Manager 主机。
  • 启动其余的 Ops Manager 应用程序。
  • 更多信息

MongoDB Ops Manager应用程序通过在负载负载均衡器器后面使用多个MongoDB Ops Manager 应用程序服务器以及使用 副本集 托管Ops Manager Application Database 来提供高可用性。

Ops Manager 应用程序的组件在请求之间是无状态的。只要所有服务器都从同一个 Ops Manager 应用程序数据库读取数据,任何 Ops Manager 应用程序服务器都可以处理请求。如果一个 Ops Manager 应用程序不可用,则另一个应用程序会处理请求。

要利用此功能实现高可用性,请配置您选择的负载均衡器,在 Ops Manager 应用程序主机池之间实现平衡。要在 Ops Manager 中实现此目标,请执行以下操作:

Ops Manager 应用程序使用客户端的 IP 地址进行审核、日志记录并为 API 设置访问列表

配置并启动负载均衡器后,您不应通过单个主机 URL 登录 Ops Manager 应用程序。

注意

要禁止访问每个 Ops Manager 应用程序服务器,请相应地配置防火墙规则。

例子

如果您有两个 Ops Manager 主机为以下 URL 提供服务:

  • ops1.example.com

  • ops2.example.com

并将它们放在以下 URL 的负载平衡器后面:

  • opsmanager.example.com

配置并启动该负载均衡器后,不应登录 ops1.example.com,而应登录 opsmanager.example.com

注意

如果您使用配置文件设置这些参数,请将 mms.remoteIp.header 更改为负载均衡器的 URL,将 mms.centralUrl 更改为 Ops Manager 主机和端口的 URL

MongoDB Ops ManagerMongoDB Ops ManagerHTTP如果将 42配置为在 或 HTTPS 负载均衡器后面使用多个 应用程序服务器并使用 文件系统快照 ,则 FCV . 或更高版本的备份快照作业会在一台或多台服务器上并行运行。确保每个MongoDB Ops Manager服务器上都安装了共享文件系统。 MongoDB Ops Manager应用程序服务器可能会打开并写入相同文件的不同偏移量。 确保共享文件系统允许此操作。 否则,您将遇到访问错误。

要为 Ops Manager 提供生成诊断存档的时间,请将负载平衡器的 HTTP idle timeout 参数设置为 180 秒。

所有负载均衡设备都必须支持 7 OSI 模型的(应用程序层)。

部署副本集而不是独立运行的副本集来托管Ops Manager Application Database 。 如果 主 节点不可用,副本集将进行自动 故障转移

如果副本集在多个设施中有成员,请确保单个设施有足够的票数来选举主节点(如果需要)。 选择托管核心应用程序系统的设施。 将大多数有投票权的节点和所有可以成为主节点的节点放置在该设施中。 否则,网络分区可能会阻止集合形成多数。 有关副本集如何选举主节点的详细信息,请参阅副本集选举。

您可以使用文件系统快照备份副本集。文件系统快照使用系统级工具来创建保存副本集数据文件的设备的副本。

要部署托管 Ops Manager 应用程序数据库的副本集,请参阅“后端 MongoDB 实例”。

gen.key 文件是一个 24 字节的二进制文件,用于对 Ops Manager 的后端数据库和用户凭证进行加密和解密。相同的 gen.key 文件必须存储在属于高可用性 Ops Manager 部署的每台服务器上。

gen.key 文件可以自动或手动生成。

要让 Ops Manager 生成该文件,请执行以下操作:
启动一台Ops Manager 服务器。如果不存在,Ops Manager 将创建一个gen.key文件。
要手动创建文件:

生成 24 字节的二进制文件。

例子

以下使用 openssl 创建 gen.key 文件:

openssl rand 24 > /<keyPath>/gen.key

像保护任何敏感文件一样保护gen.key文件。 将所有者更改为用户运行 Ops Manager,并将文件权限设置为仅所有者的读写权限。

获得 gen.key 文件(自动或手动创建)后,启动其他 Ops Manager 服务器,将该文件复制到当前服务器上的相应目录和其他 Ops Manager 服务器上的相应目录:

  • /etc/mongodb-mms/ 用于 RPM 或 Ubuntu 安装包

  • ${HOME}/.mongodb-mms/ 用于存档 (.tar) 文件安装包

重要

  • 存储gen.key文件的任何共享存储资源都应配置为高度可用性,以免引入潜在的单点故障。

  • 任何未安装 gen.key 文件的 Ops Manager 服务器都无法连接到后端数据库并成为 HA Ops Manager 实例的一部分。

  • 在第一个 Ops Manager 服务器上为 Ops Manager 实例生成 gen.key 后,将 gen.key 文件备份到安全位置。

如果安装了 Ops Manager,且有多个 Ops Manager 主机指向同一应用程序数据库,则可以将 Ops Manager 升级至较新版本,而不会导致监控停机。完成高可用 Ops Manager 部署的一台 Ops Manager 主机的升级后,该部署将进入称为升级模式的状态。在此状态下,Ops Manager 在升级期间可用。此模式的优点是在整个升级过程中:

  • 警报和监控运行

  • Ops Manager 实例会保持活动状态

  • Ops Manager 应用程序可以以只读模式访问

  • 写入或删除数据的 Ops Manager API 已禁用

Ops Manager 实例会保持为升级模式,直到所有 Ops Manager 主机均已升级并重启。您不应一次升级多于一台 Ops Manager 主机。

应用程序数据库和 Ops Manager 实例的地理分布可能会影响 Ops Manager 应用程序的性能。

如果您计划跨多个区域复制应用程序数据库,请考虑许多 Ops Manager 写入工作负载操作使用 w:2 写关注,而这需要副本集的主节点和一个从节点对每个写操作进行确认。

因此,如果在与主节点相同的区域内拥有应用程序数据库的副本集从节点,则可能获得更好的读写性能。

例如,与以 2-1 的方式在两个地区部署三个应用程序数据库副本集成员相比,以 1-1-1 的方式在三个地区部署三个应用程序数据库副本集成员可能会导致性能更差,其中一个地区托管两个应用程序数据库副本集成员,另一个地区托管第三个副本集成员。

如果您连接的 Ops Manager 应用程序实例部署在与应用程序数据库副本集的应用程序数据库主节点成员相同的区域中,则 Ops Manager 用户界面会有更好的性能。

换言之,您可以通过连接到与副本集的应用程序数据库主要成员位于同一地区的 Ops Manager 应用程序实例来获得更好的用户体验,而不是连接到更近的 Ops Manager 应用程序实例,其中实例本身必须连接到托管在不同的远程地区且具有高延迟的主应用程序数据库副本集成员。

部署为Ops Manager Application Database提供服务的副本集。 要部署副本集,请参阅MongoDB手册中的部署副本集

以下步骤假设您使用其中一个 Ops Manager 应用程序主机生成了第一个 gen.key。如果您改为创建自己的 gen.key,请在启动任何 Ops Manager 应用程序前将其分发到 Ops Manager 主机。

重要

位于 Ops Manager 应用程序服务器前面的负载均衡器不得返回已缓存的内容。负载均衡器必须禁用缓存。

要为多个 Ops Manager 应用程序配置负载均衡,请执行以下操作:

1

配置负载均衡器,对每个 Ops Manager 运行状况 API 端点执行运行状况检查:

http://<OpsManagerHost>:<OpsManagerPort>/monitor/health

Ops Manager 使用两个 HTTP 代码之一进行响应:

HTTP Status Code
运行状况
200
Ops Manager 主机和应用程序数据库运行正常。
500

Ops Manager 主机或应用程序数据库看似运行不正常。

如果此端点经常返回 HTTP 500,请查看“故障排除”部分。

负载均衡器不得返回已缓存的内容。

2
  1. 在 Ops Manager 中,依次单击 AdminGeneral 标签页和 Ops Manager Config

  2. 设置URL to Access Ops Manager属性以指向负载均衡器 URL。

  3. Load Balancer Remote IP Header 属性设置为负载均衡器用来识别客户端 IP 地址的 HTTP 标头字段的名称。

    设置 Load Balancer Remote IP Header 后,Ops Manager 将启用以下 HTTP 标头:

    HTTP 标头
    转发到 Ops Manager
    客户端在主机 HTTP 请求标头中请求的原始主机。
    用于发出 HTTP 请求的协议。
    代理服务器的主机名。
    请求的 HTTPS 状态。
3

在每个托管上,编辑conf-mms.properties 文件以设立mongo.mongoUri 属性设置为 的 连接string Ops Manager Application Database。您 必须3mongo.mongoUri 连接 中至少指定string 个主机。

mongo.mongoUri=mongodb://<mms0.example.net>:<27017>,<mms1.example.net>:<27017>,<mms2.example.net>:<27017>/?maxPoolSize=100
4

在每个 MongoDB 助手的主机上完成以下步骤。

  1. 打开 MongoDB 助手配置文件。

    vi /path/to/configurationFile.config

    自动化配置文件的位置取决于您的平台:

    /path/to/install/local.config
    /etc/mongodb-mms/automation-agent.config
    /etc/mongodb-mms/automation-agent.config
    /path/to/install/local.config
  2. 编辑 mmsBaseUrl 属性以指向负载均衡器并保存更改。

    mmsBaseUrl=<LOAD-BALANCER-URL>:<PORT>
  3. 重新启动 MongoDB 助手。

5

例子

如果您使用 rpmdeb 包安装 Ops Manager 应用程序,请执行以下命令:

service mongodb-mms start
6

通过包管理器安装时,gen.key 文件位于 /etc/mongodb-mms/ 中,而通过存档安装时,该文件位于 ${HOME}/.mongodb-mms/ 中。

gen.key 文件从正在运行 Ops Manager 应用程序的主机复制到其他 Ops Manager 应用程序主机上的相应目录。

7

有关使 Ops Manager 备份高度可用的信息,请参阅配置高度可用 Ops Manager 备份服务。

后退

启用数据库监控