在Java的插桩工具方面,我们一直在使用Kieker,今天简单研究了另外一个Java监控平台Zorka,这里以Windows+Tomcat为例记录一下最基本的安装过程:
其主页是: http://zorka.io/ ,GitHub上的项目主页是: https://github.com/jitlogic/zorka ,在其主页上有其Agent端的下载页面: http://zorka.io/downloads.html 。下载zorka-1.0.11.zip并将其解压。将解压后的文件夹拷贝到Tomcat根目录下,并重命名为“zorka”(方便后续设置)。
在这个页面: http://zorka.io/install/index.html 详细介绍了Zorka的安装和配置方法,但是我在配置过程中还是发现一些说得不清楚的地方:首先,按照官网的介绍,解压后的文件夹应该包含一下内容:
By convention zorka files reside in <appserver-home>/zorka
directory which wil be refered as agent home directory. It contains the following objects:
zorka.jar
- agent jar (all dependencies included); scripts/*.bsh
- extension scripts loaded at agent startup; log/*
- log and trace files will be stored here; templates/*
- templates for zabbix (and maybe other monitoring systems); this directory isn’t used by agent itself and can be safely removed after installation; zorka.properties
- main configuration file; 但是很奇怪,我没有看到scripts这个文件夹。先继续往下看:按照这里 http://zorka.io/install/tomcat.html 的介绍,需要对zorka.properties这个文件进行一系列修改,首先应该加上这样一行:
scripts = jvm.bsh, zabbix.bsh, apache/tomcat.bsh
很显然,这是引用了一些bsh的脚本,但是根本就没有看到这些bsh文件啊。想了半天,决定从GitHub上找找,果然在这里:zorka-master/zorka-core/target/classes/com/jitlogic/zorka/scripts 找到了很多bsh文件,将这个文件夹整体拷贝到刚才的“zorka”文件夹下。就可以实现正常的引用了。
其次,应该修改Tomcat的启动选项,对于windows而言,应该修改bin目录下的catalina.bat,在其合适的位置加入:
set JAVA_OPTS=%JAVA_OPTS% -javaagent:%CATALINA_BASE%/zorka/zorka.jar -Dzorka.home.dir=%CATALINA_BASE%/zorka
注意这里写的和官网上略有不同。
按照刚才Tomcat安装方法的那个页面,在zorka.properties这个文件中加上:
zorka.spy.compute.frames = yes
这一行。修改完之后,我们试着启动Tomcat并进行一些操作,可以发现在zorka/log 下生成了Zorka的日志。但是并没有任何的监控Trace,注意到这一句:
adjust other settings in zorka.properties if necessary (log files, listen port number etc.);
所以可能还需要设置监控文件的位置。在这个页面中: http://zorka.io/install/tracer.html 详细介绍了Trace的配置和tuning方法。我们选择最简单的在文件系统中生成监控记录,在zorka.properties这个文件中的这几行:
# Uncomment this to save tracer data in local file. Deprecated. # tracer.file = yes
下面加入一些我们的配置:
tracer.file = yes tracer.file.path = trace.trc tracer.file.fnum = 8 tracer.file.size = 128M tracer.net = no
当然还要把Tracer打开:tracer = yes。
为了很容易生成监控数据,我们进行如下修改:
tracer.min.trace.time = 0 tracer.min.method.time = 0
将这个两个值设置为0时,可以保证所有的监控记录都进行输出,这时候我们再重启Tomcat,进行一些操作后,就可以在Tomcat的bin目录下看到一个trace.trc,不过我用文本编辑软件打开以后看到的是乱码,还没来得及研究是什么样的编码方式。为了方便大家复现,我把修改后的zorka.properties文件也传上来。zorka.properties
以上就是这个工具的一些基本的使用方法,简单看来,这个工具支持使用beanshell脚本语言进行配置,功能还是挺强大的。