1.1.1. 资源管理的现状
当前需要管理:
a.硬件:通过SNMP方式来检测网络设备运作是否正常。这种方式实施门槛较高。
b.软件:自行在应用上构建监控程序。这种方式对每个系统都单独一套监控实现方式,当换一种监控方式可能就要全部重写。
1.1.2. 理想的监控管理方式
具备主动处理问题的能力。不但能检测设备和应用的健康程度,还可以获取其内部信息。
但这种方式成本较高。
1.1.3.一种建议的实施方案
a. 检测设备和和平台的系统健康
b. 应用级的参数配置能力
c. 对应用统计的能力
d. 调试能力
e. 检测系统性能
1.2 java实现的解决方案——JMX(Java Management Extentions)
jmx简述:jmx是java语言的新框架,它允许你把所有资源(包括软硬件)封装成java对象,然后暴露在分布式环境中。jmx还提供了一种机制,把SNMP等已存的管理协议映射到自身的管理框架中。
jmx对之前提到的建议的实施方案中是这么实现的:
a. 检测设备和和平台的系统健康——通过java wrapper把硬件接口封装成java对象,放到jmx管理框架中。
b. 应用级的参数配置能力和对应用统计的能力——通过暴露api实现
c. 调试能力——jmx已具备。
d. 检测系统性能——jmx的消息机制。
1.2.1 jmx优势
...
1.2.2 jmx基本概念
Manageable resource:能被java访问或包装并可被JMX MBean管理的程序或设备。
MBean(Managed Bean):一种java bean,对内能访问Manageable resource,对外暴露管理接口。MBean被MBean Server接管。
MBean server:管理MBean的java类。可进行MBean的注册和找,并对外暴露管理接口(通过调用MBean,但不暴露MBean引用)。
JMX agent:MBean Server的容器。负责创建MBean关系,动态装载类等。
Protocol adapters and connectors:Agent通过适配器和连接器向不同协议或远程暴露。以获取灵活性和分布式效果。
Management application:使用Agent进行监控的程序。
Notification:MBean和MBean Server发送消息到其他MBean或其他java类。
Instrumentation:(翻译做监控设备?)通过MBean暴露resource的过程。
1.4 应用JMX架构