Python版的Nmon分析器:让你远离excel宏

Python版的Nmon分析器:让你远离excel宏

Nigel's monitor,也叫做 “Nmon”,是一个很好的监控、记录和分析 Linux/*nix 系统性能随时间变化的工具。Nmon 最初由 IBM 开发并于 2009 年夏天开源。时至今日 Nmon 已经在所有 Linux 平台和架构上都可用了。它提供了很棒的当前系统统计信息的基于命令行的实时可视化报告,这些统计信息包括 CPU、RAM、网络和磁盘 I/O。然而,Nmon 最棒的特性是可以随着时间的推移记录系统性能快照。

比如:nmon -f -s 1

Python版的Nmon分析器:让你远离excel宏

nmon CPU and Disk utilization

会创建一个日志文件,该日志文件最开头是一些系统的元数据(AAA - BBBV 部分),后面是所监控的系统属性的定时快照,比如 CPU 和内存的使用情况。这个输出的文件很难直接由电子表格应用来处理,因此诞生了 Nmon_Analyzer excel 宏。如果你用的是 Windows/Mac 并安装了 Microsoft Office,那么这个工具非常不错。如果没有这个环境那也可以使用 Nmon2rrd 工具,这个工具能将日志文件转换 RRD 输入文件,进而生成图形。这个过程很死板而且有点麻烦。现在出现了一个更灵活的工具,我向你们介绍一下 pyNmonAnalyzer,它提供了一个可定制化的解决方案来生成结构化的 CSV 文件和带有用 matplotlib 生成的图片的简单 HTML 报告。

入门介绍

系统需求:

从名字中就能看出我们需要有 python。此外 pyNmonAnalyzer 还依赖于 matplotlib 和 numpy。若你使用的是 debian 衍生的系统,则你需要先安装这些包:

$ sudo apt-get install python-numpy python-matplotlib

获取 pyNmonAnalyzer:

你可以克隆 git 仓库:

$ git clone [email protected]:madmaze/pyNmonAnalyzer.git

或者,直接从这里下载:pyNmonAnalyzer-1.0.zip 。(LCTT 译注:这是个 5 年前的项目但是一直在陆陆续续的进行维护)

接下来我们需要一个 Nmon 文件,如果没有的话,可以使用发行版中提供的实例或者自己录制一个样本:nmon -F test.nmon -s 1 -c 120,会录制 120 个快照,每秒一个,存储到 test.nmon 文件中。

让我们来看看基本的帮助信息:

$ ./pyNmonAnalyzer.py -h


usage: pyNmonAnalyzer.py [-h] [-x] [-d] [-o OUTDIR] [-c] [-b] [-r CONFFNAME]


 input_file


 


nmonParser converts Nmon monitor files into time-sorted


CSV/Spreadsheets for easier analysis, without the use of the


MS Excel Macro. Also included is an option to build an HTML


report with graphs, which is configured through report.config.


 


positional arguments:


 input_file Input NMON file


 


optional arguments:


 -h, --help show this help message and exit


 -x, --overwrite overwrite existing results (Default: False)


 -d, --debug debug? (Default: False)


 -o OUTDIR, --output OUTDIR


 Output dir for CSV (Default: ./data/)


 -c, --csv CSV output? (Default: False)


 -b, --buildReport report output? (Default: False)


 -r CONFFNAME, --reportConfig CONFFNAME


 Report config file, if none exists: we will write the


 default config file out (Default: ./report.config)

该工具有两个主要的选项

  1. 将 nmon 文件传唤成一系列独立的 CSV 文件
  2. 使用 matplotlib 生成带图形的 HTML 报告

下面命令既会生成 CSV 文件,也会生成 HTML 报告:

$ ./pyNmonAnalyzer.py -c -b test.nmon

这会创建一个 ./data 目录,其中有一个存放 CSV 文件的目录 (./data/csv/),一个存放 PNG 图片的目录 (./data/img/) 以及一个 HTML 报告 (./data/report.html)。

相关推荐