监控程序架构
监控程序为 独立的一个java项目 需要一个java端口(用于jmx remote) 及 一个 web端口(用于web访问)
客户端可连接程序 为 jconsole 和 html网站
MonitorJmx
----com.kompakar.ehealth.monitor
---------------------------------agent(主要存放类似于main函数的 启动程序 启动程序需要初始化jmx容器 将mbean注册到容器中,agent分3个级别的 手工注册、按系统分包的、全部的 ,后两种可以动态导入不用手工注册) MainAgent
---------------------------------config(主要存放一些配置文件) Constant 服务器url 可以放到属性文件中
---------------------------------mbean(存放监控bean,需要遵循规约 以MBean结尾 实现和接口需要放在一个包中) OperatingSys OperatingSysMBean Database DatabaseMBean Jvm JvmMBean
------------------------------------------ihis cp (如果监视多系统 可以进一步分包)
---------------------------------util(一些工具类 如jmx远程连接工具类)RMIClientFactory Mail
实现监控只需要 编写接口MBean和 实现 并注册到对应的agent
监控大多是主动请求,如查看硬件信息 则主动调用获取的函数 , 查看数据库连接池情况则 同样调用对应函数
第二中是被动告知 如数据库链接数不够 内存溢出(这种情况下主动请求可能就需要不停的监控)
对于目前kthis 的监控:
目前写的2个MBean 是2种方式的
第一个是对OperatingSys 硬件基础信息的监控,目前资源是直接读取tomcat对外开放的jmxremote
第二个是对Database 连接池的监控 资源是在 eHealth中创建了一个 mbean包编写 监控接口和实现 并在EntryServlet(主要是需要得到spring的所有单例服务)中注册到tomcat jmx容器中 然后供监控程序远程获取
EntryServlet新增代码
private void jmxreg(){
try {
BasicDataSource ds = (BasicDataSource) wac.getBean(
"eHealthDataSource", BasicDataSource.class);
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
ObjectName DatabaseName = new ObjectName(
"monitor:name=Database");
Database db = new Database(ds);
server.registerMBean(db, DatabaseName);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
监控端一个MBean的实现
public int getNumActive(){
int numActive = 0;
try {
MBeanServerConnection client = RMIClientFactory
.getClient(Constant.SERVER_1);
ObjectName objectName = new ObjectName(
"monitor:name=Database");
numActive = Integer.parseInt(client.getAttribute(objectName, "NumActive").toString());
} catch (Exception e) {
e.printStackTrace();
}
return numActive;
}
针对数据库层可以修改 log4jdbc的代码 设置相应的度量标准 去通知监控
为了尽量不影响现有系统 所有的代码 尽量是新添或 在系统切入切出部分修改
目前雷暴提供基础的监控页面都比较朴素 如果要用户体验比较高的 建议以后使用BS形式
分享到:
相关推荐
用Linux/UNIX Shell编程语言设计系统监控程序.pdf
基于java的文件监控程序设计与实现.pdf
这个程序是用C++语言编写的远程监控系统,有兴趣的朋友可以参考一下,里面重点是附加了说明和结构图,内容比较丰富
Kafka监控程序附带测试代码
计算机远程监控实时画面传输、还能拷屏,以资源管理器的界面下载服务器上所有文件、进度提示、还能对服务器进行控制(有点像网吧管理软件)、程序采用多线程和非MFC socket编写、花了半个多月才编写、调试完成,典型...
摘 要 首先分析了单片机(80C196为例)监控程序的实现;介绍了在Win98平台使用VisualC++6.0实现串行通信,以及如何利用串行通信将汇编后的二进制用户程序发送至单片机执行。关键词 API函数 串行通信 VisualC...
VC 基于网络的CS结构录相监控程序,运行本程序需要开启服务端和客户端,两者之间通过IP地址和端口进行连接通讯,硬件方面需要有摄像头和驱动程序,这个只是个简单的雏形模块,可了解下网络方面的相关编程原理。
3、业务系统的各个子服务系统是采用最新spring-boot框架的微服务架构模式,数据交换同时支持xml以及json格式。 网关程序下载地址: http://download.csdn.net/detail/gaoshbo/9340739 技术支持QQ:78772895
整个监控系统的网络结构是按广域网进行连接的,即各级监控级自下而上逐级汇接,每 个监控级均按辐射方式与若干下级监控级连接成一点对多点的监控系统,最低的监控级 与其监控的设备连接。构成图所示的集中监控系统...
本设计是在多线程的原理基础上设计的多线程应用程序设计—监控软件,实现了多个线程并发执行的要求,可以对摄像头采集的图片数据及时处理。