MMS部署

一、MMS介绍

        mongdb的管理服务(MMS)是用于监控和备份mongodb的基础设施服务。其中监控的服务是免费的,备份的服务是需要收费的。

1、MMS监控

        MMS提供实时的报告、可视化、警报、硬件指标,并以直观的web仪表盘展现数据。

        只需要安装上一个轻量级的监控代理,来收集mongodb运行信息并传回给MMS。MMS用户界面允许用户查看可视化的数据核设置警报。

2、MMS备份

        该功能专为mongodb设计的,可以预定恢复快照和时间点。一旦该服务启动并运行,MMS提供一个web界面来支持备份和恢复,MMS备份还支持水平扩展。

        需要安装一个轻量级的备份代理,代理执行初始化同步,并截取副本集primary节点的OPLOG。对于分片集群,备份代理截取每个primary核每个config服务器。然后将初始化同步核oplog数据通过https传回到MMS。

        MMS服务通过备份再现每个副本集并应用oplog日志,然后,MMS在硬盘上保持一个独立的mongodb数据库,也称为head,每个副本集的备份。每个head与原始的primary通过代理提供的最后oplog来保持一致。

        该初始化数据核oplog都是使用标准的mongodb查询来完成的。

二、MMS架构组件

MMS应用程序包

        前端包包含用户与其交互的界面,HTTPS服务用于监控代理和备份代理来发送数据和MMS服务。前端MMS包启动时,所有三个组件自动启动。这些组件是无状态的。前端包多个实例可以作为每个实例都具有相同的配置下运行。只要用户和代理可以与任何实例进行交互。

        对于MMS监控,只需要安装应用程序包。应用程序包包括以下组件:

  • MMS Application and Monitoring Server
  • MMS Backup Ingestion Server
  • MMS Backup Alerts Service

MMS HTTP服务

        HTTP服务端口默认是8080。这个组件提供Web界面来管理MMS用户,监控MongoDB的服务器和管理这些服务器的备份。 用户可以注册,创建新的帐户和组,以及加入现有的组。还包含监控mongodb实例的信息报告。

备份HTTP服务

        该服务默认运行在8081端口上。备份HTTP服务包含一组用于备份代理Web服务。 代理从这项服务中检索其配置。该代理还通过该端口来发送初始化和oplog数据。该服务不需要与用户进行交互。

备份报警服务

        备份报警服务监视所有代理状态,备份数据库的本地复制和快照。一旦出现问题发送邮件报警。

备份守护包

备份守护

        备份守护进程是备份守护包的唯一组成部分。 备份守护管理备份数据库的本地复制和备份快照。该守护进程工作基于数据从备份代理进来的备份HTTP服务。没有客户端程序需要与该守护进程通话,它的状态和作业队列来自MMS应用程序数据库。

        该守护进程在其本地存储路径rootDirectory创建备份数据库的本地副本。 如果运行多个备份守护进程,当你添加新的备份系统选择守护进程的实例,该实例的本地副本位于与该守护程序。

        该守护进程将预定快照并将这些快照存储在快照存储也叫Blockstore。它也将作用于从Blockstore检索数据,并将其传送到所请求的目的地来恢复数据。

        多个Backup守护进程可以水平扩展,每个复制集绑定到特定服务。

数据存储

        所有关于MMS服务的状态数据和快照备份数据都永久存储在mongodb上。这些数据库不是MMS包安装的一部分。单独设置该数据库并在mms配置文件中指定它。

        这些数据库被称为“Backing MongoDB Instances”或“backing databases”。

MMS应用数据库

        该数据库将包含MMS用户,组,主机监测数据,备份时的状态等等。这些元数据比较小每个监控/备份服务器小于1G,但是更新频繁。因此强烈建议这个数据库配置成为复制集来为MMS服务提供耐用性和自动故障转移。

MMS备份Blockstore数据库

        这个数据库包含备份数据库的所有快照和保留oplog来进行时间点的恢复。快照数据库所需要的空间与备份数据库成正比。

        将Blockstore数据库设置成复制集来为备份和恢复组件提供耐用性和自动故障转移。

三、MMS监控服务安装

1、安装mongodb

        安装MMS应用数据库,官方建议使用副本集,这里使用单一的mongodb

        下载解压

1
2
3
cd /usr/local/sec
tar zxvf mongodb-linux-x86_64-rhel70-3.4.10.tgz
mv mongodb-linux-x86_64-rhel70-3.4.10 /usr/local/mongodb

        进入mongodb文件夹

1
cd /usr/local/mongodb

        创建文件夹

1
2
3
mkdir conf
mkdir dbdata
mkdir logs

        创建配置文件

1
2
cd conf/
vim mongodb.cfg

        编辑配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
dbpath = /usr/local/mongodb/dbdata
logpath = /usr/local/mongodb/logs/mongodb.log
pidfilepath = /usr/local/mongodb/mongo.pid
logappend = true
bind_ip = 127.0.0.1,192.168.1.245
port = 27017
maxConns = 1024
fork = true
rest = true
quota = true
quotaFiles = 1024
nssize = 16
storageEngine = wiredTiger

        启动mongodb

1
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/mongodb.cfg

2、SMTP服务

        MMS依赖SMTP服务,是以电子邮件作为用户的,需要根据MMS服务器回复的邮件来进行用户注册和密码设置的,报警信息也是通过邮件来发送的。可以不用配置SMTP服务器,用第三方的即可。

3、安装MMS服务

        软件包下载地址

1
2
curl -OL https://downloads.mongodb.com/on-prem-mms/rpm/mongodb-mms-1.4.3.106-1.x86_64.rpm
rpm -ivh mongodb-mms-1.4.3.106-1.x86_64.rpm

4、配置MMS

        RPM安装完,,程序位于/opt/mongodb/mms,以mongodb-mms用户运行该程序。

        需要修改/opt/mongodb/mms/conf/conf-mms.properties文件,需要确保以下参数设置正确:

  • mms.centralUrl
  • mms.backupCentralUrl
  • mms.fromEmailAddr
  • mms.replyToEmailAddr
  • mms.adminFromEmailAddr
  • mms.adminEmailAddr
  • mms.bounceEmailAddr
  • mongo.mongoUri
  • mongo.replicaSet
1
vim /opt/mongodb/mms/conf/conf-mms.properties

        编辑配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
mms.centralUrl=http://192.168.1.245:8080
mms.backupCentralUrl=http://192.168.1.245:8081
mms.fromEmailAddr=852391@qq.com
mms.replyToEmailAddr=852391@qq.com
mms.adminFromEmailAddr=852391@qq.com
mms.adminEmailAddr=852391@qq.com
mms.bounceEmailAddr=852391@qq.com
mms.userSvcClass=com.xgen.svc.mms.svc.user.UserSvcDb
mms.emailDaoClass=com.xgen.svc.core.dao.email.JavaEmailDao
mms.mail.transport=smtp
mms.mail.hostname=smtp.qq.com
mms.mail.port=25
mms.mail.username=852391
mms.mail.password=************
mms.mail.tls=
mongo.mongoUri=mongodb://127.0.0.1:27017/
mongo.replicaSet=
mongo.backupdb.mongoUri=
mongo.backupdb.replicaSet=
ping.queue.size=100
ping.thread.count=100
increment.queue.size=14000
increment.thread.count=35
increment.gle.freq=70
increment.offer.time=120000
aws.accesskey=
aws.secretkey=
reCaptcha.enabled=false
reCaptcha.public.key=
reCaptcha.private.key=
twilio.account.sid=
twilio.auth.token=
twilio.from.num=
graphite.hostname=
graphite.port=2003
snmp.default.hosts=
snmp.listen.port=11611
snmp.default.heartbeat.interval=300

5、启动服务

        启动mongodb-mms服务

1
/etc/init.d/mongodb-mms start

01

        如果启动失败,就查看下日志。

        使用的端口

1
netstat -ntplu | grep mms

02

        创建的库

03

        浏览器访问http://192.168.1.245:8080

04

        用户注册

05

        登录

06

        MMS监控服务端已经部署完毕

三、MMS监控代理安装与配置

        登录到控制台

06

        首先,在数据中心部署监控代理。然后,使用MMS web界面来指定集群中的一个节点。监控代理将连接到种子节点,自动发现集群中的所有其他主机。监控代理会手机集群中的节点数据并安全的发送回MMS。登录到MMS用户界面来查看性能可视化数据核设置报警。不会发送mongodb数据到MMS,仅仅收集统计核元数据。

07

08

09

10

        根据提供的地址下载mongodb-mms-monitoring-agent,并修改/etc/mongodb-mms/monitoring-agent.config文件。

        下载rpm安装包

1
curl -OL http://192.168.1.245:8080/download/agent/monitoring/mongodb-mms-monitoring-agent-2.3.1.89-1.x86_64.rpm

        安装

1
rpm -U mongodb -mms-monitoring-agent-2.3.1.89-1.x86_64.rpm

        编辑/etc/mongodb-mms/monitoring-agent.config并输入API密钥

1
mmsApiKey = be35f2310ba9216052e6d600c269cbca

        编辑/etc/mongodb-mms/monitoring-agent.config并输入MMS服务器URL

1
mmsBaseUrl = HTTP://192.168.1.245:8080

        启动代理

1
service mongodb-mms-monitoring-agent start

        然后,检测代理是否正常后,就可以添加主机了

11