构思过程:
一开始单纯的写了个内存监控的脚本,每隔5分钟收集服务器的内存信息,然后将收集到的数据写进数据库中,但后来发现就算把收集的信息写入数据库,如果需要查询某个时段的内存信息,需要手动进入数据库中查看表里的数据,所以干脆结合Bootstrap+django做成一个demo,能够直观的展示后台所收集到的监控信息,这样就省事很多了。
合适的工具:
因为之前接触过 Echarts ,所以打算使用Echarts来做前端的折线图展示。Echarts是一个百度开源的可视化库,我觉得不错的地方就是很直观的配置数据映射逻辑,以及多种多样的可视化类型。
在考虑到了如果需要查询某个时间段的内存监控信息时,手动输入日期时间很容易造成格式等其他错误,所以在网上找到了bootstrap的日期选择控件——bootstrap-datetimepicker
版本选择:
Django 1.9.13
Bootstrap 2.2.2
jquery 1.8.3
mariadb 10.2.17
ECharts
设计流程:
1、初始化项目基本配置
首先创建一个Devops的数据库。创建一个Django项目,修改settings.py配置文件,映射数据库配置,设置静态文件的地址,模板目录的地址;修改models的模型,新增一个memory_info类,在类中添加必要的字段:
memory_info类,在类中添加必要的字段:classmemory_info(models.Model): minion_id = models.CharField(max_length=20,null=False) memory_total = models.IntegerField(default=0) memory_used = models.IntegerField(default=0) memory_free = models.IntegerField(default=0) memory_share = models.IntegerField(default=0) memory_bu_ca = models.IntegerField(default=0) memory_available = models.IntegerField(default=0) memory_time = models.DateTimeField(default=timezone.now)
执行以下命令,初始化数据库,项目的初步工作就完成了:
pythonmanage.pymakemigrationspythonmanage.pymigrate
以下是我的目录树: