Mongodb Ops Manager 及 Agents Docker镜像制作


0 总体介绍

  MongoDB Ops Manager(MMS)是一个官方提供的自动化监控和备份MongoDB基础设施服务。其中监控服务是免费的,备份服务是收费的。

  • 监控:Monitoring Agent提供关键数据库和硬件指标的实时报告,可视化和警报
  • 备份:Backup Agent提供MongoDB副本集和分片集群的计划快照和恢复时间点

1 准备工作

1.1 系统镜像准备

  系统镜像准备,选择centos6.10版本的系统镜像,centos7.x的系统镜像使用systemctl命令有问题,问题解决参见https://hub.docker.com/r/centos/systemd

docker pull centos:6.10
docker tag docker.io/centos:6.10 192.168.137.129/public/centos:6.10

1.2 MongoDB Ops Manager安装包准备

  MongoDB Ops Manager安装包准备,https://www.mongodb.com/download-center/ops-manager,Versions选择4.0.11(stable),Platforms选择Red Hat + CentOS 6,7,Packages选择RPM。并将安装包放到192.168.137.129:/var/ftp/pub/mms4.0.12/
  在192.168.137.129启动容器docker run -it --rm 192.168.137.129/public/centos:6.10 bash,将MongoDB Ops Manager安装包mongodb-mms-4.0.11.50485.20190502T1847Z-1.x86_64.rpm拷贝至容器内,执行sudo rpm -ivh mongodb-mms-4.0.11.50485.20190502T1847Z-1.x86_64.rpm,将容器内的/opt/mongodb/mms/agent目录拷贝出来,放置到192.168.137.129主机的/var/ftp/pub/mms4.0.12/目录,并在该目录执行createrepo ./

1.3 repo文件准备

  编辑repo文件,centos6.10.repomms4.0.12.repo。在192.168.137.129主机执行命令。

cat << EOF > /data/images/mongodb-monitor/manager/centos6.10.repo
[centos6.10]
name=centos6.10
baseurl=ftp://192.168.137.129/pub/centos6.10/
enabled=1
gpgcheck=0
EOF

cat << EOF > /data/images/mongodb-monitor/manager/mms4.0.12.repo
[mms4.0.12]
name=mms4.0.12
baseurl=ftp://192.168.137.129/pub/mms4.0.12/
enabled=1
gpgcheck=0
EOF

1.4 gen.key文件准备

  gen.key是一个24字节的二进制文件,用于加密和解密Ops Manager的后备数据库和用户凭据。在192.168.137.129主机执行命令。

openssl rand 24 > /data/images/mongodb-monitor/manager/gen.key
chmod 600 /data/images/mongodb-monitor/manager/gen.key

1.5 conf-mms.properties配置文件准备

  从1.2步容器/opt/mongodb/mms/conf/目录中拷贝conf-mms.properties192.168.137.129主机的/data/images/mongodb-monitor/manager/目录。编辑配置文件

mms.ignoreInitialUiSetup=true
mongo.mongoUri=mongodb://root:MMS_MONGO_PASSWD@MMS_MONGO_URI
mms.centralUrl=http://SERVER_IP:BASE_PORT
mms.fromEmailAddr=JiangJamesL@mail.com
mms.replyToEmailAddr=JiangJamesL@mail.com
mms.adminEmailAddr=JiangJamesL@mail.com
mms.mail.transport=smtp
mms.mail.hostname=stmp.mail.com
mms.mail.port=25
## default: 90s
#mms.monitoring.agent.session.timeoutMillis=90000
## 1: 55s 2: 27s 3: 18s 4: 14s default: 4
#mms.monitoring.agent.standbyCollectionFactor=4
#mms.https.ClientCertificateMode=none
#mms.emailDaoClass=com.xgen.svc.core.dao.email.JavaEmailDao
automation.versions.source=local
automation.versions.directory=/opt/mongodb/mms/mongodb-releases/
mongo.ssl=false

2 MongoDB Ops Manager镜像制作

2.1 编写docker-entrypoint.sh

  在192.168.137.129主机/data/images/mongodb-monitor/manager/目录下编写docker-entrypoint.sh

#!/bin/bash
serverip=$(ip addr|grep inet|grep 192.168.|grep -v inet6|awk '{print $2}'|cut -d/ -f1)
if [ "${serverip}" == "" ]; then
  echo "network error !!!"
  exit 1
else
  SERVER_IP=${serverip}
fi
if [ "${MMS_BASE_PORT}" == "" -o "${MMS_MONGO_PASSWD}" == "" -o "${MMS_MONGO_URI}" == "" ]; then
  echo "MMS_BASE_PORT && MMS_MONGO_PASSWD && MMS_MONGO_URI must be set !!!"
  exit 1
fi

sed -i "/^BASE_PORT/cBASE_PORT=${MMS_BASE_PORT}" /opt/mongodb/mms/conf/mms.conf
sed -i "s/MMS_MONGO_PASSWD/${MMS_MONGO_PASSWD}/g" /opt/mongodb/mms/conf/conf-mms.properties
sed -i "s/MMS_MONGO_URI/${MMS_MONGO_URI}/g" /opt/mongodb/mms/conf/conf-mms.properties
sed -i "s/BASE_PORT/${MMS_BASE_PORT}/g" /opt/mongodb/mms/conf/conf-mms.properties
sed -i "s/SERVER_IP/${SERVER_IP}/g" /opt/mongodb/mms/conf/conf-mms.properties

service mongodb-mms start
tail -f /var/log/lastlog

2.2 编写Dockerfile

  在192.168.137.129主机/data/images/mongodb-monitor/manager/目录下编写Dockerfile。

FROM 192.168.137.129/public/centos:6.10
MAINTAINER  JiangJamesL "JiangJamesL@mail.comn"
LABEL version="4.0.11" description="mongodb-mms-manager-4.0.11"
RUN rm -f /etc/yum.repos.d/CentOS-*.repo
COPY mms4.0.12.repo centos6.10.repo /etc/yum.repos.d/
RUN echo root:1w8*Caesy6^9gg5y | chpasswd && \
    yum install -y initscripts mongodb-mms
COPY gen.key conf-mms.properties /opt/mongodb/mms/conf/
RUN cp -p /opt/mongodb/mms/conf/gen.key /etc/mongodb-mms/ && \
    chown mongodb-mms:mongodb-mms /etc/mongodb-mms/gen.key
COPY docker-entrypoint.sh /
CMD ["/docker-entrypoint.sh"]

2.3 MongoDB Ops Manager镜像制作

  在192.168.137.129主机/data/images/mongodb-monitor/manager/目录下执行命令。

docker build -t 192.168.137.129/common/mongodb-mms-manager:4.0.11-1.0.0 .
docker push 192.168.137.129/common/mongodb-mms-manager:4.0.11-1.0.0

2.4 镜像测试

  在192.168.137.129主机执行命令,等待容器启动后,使用浏览器访问http://192.168.137.129:12345查看MongoDB Ops Manager管理界面。

docker run -d --net=host -e MMS_BASE_PORT=12345 -e MMS_MONGO_PASSWD=4yKEYS4wdVya -e MMS_MONGO_URI=192.168.137.129:27007,192.168.137.130:27007,192.168.137.131:27007 192.168.137.129/common/mongodb-mms-manager:4.0.11-1.0.0

注:

  • MMS_BASE_PORT:设置MongoDB Ops Manager管理界面访问端口。
  • MMS_MONGO_PASSWD:MongoDB Ops Manager需要使用的Mongodb集群root密码,如果需要使用加密串,可自行在docker-entrypoint.sh编写加密解密脚本。
  • MMS_MONGO_URI:MongoDB Ops Manager需要使用的Mongodb集群连接串。

3 MongoDB Ops Agent镜像制作

3.1 编写docker-entrypoint.sh

  在192.168.137.129主机/data/images/mongodb-monitor/agent/目录下编写docker-entrypoint.sh

#!/bin/bash
sed -i "/^mmsGroupId/cmmsGroupId=${MMS_GROUP_ID}" /etc/mongodb-mms/automation-agent.config
sed -i "/^mmsApiKey/cmmsApiKey=${MMS_API_KEY}" /etc/mongodb-mms/automation-agent.config
sed -i "/^mmsBaseUrl/cmmsBaseUrl=${MMS_BASE_URL}" /etc/mongodb-mms/automation-agent.config
service mongodb-mms-automation-agent start
tail -f /var/log/lastlog

3.2 编写Dockerfile

  在192.168.137.129主机/data/images/mongodb-monitor/agent/目录下编写Dockerfile。

FROM 192.168.137.129/public/centos:6.10
MAINTAINER  JiangJamesL "JiangJamesL@mail.comn"
LABEL version="5.4.18" description="mongodb-mms-automation-agent-manager-5.4.18"
RUN rm -f /etc/yum.repos.d/CentOS-*.repo
COPY mms4.0.12.repo.repo centos6.10.repo /etc/yum.repos.d/
RUN echo root:1w8*Caesy6^9gg5y | chpasswd && \
    yum install -y initscripts mongodb-mms-automation-agent-manager
COPY docker-entrypoint.sh /
CMD ["/docker-entrypoint.sh"]

3.3 MongoDB Ops Agent镜像制作

  在192.168.137.129主机/data/images/mongodb-monitor/manager/目录下执行命令。

docker build -t 192.168.137.129/common/mongodb-mms-agent:5.4.18-1.0.0 .
docker push 192.168.137.129/common/mongodb-mms-agent:5.4.18-1.0.0

3.4 镜像测试

  在192.168.137.129主机执行命令,等待容器启动后,在MongoDB Ops Manager管理界面填写被监控的Mongodb集群信息。

docker run -d --net=host -e MMS_API_KEY=5cdd5bcead965c0091a2b3178409e0ef704c1a49741441f333a087d5 -e MMS_BASE_URL=http://192.168.137.129:12345 -e MMS_GROUP_ID=5cdd5b84ad965c0091a2b2a3 192.168.137.129/common/mongodb-mms-agent:5.4.18-1.0.0

注:

  • MMS_API_KEY:MongoDB Ops Manager管理界面添加agent时,界面上使用+Generate Key计算。
  • MMS_BASE_URL:MongoDB Ops Manager URL。
  • MMS_GROUP_ID:MongoDB Ops Manager管理界面添加agent时,界面上自动生成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值