SCOM2012R2 APM系列(三) 配置Java应用程序监控

本文涉及的产品
云拨测,每月3000次拨测额度
简介:

之前写过一篇.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;只要做的时候注意细节就可以了,其实并不复杂 :)



本文转自maomaostyle 51CTO博客,原文链接:http://blog.51cto.com/maomaostyle/1324098,如需转载请自行联系原作者


相关文章
|
22天前
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【4月更文挑战第3天】在移动开发领域,性能优化一直是开发者关注的焦点。随着Kotlin的兴起,其在Android开发中的地位逐渐上升,但关于其与Java在性能方面的对比,尚无明确共识。本文通过深入分析并结合实际测试数据,探讨了Kotlin与Java在Android平台上的性能表现,揭示了在不同场景下两者的差异及其对应用性能的潜在影响,为开发者在选择编程语言时提供参考依据。
|
22天前
|
Java
深入理解Java并发编程:线程池的应用与优化
【4月更文挑战第3天】 在Java并发编程中,线程池是一种重要的资源管理工具,它能有效地控制和管理线程的数量,提高系统性能。本文将深入探讨Java线程池的工作原理、应用场景以及优化策略,帮助读者更好地理解和应用线程池。
|
2天前
|
安全 Java 调度
Java线程:深入理解与实战应用
Java线程:深入理解与实战应用
20 0
|
2天前
|
Java
Java配置环境
Java配置环境
9 0
Java配置环境
|
23小时前
|
安全 Java 大数据
探索Java的奇妙世界:语言特性与实际应用
探索Java的奇妙世界:语言特性与实际应用
|
3天前
|
Java
Java中的并发编程:理解和应用线程池
【4月更文挑战第23天】在现代的Java应用程序中,性能和资源的有效利用已经成为了一个重要的考量因素。并发编程是提高应用程序性能的关键手段之一,而线程池则是实现高效并发的重要工具。本文将深入探讨Java中的线程池,包括其基本原理、优势、以及如何在实际开发中有效地使用线程池。我们将通过实例和代码片段,帮助读者理解线程池的概念,并学习如何在Java应用中合理地使用线程池。
|
6天前
|
运维 监控 Java
Java 性能监控和故障排查技巧
【4月更文挑战第19天】Java应用的开发与运行需重视性能监控和故障排查,以确保稳定性和可靠性。利用日志记录、系统性能指标和VisualVM等工具进行监控。通过错误日志分析、分阶段测试、内存和线程分析来排查问题。关注性能瓶颈定位,并提前规划、定期监控,提升数据分析能力和团队协作,以优化应用性能。
|
8天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
8天前
|
设计模式 算法 Java
Java中的设计模式及其应用
【4月更文挑战第18天】本文介绍了Java设计模式的重要性及分类,包括创建型、结构型和行为型模式。创建型模式如单例、工厂方法用于对象创建;结构型模式如适配器、组合关注对象组合;行为型模式如策略、观察者关注对象交互。文中还举例说明了单例模式在配置管理器中的应用,工厂方法在图形编辑器中的使用,以及策略模式在电商折扣计算中的实践。设计模式能提升代码可读性、可维护性和可扩展性,是Java开发者的必备知识。
|
8天前
|
安全 Java API
函数式编程在Java中的应用
【4月更文挑战第18天】本文介绍了函数式编程的核心概念,包括不可变性、纯函数、高阶函数和函数组合,并展示了Java 8如何通过Lambda表达式、Stream API、Optional类和函数式接口支持函数式编程。通过实际应用案例,阐述了函数式编程在集合处理、并发编程和错误处理中的应用。结论指出,函数式编程能提升Java代码的质量和可维护性,随着Java语言的演进,函数式特性将更加丰富。