作为运维人员,想必大家肯定都做过这样的事情:为了监控系统资源使用情况,开了若干个窗口,来回切换看输出:
只要我切得够快,性能异常点就逃不过我的眼睛!
这个时候你要是有个监控工具自然是很好的,例如美创科技的监控报警工具onekeeper,画面又好看,数据也准确,还是实时更新的。
然而好用的东西都是要花钱的,今天我们就利用python实现一个简单的动态监控图表。
1. 系统环境需求
我们这次要写的脚本主要基于Psutil与Matplotlib两个模块。
首先,我们这里选择python3环境,安装这两个模块:
Pip install psutil matplotlib
表示安装成功。
2. Psuitl模块的使用
顾名思义,psutil = process and system utilities,它不仅可以通过一两行代码实现系统监控,还可以跨平台使用,支持Linux/UNIX/OSX/Windows等。
它有许多函数功能,能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息,示例如下:
获取cpu使用率:
获取内存使用率:
获取磁盘IO信息:
写成一个函数:
3. Matplotlib的使用
Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。
我们以cpu使用率图为例:
我们可以得到一张监控系统cpu使用率的动态图表。
4. 多子图制作
同样的,我们将其他两个性能指标也取出来,并做成同一个画布下不同的子图:
最后我们通过python得到了一个简单的系统性能动态监控图表:
Psutil模块还有其他很多获取系统信息的函数,是python系统运维方面必备的模块,Matplotlib作为应用最广的画图模块之一,也有许多其他让你的图表更加好看好用的使用方法。这篇文章仅作抛砖引玉之用,以下为这两个模块的官方文档链接。
参考文献
Psutil模块:
https://psutil.readthedocs.io/en/latest
Matplotlib模块:
https://matplotlib.org/contents.html
美创运维中心数据库服务团队拥有Oracle ACE 1人、OCM 10余人、数十名Oracle OCP、MySQL OCP、红帽RHCA、中间件weblogic、tuxedo认证、达梦工程师 ,著有《Oracle DBA实战攻略》,《Oracle数据库性能优化方法和最佳实践》,《Oracle内核技术揭秘》等多本数据运维优化书籍。目前运维各类数据库合计2000余套,精通Oracle、MySQL、SQLServer、DB2、PostgreSQL、达梦等主流商业和开源数据库。并成为首批国内达梦战略合作伙伴之一,拥有海量经验和完善的人员培养体系。并同时提供超融合,私有云整体解决方案。
来源:freebuf.com 2020-06-08 15:46:15 by: database
请登录后发表评论
注册