前段時間應領導要求,需要開發一套服務端的資源監控的腳本,通過python腳本監控服務器的資源狀態,將監控數據錄入到數據庫表,而后直接分析入庫的統計結果生成趨勢圖表以供參考!大概花了一個多星期把整個系統寫完,但是總覺得無法達到實時的監控確實是一個很大遺憾。因此在同事的的推薦下初步學習了一下flask框架,不過百度了好多文章,大部分文章和DEMO都無法滿足我得需求。最后,通過CSDN小黑鵝的博客找到一點線索(博客地址如下),在他博客基礎山整合了一下,自己寫了一個學習的DEMO,幫助跟我一樣的兄弟能夠快速應用到公司項目上去。
https://blog.csdn.net/Daisy_zye/article/details/84560555
一、需要安裝的包
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