前段时间应领导要求,需要开发一套服务端的资源监控的脚本,通过python脚本监控服务器的资源状态,将监控数据录入到数据库表,而后直接分析入库的统计结果生成趋势图表以供参考!大概花了一个多星期把整个系统写完,但是总觉得无法达到实时的监控确实是一个很大遗憾。因此在同事的的推荐下初步学习了一下flask框架,不过百度了好多文章,大部分文章和DEMO都无法满足我得需求。最后,通过小黑鹅的博客找到一点线索(博客地址如下),在他博客基础山整合了一下,自己写了一个学习的DEMO,帮助跟我一样的兄弟能够快速应用到公司项目上去。
一、需要安装的包
1、功能相关
a、psutil
python system and process utilities(python系统和进程实用程序),监控服务器的资源(CPU\内存\磁盘\网络等)、进程的相关信息。个人认为比较全说明文档:
https://psutil.readthedocs.io/en/latest/#
b、os
处理文件和目录
2、web框架
flask及flask-bootstrap
二、前端界面
这块个人不太懂bootstrap框架,照搬原博主的内容
1、导航栏:基模板
超链接在jinja中的两种用法
html文件:href="index.html"
视图函数:href="/index/"
推荐使用/index/形式,根据路由找到对应html,避免更新文件名称或位置引起的大量修改。
bootstrap将界面宽度分为12分,可以用过col来控制控件的位置,例如:col-lg-10意为占用10等分宽的界面,col-lg-offset-1意为从左侧偏移一位。
2、其他信息:block
在基模板中配置block newcontent
三、视图函数
调用os和psutil库获取到服务器后端的监控数据,存储到cpu内,在render_template中根据key=value形式传入变量,在html中使用{{key}}来显示传入的变量。
DEMO中监控CPU、系统信息、磁盘挂载信息、系统盘(sda)、数据盘(sdb\sdc等)、网络流量监控、内存消耗最大排序的前10个进程。
四、效果图
最后放上demo的git代码:https://github.com/testPython2018/get_svrInfo_demo