关于用sigar+jfreechart做系统监控并在web前台展示的问题
经理给我分了个系统监控的模块,要求实时的监控服务器的CPU、内存的使用率以及磁盘的使用情况,要求不高,只是把监控数据拿到然后在前台做个展示,但是要求是数据实时变化的动态图表。
奈何本人未毕业实习生,以前没接触过此类相关的问题,经过初步Google加百度之后,选择了用sigar来获取监控信息,用jfreechart来绘图。用swing测试效果时没问题,发现还挺简单,但是接下来要将jfreechart集成进ssh并且在jsp上面能展示实时的动态图时,我就懵了。本来考虑的是将jfreechart生成的图保存到工程目录,然后在jsp里面读取并且通过ajax不停的局部刷新,此时问题来了:
①放在webroot下的image文件夹里面的图在本地能即时更新,但是jsp读的是tomcat下面的image,那里面的没有更新
②即使是能够读取到图了,但是由于是不停的去刷新jfreechart生成的整张图,肯定会有闪烁,展示效果会很不好,不懂如何解决
想到这两个问题之后觉得这样子做可能不好,于是就想到用applet。将jfreechart生成的图画到applet上面,做一个动态的applet然后放到jsp上面去。但是在jsp加载applet的时候又不停的报错,因为sigar使用log4j记了日志,web服务器不允许。 因为觉得用applet的展示效果可能会好点,于是就想那就用java自带的OperatingSystemMXBean与ManagementFactory来写个类获取系统信息替换掉sigar,得是能得到,效率真不敢恭维(主要是获取CPU信息的时候用了Runtime.getRuntime()调了dos,特别慢),动态效果根本出不来。
这几种方法都试了都调试不成功之后我今天上午就卡在这儿了,不知道怎么继续,所以才来此求助,恳请各位支支招。感激不尽。