mongodb 好用的图表工具 mongodb charts
安装环境
系统环境: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+端口号进行访问
登录界面
再看看我我建立好的数据
登陆之后添加数据源就可以进行数据监控,这部分教程就不写了,英文稍微好一点的都可以看懂,英文不好的谷歌浏览器自带翻译功能,不知道怎么用的,右上方有官方文档的链接,有什么不懂的留言在问吧
[1]: https://docs.mongodb.com/charts/onprem/
[2]: https://www.mongodb.com/download-center/charts
[3]: https://pan.baidu.com/s/15WzRFEZncAKLsBNHkhFkeQ
有什么问题欢迎大家评论交流