安装环境

系统环境:ubuntu 16.04
docker 版本:Docker version 18.09.0
mongo 版本:MongoDB shell version v3.6.4

查看系统环境命令:cat /etc/issue
查看docker 版本命令:docker --version
查看mongo 版本命令:mongo --version
权限不够的自己加sudo

什么是mongodb charts

MongoDB Charts最强大的功能之一是其内置的 聚合功能。聚合允许您通过各种指标处理收集数据,并执行平均值和标准差等计算,以进一步了解您的数据。

此外,MongoDB图表处理基于文档的数据,包括 嵌入的对象和数组。这为结构化数据提供了灵活性,使其最适合您的应用程序,同时仍保留强大的可视化功能。

简单说他就是用mongodb中存储的数据已图表的形式在web页面展示出来

这就是小版的ELK

官方教程

英文好的可以直接阅读官方的文档

下载mongodb charts等准备工作

docker版本该跟新就更新把
mongodb charts有两个镜像,为方便管理使用Docker Compose

1、创建一个目录来存储您的图表配置。

创建一个目录来存储您的Charts配置,然后切换到新目录:

mkdir mongodb-charts
cd mongodb-charts

2、下载Docker Compose

官方下载页面

打不开的去我的网盘下载

3、启用Docker Swarm模式。

运行以下命令以启用Docker Swarm模式:

docker swarm init

4、拉镜像:

耐心等待,这个看网速,优点慢

docker pull quay.io/mongodb/charts:v0.10.0

5、测试连接

测试你这台服务器能不能链接到mongodb数据库

命令格式:

docker run --rm quay.io/mongodb/charts:v0.10.0 charts-cli test-connection mongodb://<username>:<password>@myhost.com/

看不懂的给你个演示

docker run --rm quay.io/mongodb/charts:v0.10.0 charts-cli test-connection mongodb://用户名:密码@mongodb服务器的ip:链接端口/

例如:

docker run --rm quay.io/mongodb/charts:v0.10.0 charts-cli test-connection mongodb://admin:admin@192.168.0.1:27017/

如果在这一步报了特殊字符串或未转义的字符串的错误如 -bash: !": event not found,安心,需要想着去转义,在这转义了没用,一会儿框架链接mongodb服务器的时候还会包这个错误,这时候你还不能转义,给你们支个招,
执行:set +H
整个世界都安静了,这个问题是他们自己的一个bug,天知道他们什么时候能修复

6、创建docker secret

确认MongoDB charts可以成功连接到MongoDB在执行。

echo "<Verified connection string URI from step 5>" | docker secret create charts-mongodb-uri -

例如:

echo "mongodb://admin:admin@192.168.0.1:27017/" | docker secret create charts-mongodb-uri -

配置mongodb charts

默认会部署在80端口,我的80端口已经被占用了,要把它改在其他接口

1、修改配置文件

打开前面下载的charts-docker-compose-v0.10.0.yml文件

vim charts-docker-compose-v0.10.0.yml

把ports端口映射改了就可以了,不用改443那个,那个是https用的,搞不到CA认证,不管他

启动mongodb charts

1、使用Compose文件将Charts容器作为Docker Stack启动:

docker stack deploy -c charts-docker-compose-v0.10.0.yml mongodb-charts

注意 如果您使用的是不同版本的图表,请替换 v0.10.0为您的版本号。

2、验证容器是否正在运行。

通过执行以下命令检查容器是否正在运行

docker service ls

图表容器应显示为replicated 具有1/1副本的模式:

ID             NAME                    MODE         REPLICAS   IMAGE                   PORTS
j77uo3slyg4l   mongodb-charts_charts   replicated   1/1        mongodb-charts:latest   *:80->80/tcp

服务的模式可能不会replicated立即生效。Docker不显示某些部署操作的状态,因此请稍等,然后重新运行。docker service ls
如果服务卡在0/1副本上并且其模式不是 replicated在延长的时间段之后,则可能未正确部署该服务。欲了解更多信息,请参阅 故障排除。

创建用户

头一次启动必须在命令行创建一个用户

docker exec -it \
  $(docker container ls --filter name=_charts -q) \
  charts-cli add-user --first-name "<First>" --last-name "<Last>" \
  --email "<user@example.com>" --password "<Password>" \
  --role "<UserAdmin|User>"

放心大胆的去改,你那里不对,会有提示的,不用担心改崩了

启动和停止MongoDB图表

MongoDB图表在Docker Swarm管理的单个Docker容器中执行。

要启动Charts,请使用提供的Docker Compose文件部署堆栈:

docker stack deploy -c charts-docker-compose-v0.10.0.yml mongodb-charts

如果您使用的是不同版本的图表,请替换 v0.10.0为您的版本号。

要停止图表,请让Docker删除堆栈:

docker stack rm mongodb-charts

故障排除

1、验证容器是否正在运行。

通过执行以下命令检查容器是否正在运行

docker service ls

图表容器应显示为replicated 具有1/1副本的模式:

ID             NAME                    MODE         REPLICAS   IMAGE                   PORTS
j77uo3slyg4l   mongodb-charts_charts   replicated   1/1        mongodb-charts:latest   *:80->80/tcp

如果满足以下任何条件,请继续执行下一步:
该服务停留在0/1副本上,其模式不会 replicated延长一段时间。这可能表示该服务未正确部署。
如果在运行 脚本时收到错误。charts-cli add-user
您的网络浏览器中未加载图表应用程序。

2、从正在运行的服务中检索日志。

使用上一步中的服务ID运行以下命令来检索服务日志:

docker service logs <service ID>

以下示例包含命令的示例输出。请注意,每个步骤都有一个勾号或十字形,可以解释问题:

mongodb-charts_charts.1.nzcj90stcbmz@linuxkit-00155d01851f | ✔ encryptionKeyPath
mongodb-charts_charts.1.nzcj90stcbmz@linuxkit-00155d01851f | ✔ stitchConfigTemplate
mongodb-charts_charts.1.nzcj90stcbmz@linuxkit-00155d01851f | ✔ tokens
mongodb-charts_charts.1.nzcj90stcbmz@linuxkit-00155d01851f | ✔ stitchConfig
mongodb-charts_charts.1.nzcj90stcbmz@linuxkit-00155d01851f | ✔ stitchConfigWritten (true)
mongodb-charts_charts.1.nzcj90stcbmz@linuxkit-00155d01851f | ✖
mongoDBReachable failure: Can’t connect to MongoDB at mongodb://mongod. Too many
failed attempts. Last error: failed to connect to server [mongod:27017] on first
connect [MongoNetworkError: getaddrinfo ENOTFOUND mongod mongod:27017]

3、删除并重新创建元数据库的Docker Secret。

格式错误的 连接字符串URI 在部署图表时通常会导致问题。要修改URI,您必须删除旧的docker secret:
删除Charts metadata database

docker secret rm charts-mongodb-uri

重新创建Docker Secret

docker stack deploy -c charts-docker-compose-v0.10.0.yml mongodb-charts

web展示
到这算是部署完成,docker容器启动起来之后使用服务器的ip+端口号进行访问
登录界面
QQ截图20191211092139.png

再看看我我建立好的数据

QQ截图20191211092256.png

登陆之后添加数据源就可以进行数据监控,这部分教程就不写了,英文稍微好一点的都可以看懂,英文不好的谷歌浏览器自带翻译功能,不知道怎么用的,右上方有官方文档的链接,有什么不懂的留言在问吧

  [1]: https://docs.mongodb.com/charts/onprem/
  [2]: https://www.mongodb.com/download-center/charts
  [3]: https://pan.baidu.com/s/15WzRFEZncAKLsBNHkhFkeQ

标签: mongodb charts, 图标, 大数据展示

仅有一条评论

  1. 有什么问题欢迎大家评论交流

添加新评论