Python在Debian如何监控
导读:使用psutil监控系统资源 psutil是跨平台的Python库,可获取CPU、内存、磁盘、网络及进程等系统信息,是Python监控的基础工具。安装方式为pip install psutil。示例代码:获取CPU使用率(psutil.cp...
使用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'])
)。
代码性能分析与优化
- cProfile:Python内置模块,用于分析函数执行时间,找出性能瓶颈。使用方法:
import cProfile; cProfile.run("函数名()")
,输出结果包含函数调用次数、总时间及单次耗时。 - line_profiler:逐行分析代码性能,精准定位慢行。安装:
pip install line_profiler
;使用:添加装饰器@profile
到目标函数,运行kernprof -l -v 脚本.py
,输出每行代码的执行时间及占比。 - tracemalloc:监控内存分配,检测内存泄漏。安装:Python内置;使用:
tracemalloc.start()
开始跟踪,tracemalloc.get_traced_memory()
获取当前内存使用,tracemalloc.stop()
停止跟踪。
第三方系统监控工具
- Glances:跨平台系统监控工具,基于psutil,实时显示CPU、内存、磁盘、网络等指标,支持终端动态刷新及Web界面(
glances -w
)。安装:sudo apt install glances
或pip install glances
。 - dstat:多功能系统资源统计工具,取代vmstat、iostat等命令,支持实时数据展示及模块化扩展。安装:
sudo apt install dstat
,运行dstat
即可查看系统状态。 - NetData:实时性能监控工具,提供Web界面(
http://IP:19999
),监控CPU、内存、磁盘、网络等指标,支持告警及历史数据查询。安装:sudo apt install netdata
或通过kickstart脚本快速部署。
日志监控与告警
- inotify监控日志文件:使用Python的
inotify_simple
库监控日志文件的修改、创建等事件。安装:pip install inotify
;示例代码:创建INotify实例,添加监控规则(如flags.MODIFY
),循环读取事件并处理。 - Python脚本监控错误日志并发送告警:结合
watchdog
(监控文件变化)和smtplib
(发送邮件),实现日志中“ERROR”关键字的实时检测与告警。示例代码:定义LogFileHandler
类继承FileSystemEventHandler
,重写on_modified
方法读取日志最后10行,若包含“ERROR”则发送邮件。
集成到现有监控系统
若已使用Nagios、Zabbix、Prometheus等监控系统,可通过其API或插件机制集成Python脚本。例如,Prometheus通过prometheus_client
库暴露监控指标,Zabbix通过Python脚本采集数据并推送至Zabbix Server,实现集中化监控。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Python在Debian如何监控
本文地址: https://pptw.com/jishu/720285.html