使用psutil監控系統資源
psutil是跨平臺的Python庫,可獲取CPU、內存、磁盤、網絡及進程等系統信息,是Python監控的基礎工具。安裝方式為pip install psutil
。示例代碼:獲取CPU使用率(psutil.cpu_percent(interval=1)
)、內存使用情況(psutil.virtual_memory().percent
)、磁盤使用率(psutil.disk_usage('/').percent
)及列出所有進程(psutil.process_iter(['pid', 'name'])
)。
代碼性能分析與優化
import cProfile; cProfile.run("函數名()")
,輸出結果包含函數調用次數、總時間及單次耗時。pip install line_profiler
;使用:添加裝飾器@profile
到目標函數,運行kernprof -l -v 腳本.py
,輸出每行代碼的執行時間及占比。tracemalloc.start()
開始跟蹤,tracemalloc.get_traced_memory()
獲取當前內存使用,tracemalloc.stop()
停止跟蹤。第三方系統監控工具
glances -w
)。安裝:sudo apt install glances
或pip install glances
。sudo apt install dstat
,運行dstat
即可查看系統狀態。http://IP:19999
),監控CPU、內存、磁盤、網絡等指標,支持告警及歷史數據查詢。安裝:sudo apt install netdata
或通過kickstart腳本快速部署。日志監控與告警
inotify_simple
庫監控日志文件的修改、創建等事件。安裝:pip install inotify
;示例代碼:創建INotify實例,添加監控規則(如flags.MODIFY
),循環讀取事件并處理。watchdog
(監控文件變化)和smtplib
(發送郵件),實現日志中“ERROR”關鍵字的實時檢測與告警。示例代碼:定義LogFileHandler
類繼承FileSystemEventHandler
,重寫on_modified
方法讀取日志最后10行,若包含“ERROR”則發送郵件。集成到現有監控系統
若已使用Nagios、Zabbix、Prometheus等監控系統,可通過其API或插件機制集成Python腳本。例如,Prometheus通過prometheus_client
庫暴露監控指標,Zabbix通過Python腳本采集數據并推送至Zabbix Server,實現集中化監控。