使用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,实现集中化监控。