前段时间应领导要求,需要开发一套服务端的资源监控的脚本,通过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,避免更新文件名称或位置引起的大量修改。

grafana监控服务器模板 服务器监控框架_grafana监控服务器模板

 

 

   bootstrap将界面宽度分为12分,可以用过col来控制控件的位置,例如:col-lg-10意为占用10等分宽的界面,col-lg-offset-1意为从左侧偏移一位。

grafana监控服务器模板 服务器监控框架_flask_02

 

 

 2、其他信息:block
    在基模板中配置block newcontent

grafana监控服务器模板 服务器监控框架_grafana监控服务器模板_03

 

 

 三、视图函数

调用os和psutil库获取到服务器后端的监控数据,存储到cpu内,在render_template中根据key=value形式传入变量,在html中使用{{key}}来显示传入的变量。

grafana监控服务器模板 服务器监控框架_服务器_04

 

 

 

DEMO中监控CPU、系统信息、磁盘挂载信息、系统盘(sda)、数据盘(sdb\sdc等)、网络流量监控、内存消耗最大排序的前10个进程。

四、效果图

grafana监控服务器模板 服务器监控框架_html_05

 

 

最后放上demo的git代码:https://github.com/testPython2018/get_svrInfo_demo