一 背景html
在性能测试或Linux服务器运维中,都会涉及对系统资源使用状况的监控,除了经常使用的系统命令外(如top、iostat、free等),比较全面的资源数据监控工具是NMON,经过在服务器上运行NMON能够按期监控硬件资源并将采集数据生成到.nmon文件中。所以,问题就来了,在自动化监控中,如何实现对.nmon文件的解析并得到关心的性能指标数据呢?python
二 nmon及其经常使用数据处理方法linux
nmon是一款用于系统监视、性能测试分析及调优的免费工具,它可以一次性提供关于系统及资源使用状况的大量性能指标信息,如CPU、内存、网络、磁盘IO等。ios
经常使用nmon使用方法是:服务器
1. 开启nmon网络
./nmon_linux_64 -s 10 -c 60 -f -m /home/nmon运维
其中-s 指定每次采集间隔时间;-c 指定采集次数;-f 指定输出使用电子表格格式;-m 在命令将数据保存至文件以前切换目录。ide
2. 分析nmon数据工具
使用上述命令,采集次数到达后,会在指定目录生成xxxx.nmon的文件,分析.nmon文件的经常使用方法是使用nmon_analyser.xlsm,经过导入.nmon文件,将数据显示在excel文件中。性能
三 python解析nmon的姿式
经过上述分析,获取nmon文件数据的经常使用方法主要应用在交互模式下,并不适合在性能自动化或自动化运维监控中。下面将介绍使用python解析nmon文件并获取性能指标数据的方法。
首先,.nmon文件本质是文本文件,可使用python直接进行读写操做;
其次,经过分析关心指标数据的位置,经过正则匹配的方法获取数据;
最后,将数据汇总写入html,用于展现各个服务器上的资源使用状况;
根据上述思路,实现解析.nmon并得到CPU使用状况的代码以下:
其余资源的获取状况相似,再也不赘述。
四 效果展现
根据实现的脚本,分析各服务器的.nmon文件并生成html报告的效果以下:
五 总结
Nmon是经常使用的性能监控工具,经常使用的nmon_analyser.xlsm工具分析nmon的方法在性能自动化中并不适用,于是介绍了使用python脚本直接分析nmon文件并得到性能指标数据的方法。