之前写过一篇.NET应用监控的博文,其实那个比较潦草,我自己感觉描述的不够细致,SCOM的应用监控功能是一个很有力的卖点(至少我这么觉得),这次特地拿一个Java应用监控做讲解,我自己在调试的时候也遇到了一些恼人的小毛病,导致进度无法顺利进行,在这里也跟大家分享一下,希望可以帮助那些遇到同样问题的朋友,好了废话不多说,开整~!

###############################################################################

SCOM支持Java平台下的tomcat、weblogic、websphere、jboss;我这个环境拿tomcat来测一下,因为毕竟这个应用也是非常非常普及的

首先我们来准备tomcat环境,从官网下载一个最新版的包,以及从SUN的官网下载JDK安装程序

211328404.png

JDK的默认安装路径如下图,同时在上层目录下还会生成JRE目录

211333364.png

tomcat解压之后的路径如下,这些都根据个人喜好自行设置

211337672.png

接下来我们需要来定义好tomcat运行的系统环境变量,在windows server的操作系统管理里面,打开高级系统设置——环境变量——在系统变量里添加如图中的两个变量;CATALINA_HOME就是tomcat的解压路径,JAVA_HOME是JDK或者JRE的路径(根据自己的实际路径来配置)

211342139.png

然后我们就可以通过命令行方式来启动tomcat服务了,定位到下图中的路径并执行startup,同样可以执行shutdown来关闭服务

211347705.png

然后我们可以访问本机的8080端口(默认)来打开tomcat控制台,我一直觉得这猫太像狮子了。。。;注意下图中的“Manage App”,这里是部署应用的地方,我们稍后也需要进入这里做一些操作,但是默认是进不去的,需要再添加一些账户权限

211358969.png

在tomcat目录下的conf里面找到tomcat-users这个文件,然后添加标记中的部分,注意添加位置要在</tomcat-users>之上,否则无法生效;完成后重启一下服务

211402359.png

#################################################################################

接下来我们需要准备SCOM的环境了,首先要下载JEE的监控包,大家请去官网自行取阅

211406928.png

解压后可以看到支持的Java应用,我们需要导入下图所示的内容,当然你一口气都导进去也行

211410647.png

然后我们需要来到SCOM安装介质中的managementpacks目录下,导入APM的相关包

211415549.png

然后我们找到运行tomcat的机器,我是装在了windows平台上,如果你是linux也可以,后续的步骤大同小异;我们确保给这台机器安装了SCOM代理

211420774.png

然后特别要注意的一个小细节就是:在SCOM的agent managed功能里,右键运行tomcat的这台机器,然后把“允许作为代理”勾上,否则你怎么等也看不到监控的应用。。感兴趣的朋友一定要试一试哦~

211425892.png

过一会在SCOM监控模块下找到应用程序监控——Java监控——JEE应用程序服务器——tomcat服务器——然后就能看到我们监控的对象了;别急,选中这台服务器,点击右侧任务内的copy BeanSpy,并且根据需求可以启用深度监控功能,支持SSL

211430553.png

这里特地补一张图,要知其然且知其所以然;下图是有关MBean,JMX以及BeanSpy的关系和作用,copy BeanSpy就是为了把BeanSpy拷贝到监控对象上并部署到我们的tomcat中,来收集数据再回传给scom,你不copy的话就什么也看不到

215029190.png

下图可以看到copy的路径,在%windir%\temp下


211434245.png

然后我们就兴致勃勃的跑到这里找到这四个文件,加了HTTP.NoAuth的是专门给http也就是80用的,另外两个自然就是给HTTPS用的了,一般我们图省事儿就用http的,那么你还真得再麻烦一下了,就是把你要用的文件重命名一下。。。改成BeanSpy.ear或者BeanSpy.war

211439427.png

改好后我们就准备把BeanSpy部署到tomcat上了

211444178.png

在tomcat上进入之前提到的manage app,然后找到“WAR file to deploy”,之后上传我们改好名字的BeanSpy.war,点击deploy

211451908.png

看到没,应用列表内多出一个/BeanSpy,接着我们验证一下是否成功

211457957.png

输入下图中的链接,注意小细节:Stats/Info,这里的S和I一定要是大写,不然你看不到这个XML。。。。

211503271.png

这样我们的Java应用程序监控就添加完成了,当然这里只能看到一些基本的状态和性能视图,要更加完善的监控,我们还需要在“创作”中完成;这个将来我有机会再分享给大伙儿,接下来说一下如何修改默认监视器的阀值,比如我们在这个视图中,右键一个规则属性

211508782.png

在override可以找到覆写的选项了,这里的操作和修改其他监视器阀值是一样的

211513802.png

到这一步为止,我们基本完成了Java应用的简单监控功能,可以看到下图中已经显示出了拓扑图,我觉得这玩意多整一些放在大屏显示器上很爽,特别是SQL监控自带的那个仪表盘,给客户看挺好的

211516572.png

##############################################################################

以上便是SCOM对Java应用监控的基本操作配置,我的环境依旧是全R2平台,如果有朋友有更深入的实践经验,希望能分享一下;对于另外几种app,比如websphere或者weblogic,都大同小异,一个道理,linux平台一样也需要copy beanspy;只要做的时候注意细节就可以了,其实并不复杂 :)