最近在github找到了一个nmon自动监控并生成HTML格式报告的工具:easyNmon,使用体验蛮不错的,这里介绍下它的安装及使用方法。
github地址:https://github.com/mzky/easyNmon
直接下载地址:https://github.com/mzky/easyNmon/releases/download/v1.9/easyNmon.tar.gz
一、关于easyNmon说明
工具下载地址:easyNmon
说明:为了方便多场景批量监控,作者用golang写了个监控程序,可以通过web页面启动和停止nmon服务, 适配Loadrunner和jmeter进行性能测试,可以做到批量执行场景并生成监控报告!
环境适配:该执行文件默认为CentOS(6.5-7.4)版本,Ubuntu和SUSE需要下载对应版本的nmon替换!
二、下载安装
1、文件下载
通过github下载该执行文件,然后上传到服务器,使用
wget https://github.com/mzky/easyNmon/releases/download/v1.9/easyNmon.tar.gz
tar -zxf easyNmon.tar.gz
命令解压,结果如下图
解压后会生成一个easyNmon文件夹,进入该文件夹,通过如下命令启动:(选中自己合适方式)
./easyNmon #前台启动,控制台断开服务停止
./easyNmon & #后台启动,控制台断开服务同样停止
nohup ./easyNmon > easyNmon.log & #后台启动,控制台断开服务仍正常运行
2、常用信息查看
在easyNmon目录下,输入 ./easyNmon -h 查看相关信息,如下图:
[root@crc156master easyNmon]# ./easyNmon -h
Usage of ./easyNmon:
-a string
analysis:生成html图表,参数指定nmon报告文件,同目录生成html图表
示例:./easyNmon -a ./report/nmonTestName
-d string
directory:指定生成报告的路径
示例:./easyNmon -d /mnt/rep (default "report")
-debug
debug模式
-np string
nmonpath:指定对应系统版本的nmon文件
示例:./easyNmon -np ./nmon/nmon_xxx (default "nmon/nmon")
-p string
port:默认监听端口9999,自定义端口加 -p 端口号
示例:./easyNmon -p 9999 (default "9999")
-v version:显示版本号
-操作说明
接口(Get):
/start 启动监控,接口方式时,所有参数非必选
参数n为生成报告的文件名,
参数t为监控时长(单位分钟),
参数f为监控频率,每隔多少秒收集一次;
http://192.168.200.156:9999/start?n=name&t=30&f=30
/stop 停止所有监控任务:
http://192.168.200.156:9999/stop
/report 查看报告:
http://192.168.200.156:9999/report
/close 关闭自身:
http://192.168.200.156:9999/close
管理页面:
通过浏览器访问web管理页面:
http://192.168.200.156:9999
3、web页面
可以通过帮助信息里面的信息,访问web页面查看该工具的页面管理功能,如下图:
PS:如果是云服务器,需要在云服务器控制台开启对应的安全组规则,否则无法访问!!!
4、修改端口
默认端口为9999,如果需要修改访问web页面的地址端口,需要自行修改,命令为 ./monitor -p 端口号
./easyNmon -p 1234 #前台启动,控制台断开服务停止
./easyNmon -p 1234 & #后台启动,控制台断开服务同样停止
nohup ./easyNmon -p 1234 > easyNmon.log & #后台启动,控制台断开服务仍正常运行
三、监控服务使用
1、集成jmeter启动
安装好之后,在jmeter中添加线程组,然后按照如下格式填写对应的信息,添加仅一次控制器(因为后台服务启动后,只需要启动一次监控服务即可)
2、集成jmeter停止
注意是停止,而不是关闭,关闭会导致后台服务退出,下次监控需要手动再启动服务后才能再次开始
3、查看效果
在开始运行后页面点击
进入后会看到对应的报告列表,选查看对应项目的名称+运行时间
然后就能动态查看到当前服务器监控信息了(运行中时统计实时刷新显示)
有疑问加站长微信联系(非本文作者)