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

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
简介:

之前写过一篇.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,如需转载请自行联系原作者


相关实践学习
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
本场景将自定义告警信息同时分发至多个通知渠道的需求,例如短信、电子邮件及钉钉群组等。通过采用轻量消息队列(原 MNS)的主题模型的HTTP订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
相关文章
|
2月前
|
人工智能 算法 Java
Java与AI驱动区块链:构建智能合约与去中心化AI应用
区块链技术和人工智能的融合正在开创去中心化智能应用的新纪元。本文深入探讨如何使用Java构建AI驱动的区块链应用,涵盖智能合约开发、去中心化AI模型训练与推理、数据隐私保护以及通证经济激励等核心主题。我们将完整展示从区块链基础集成、智能合约编写、AI模型上链到去中心化应用(DApp)开发的全流程,为构建下一代可信、透明的智能去中心化系统提供完整技术方案。
244 3
|
2月前
|
消息中间件 缓存 Java
Spring框架优化:提高Java应用的性能与适应性
以上方法均旨在综合考虑Java Spring 应该程序设计原则, 数据库交互, 编码实践和系统架构布局等多角度因素, 旨在达到高效稳定运转目标同时也易于未来扩展.
126 8
|
2月前
|
安全 Java
Java异常处理:程序世界的“交通规则
Java异常处理:程序世界的“交通规则
319 98
|
3月前
|
人工智能 Java API
Java与大模型集成实战:构建智能Java应用的新范式
随着大型语言模型(LLM)的API化,将其强大的自然语言处理能力集成到现有Java应用中已成为提升应用智能水平的关键路径。本文旨在为Java开发者提供一份实用的集成指南。我们将深入探讨如何使用Spring Boot 3框架,通过HTTP客户端与OpenAI GPT(或兼容API)进行高效、安全的交互。内容涵盖项目依赖配置、异步非阻塞的API调用、请求与响应的结构化处理、异常管理以及一些面向生产环境的最佳实践,并附带完整的代码示例,助您快速将AI能力融入Java生态。
484 12
|
3月前
|
监控 Kubernetes Java
使用 New Relic APM 和 Kubernetes Metrics 监控 EKS 上的 Java 微服务
在阿里云AKS上运行Java微服务常遇性能瓶颈与OOMKilled等问题。本文教你通过New Relic实现集群与JVM双层监控,集成Helm部署、JVM代理注入、GC调优及告警仪表盘,打通从节点资源到应用内存的全链路观测,提升排障效率,保障服务稳定。
203 2
|
3月前
|
安全 Java API
Java SE 与 Java EE 区别解析及应用场景对比
在Java编程世界中,Java SE(Java Standard Edition)和Java EE(Java Enterprise Edition)是两个重要的平台版本,它们各自有着独特的定位和应用场景。理解它们之间的差异,对于开发者选择合适的技术栈进行项目开发至关重要。
409 1
存储 jenkins 持续交付
503 2
|
3月前
|
存储 Java 编译器
对比Java学习Go——程序结构与变量
本节对比了Java与Go语言的基础结构,包括“Hello, World!”程序、代码组织方式、入口函数定义、基本数据类型及变量声明方式。Java强调严格的面向对象结构,所有代码需置于类中,入口方法需严格符合`public static void main(String[] args)`格式;而Go语言结构更简洁,使用包和函数组织代码,入口函数为`func main()`。两种语言在变量声明、常量定义、类型系统等方面也存在显著差异,体现了各自的设计哲学。
|
4月前
|
人工智能 监控 安全
智慧工地解决方案,java智慧工地程序代码
智慧工地系统融合物联网、AI、大数据等技术,实现对施工现场“人、机、料、法、环”的全面智能监控与管理,提升安全、效率与决策水平。
131 2

热门文章

最新文章