一、前言
在做性能监控需要收集操作系统一些指标方便分析,如果是多台服务器我们怎么用一个命令批量启动 nmon 收集指标,其实有很多方法比如用 Python、Java 等编程方式,也有最原始 ant 部署工具。
二、安装 ant
安装 ant 并且配置环境变量(网上有很多例子),就不在此赘述了。
下图是部署成功后的样子:
三、部署 nmon
把 nmon 放到 Linux 操作系统的一个文件夹并且给予可执行权限如:
chmod a+x nmon
编写 build.xml
文件:
<project name="AntHome" basedir="../" default="main">
<property name="user" value="root"/> <!--用户名-->
<property name="passwd" value="123456"/> <!--密码-->
<property name="app30" value="被测ip地址"/> <!--IP地址-->
<property name="app29" value="被测ip地址"/> <!--IP地址-->
<property name="DB88" value="被测ip地址"/> <!--IP地址-->
<property name="targetDir" value="/home/nmon"/> <!—liunx中nmon路径-->
<property name="nmon_cmd" value="./nmon -f -t -r –name(可以修改) -s 5 -c 216 -F "/> <!—nmon位置确定是否可以运行-->
<property name="nmon_filename" value="20170911_300vu_"/> <!--结果命令规则-->
<property name="nmon_filename_30" value="${nmon_filename}30.nmon"/>
<property name="nmon_filename_29" value="${nmon_filename}29.nmon"/>
<property name="nmon_filename_88" value="${nmon_filename}88.nmon"/>
<property name="resultDir" value="E:/syswin/nmon_report"/> <!--保存结果-->
<target name="main">
</target>
<target name="run-nmon"> <!—运行方式-->
<sshexec host="${app30}" username="${user}" password="${passwd}" trust="true" command="cd ${targetDir}; ${nmon_cmd} ${nmon_filename_30}" />
<sshexec host="${app29}" username="${user}" password="${passwd}" trust="true" command="cd ${targetDir}; ${nmon_cmd} ${nmon_filename_29}" />
<sshexec host="${DB88}" username="${user}" password="${passwd}" trust="true" command="cd ${targetDir}; ${nmon_cmd} ${nmon_filename_88}" />
</target>
<target name="copy-file"> <!—拷贝方式-->
<scp file="${user}:${passwd}@${app30}:${targetDir}/${nmon_filename_30}" todir="${resultDir}" trust="true"/>
<scp file="${user}:${passwd}@${app29}:${targetDir}/${nmon_filename_29}" todir="${resultDir}" trust="true"/>
<scp file="${user}:${passwd}@${DB88}:${targetDir}/${nmon_filename_88}" todir="${resultDir}" trust="true"/>
</target>
<target name="clean" > <!—清除方式-->
<sshexec host="${app30}" username="${user}" password="${passwd}" trust="true" command="rm ${targetDir}/${nmon_filename_30}" />
<sshexec host="${app29}" username="${user}" password="${passwd}" trust="true" command="rm ${targetDir}/${nmon_filename_29}" />
<sshexec host="${DB88}" username="${user}" password="${passwd}" trust="true" command="rm ${targetDir}/${nmon_filename_88}" />
</target>
</project>
进入build.xml
文件目录:
使用命令启动:
ant run-nmon
拷贝服务端生成的 nmon 文件到本机:
ant copy-file
清除远程 nmon 文件:
ant clean
简单打开方式:
nmon analyser for office_64.xls
建议:
工作中一般在运行 nmon 都会提前 15 秒到 30 秒启动场景,便于分析与写报告。
四、总结
使用这种方式只有在本机配置好,就能启用好几个到几十个服务器,可以节约大量操作时间,不过还是有局限,如果大家感兴趣可以用 Pyhon 或者 Java 多线程编程实现。