实施该项目是为了实现组内日常对生产环境数据的监控,由于生产环境使用了堡垒机环境隔离,与本地通讯只有邮件一个出口,实施难度在于数据流转及监控指标处理,整个实施过程代码会放到github上,这里对可视化展示部分做说明:

1、数据加工pyecharts图实现:

数据源:本地CSV文件(每天定时与生产环境交互自动解压到指定路径实现图更新)

由于是跟生产环境做交互,生产环境指标由HSQL加工,使用存储过程挂后台定时运行,后使用python实现导出及定时分发,本地python接收获取附件解压

2、上传文件至服务器

本地pycharm跑通后,把项目对应文件上传至服务器目录:

解压到/root/data_dashboard路径,该路径文件夹将作为挂载目录对应到python容器,后续只要修改该文件夹文件,即可对

ps:如果有需要避免源码泄露的需求,上传pycharm项目里面自带的pyc后缀文件即可,或者进入服务器后在编译成pyc格式文件。

3、创建容器

已有python镜像前提下,建立python容器,-d代码容器后台运行。容器建立三要点,端口映射/目录挂载/ip分段。Flask默认5000端口,这里把容器5000端口映射到宿主机9500端口,目录挂载宿主机/root/data_dashboard下,后续所有Flask文件都在该路径下即可,

另外由于该Flask读取的是本地csv文件来实现,每天的更新通过自动替换该路径文件来实现,因此就不做IP地址设置(如果涉及数据库访问,一定要做固定IP设置)

docker run -it -d --name=p1 -p 9500:5000 -v /root/data_dashboard:/root/project python:3.6.9 bash

4、进入容器,安装所需的第三方库

进入容器,安装Flask框架,使用清华大学数据源。

docker exec -it p1 bash pip install flask -i https://pypi.tuna.tsinghua.edu.cn/simple

安装pyecharts

pip install pyecharts -i https://pypi.tuna.tsinghua.edu.cn/simple

5、启动任务

进入run.py对应文件夹,并执行运行命令即可

cd /root/project/dataMonitor nohup python run.py > logs.txt

使用nohup命令,运行后把窗口关闭,就能后台一直运行

测试网页结果如下:

ps:9500的端口为建立容器时容器5000端口映射。