效能測試-基於 Python 的 Linux 伺服器資源監控
介紹
已完成如下功能
1、監控整個伺服器的CPU使用率、剩餘記憶體大小、磁碟IO和網路頻寬
2、監控指定埠的CPU使用率、記憶體佔用大小
3、針對java應用,可以監控jvm大小和垃圾回收情況;當Full GC頻率過高時,可傳送郵件提醒
4、當系統CPU使用率過高,或者剩餘記憶體過低時,可傳送郵件提醒;可設定自動清理快取
5、可隨時啟動/停止監控指定埠
6、當埠重啟後,可自動重新監控
7、可按照指定時間段視覺化監控結果
8、自動按照百分位數計算出CPU、磁碟IO和頻寬的資料
9、支援叢集部署
實現過程
1、為保證監控結果準確性,直接使用Linux系統命令獲取資料;且視覺化時未做任何曲線擬合處理
2、使用基於協程的http框架aiohttp
滿足高併發
3、服務端前端使用jinjia2
模板渲染
4、採用執行緒池+佇列的方式實現同時監控多個埠
5、客戶端每隔5s向服務端註冊本機IP和埠,以及一些服務型配置
6、服務端每隔5s會查詢所有已註冊的客戶端的狀態
7、使用influxDB資料庫儲存監控資料;資料可設定自動過期時間
使用
-
克隆 performance_monitor
git clone https://github.com/leeyoshinari/performance_monitor.git
master資料夾是服務端,只需部署一個即可;slave資料夾是客戶端,部署在需要監控的伺服器上
分別修改master和slave資料夾裡的配置檔案
config.ini
部署InfluxDB資料庫
-
分別執行master和slave資料夾中的
server.py
nohup python3 server.py &
頁面訪問
(1)從機(客戶端)啟動後,輸入http://ip:port
可以看到頁面顯示伺服器的CPU核數、總記憶體、磁碟號和網路資訊
(2)主機(服務端)啟動後,輸入http://ip:port
可以看到首頁,頁面展示已經註冊的從機(客戶端)的IP、系統、記憶體、註冊時間
(3)主機(服務端)啟動後,輸入http://ip:port/startMonitor
可以看到監控頁面;點選開始監控按鈕,即可在指定的伺服器上開始監控指定的埠;點選停止監控按鈕,即可在指定的伺服器上停止監控指定的埠;點選獲取監控列表按鈕,可以檢視當前已經監控的埠
(4)主機(服務端)啟動後,輸入http://ip:port/Visualize
可以看到視覺化頁面;點選畫圖按鈕,即可將指定伺服器上的指定埠的監控資料視覺化
打包
pyinstaller既可以將python指令碼打包成Windows環境下的可執行檔案,也可以打包成Linux環境下的可執行檔案。打包完成後,可快速在其他環境上部署該監控服務,而不需要安裝python3.7+環境和第三方包。
pyinstaller安裝過程自行百度,下面直接進行打包:
-
打包master
(1)安裝好python環境,安裝第三方包,確保程式可以正常執行;
(2)進入master資料夾,開始打包:pyinstaller server.py -p draw_performance.py -p config.py -p Email.py -p logger.py -p process.py -p request.py -p __init__.py --hidden-import draw_performance --hidden-import config --hidden-import logger --hidden-import Email --hidden-import process --hidden-import request
打包過程可能提示缺少一些模組,請按照提示安裝對應的模組
(3)打包完成後,在當前路徑下會生成dist資料夾,進入dist/server
即可找到可執行檔案server
;
(4)將配置檔案config.ini
拷貝到dist/server
資料夾下,並修改配置檔案;
(5)將模板檔案templates
和靜態檔案static
拷貝到dist/server
資料夾下;
(6)將dist/server
整個資料夾拷貝到其他環境,啟動servernohup ./server &
-
打包slave
(1)安裝好python環境,安裝第三方包,確保程式可以正常執行;
(2)進入slave資料夾,開始打包:pyinstaller server.py -p performance_monitor.py -p logger.py -p config.py -p __init__.py --hidden-import logger --hidden-import performance_monitor --hidden-import config
(3)打包完成後,在當前路徑下會生成dist資料夾,進入
dist/server
即可找到可執行檔案server
;
(4)將配置檔案config.ini
拷貝到dist/server
資料夾下,並修改配置檔案;
(5)將dist/server
整個資料夾拷貝到其他環境,啟動servernohup ./server &
注意
伺服器必須支援以下命令:
jstat
、top
、iostat
、netstat
、ps
、top
,如不支援,請安裝。如果你對監控要求不高,可以使用單機版,其對第三方模組依賴較少。如需獲取,請切換至
single
分支,或點我。
相關文章
- 效能測試之Docker監控Docker
- 效能測試之JVM的監控GrafanaJVMGrafana
- Jmeter效能測試 —— jmeter之使用ServerAgent監控伺服器JMeterServer伺服器
- 效能測試之伺服器監控和Prometheus推薦伺服器Prometheus
- 【效能監控】如何有效監測網頁靜態資源大小?網頁
- 效能測試之資料庫監控分析工具PMM資料庫
- 效能測試監控工具--Jmeter + Grafana + InfluxDBJMeterGrafanaUX
- Linux 效能監控工具Linux
- 基於TPC-C基準的Python ORM的效能測試PythonORM
- jmeter 監控伺服器資源 求助!!!JMeter伺服器
- 對於k8s微服務的效能測試監控平臺搭建K8S微服務
- 效能測試之資料庫監控分析工具Grafana+Prometheus資料庫GrafanaPrometheus
- 基於 Zabbix 系統監控 Windows、Linux、VMwareWindowsLinux
- 基於jmeter的效能全流程測試JMeter
- Linux程式管理與效能監控Linux
- 幾個常用的linux效能監控命令Linux
- Java生產環境效能監控與調優—基於JDK命令列工具的監控JavaJDK命令列
- Linux中一個高效的資源監控器 – BpytopLinux
- 重新定義 Locust 的測試報告_效能監控平臺測試報告
- 基於OkHttp的Http監控HTTP
- SSH Exporter:基於Prometheus的遠端系統效能監控神器ExportPrometheus
- Linux伺服器效能追蹤以及伺服器監控常用命令Linux伺服器
- 在Linux中,如何監控系統的效能?Linux
- Linux中監控系統效能常用的命令!Linux
- 進行Linux效能監控的命令介紹Linux
- Linux基礎命令---ab測試apache效能LinuxApache
- 在Linux中,如何進行系統資源的監控?Linux
- 常用的4個伺服器效能監控命令伺服器
- Linux伺服器---流量監控ntopLinux伺服器
- Linux伺服器---流量監控webalizerLinux伺服器Web
- Linux伺服器---流量監控MRTGLinux伺服器
- 使用CloudStats監控Linux伺服器CloudLinux伺服器
- Linux伺服器---流量監控bandwidthdLinux伺服器
- 伺服器的效能測試伺服器
- 阿里雲容器Kubernetes監控(一)-資源監控阿里
- 基於各種感測器的空調系統監控
- Linux系統效能監控採集項Linux
- Netflix開源Mantis:基於微服務的運維監控平臺微服務運維