`
whitesock
  • 浏览: 483103 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

jManage

    博客分类:
  • SE
阅读更多

1 Overview

    由于项目需要, 笔者开发了一个基于JMX的监控程序。这个监控程序本身也提供了JMX远程服务,并且在开发过程中一直使用jconsole来管理这个监控程序。本打算在将监控程序部署到生产环境后,通过设置NAT(目前还不能通过VPN接入到生产环境)以便仍然可以通过jconsole来管理这个监控程序。但是发现为RMI使用的端口设置好NAT之后,jconsole仍然无法连接到监控程序。经过调查,发现RMI实际上使用了两个端口,一个是可以在程序中指定的(用于客户端下载stub,默认是1099);另外一个是随机选择的(用于方法调用)。虽然可以通过指定一个RMISocketFactory来配置那个本是随机选择的端口,但是被监控程序监控的那个程序无法修改,因此作罢。最终采用了在监控服务器上部署jManage的方案,替代jconsole通过NAT接入到生产环境的方案。

    jManage(http://www.jmanage.org/)是个基于WEB和命令行的开源JMX客户端程序,提供了一个集中式的控制台来监控和管理应用程序。此外jManage还提供了报警、图表、安全等特性。目前的最新版本是2.0 RC。

 

2 Instanllation

    如果使用jManage 2.0,那么需要使用1.5以上版本的JDK(jManage 1.x 需要使用1.4以上版本的JDK)。

    首先将jmanage-XXX.jar解压到安装目录,并为所有脚本加上可执行的属性,例如 chmod  +x *.sh。 然后进入到bin目录中,执行keygen来修改admin用户的密码,这个密码也是启动jManage的密码(默认是123456)。默认情况下,jManage使用9090端口,也可以通过修改jetty-config.xml文件来指定其它端口。 接下来执行bin目录中的startup,然后就可以通过访问http://localhost:9090来进行确认是否成功启动。

 

3 Configuration

3.1 Connecting to applications

    在使用jManage管理和监控应用程序之前,首先需要在jManage中添加应用程序的信息。

    1 在jManage的主页面中点击"Add Application"。
    2 选择应用程序的类型,对于普通的Java程序来说,应该选择"JSR160 Application"。jManage同样也支持MX4J。
    3 指定应用程序名和连接参数,例如:service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi。
    4 添加了应用程序后,点击应用程序名,然后再点击"Find More Objects"来浏览所有的MBeans。

 

3.2 Cluster Configuration

    1 在jManage的主页面中点击"Add Application Cluster"。

    2 指定集群名称,并选择需要添加到集群的应用程序名,点击"Save"。

 

4 Security

    jManage采用的对称加密算法对admin用户的密码进行了加密。加密后的密码保存在config目录的jmanage-key文件中。在用户登录过程中,jManage在3次(在jmanage.properties中配置)失败的尝试后锁定该用户。所有的用户信息保存在config/jmanage-users.xml文件中,用户的密码经过散列处理(默认采用SHA-1散列算法,在jmanage.properties中配置,也可以使用SHA-256)。

    一个用户可以被赋予一个或者多个角色。角色在jmanage-user-roles.xml.文件中定义,jManage预定义了两个角色:Administrator和User。Administrator角色具有完全的访问权限;User具有只读权限。acl-config.properties文件中定义了ACEs (Access Control Entities),可以在用户级别和角色级别上进行授权。

    默认情况下,jManage只使用http连接,可以通过解除JMANAGE_HOME/config/jetty-config.xml文件中HTTPS listener的注释来启用SSL,例如:

   <!--- HTTPS listener -->

   <Call name="addListener">
       <Arg>
           <New class="org.mortbay.http.SunJsseListener">
               <Set name="Port">
                   <SystemProperty name="jetty.port" default="9091"/>
               </Set>
               <Set name="MinThreads">5</Set>
               <Set name="MaxThreads">255</Set>
               <Set name="MaxIdleTimeMs">30000</Set>
               <Set name="LowResourcePersistTimeMs">5000</Set>
               <Set name="Keystore"><SystemProperty name="jmanage.root"/>/config/keystore</Set>
               <Set name="Password">password</Set>
               <Set name="KeyPassword">password</Set>
           </New>
       </Arg>
   </Call>
    需要注意的是,JMANAGE_HOME/config/jmanage.properties中的"jmanage.url"也要更新。

 

5 FAQ

Q: 怎样解除对admin账户的锁定?

A: 编辑 JMANAGE_HOME/config/jmanage-users.xml, 设置 status="A" and lockCount="0".


Q: 怎样在启动jManage时无需键入密码?
A1: > startup.sh 123456

      如果不考虑安全因素,那么可以使用此方法。
A2: > nohup ./startup.sh < password 2>&1 > ../logs/startup.log &
      其中password是保存了密码的文件(应该确保只有经过授权的人才能查看文件的内容)。

 

Q: 为什么jManage在发送报警邮件时出错?

A: 如果错误内容如下:
    SEVERE: Error sending alert email. Error: Could not connect to SMTP host: localhost, port: 25;
    那么需要修改jmanage.properties文件,指定SMTP服务器的地址,例如:

    email.host=localhost

 

Q: 怎样定制警报发送方式?

A: 目前jManage支持email和控制台警报两种方式,然而可以通过扩展alert framework来定制报警方式:
    1. 编写一个实现org.jmanage.core.alert.AlertDelivery接口的类。

    2. 将这个类注册到JMANAGE_HOME\config\system\alert-config.xml

    3. 编辑 addAlert.jsp,在下拉列表中添加一个新类型。需要注意的是,这个类型字符串要和 alert-config.xml中的类型字符串一致。在未来版本中,jManage会读取 alert-config.xml文件的内容而无需再编辑addAlert.jsp。

5
1
分享到:
评论
1 楼 fujohnwang 2008-12-22  
good

相关推荐

    jManage-开源

    jManage 2.0是一个开源应用程序管理平台,它提供了一个集中式控制台,用于管理应用程序集群和分布式应用程序环境。 有关更多详细信息,请参见http://www.jmanage.org。

    JMX-how-to-use.rar_jmx_服务器_远程监控 文件

    此外,还可以使用开源工具如JManage、JMXTERM或自定义的JMX客户端来访问和操作MBeans。 5. **安全配置** 远程JMX访问需要考虑安全性,因此通常需要设置认证和授权策略。这可以通过配置JVM的`jmxremote.password`和...

    jmx例子一则

    通过JMX,开发者可以构建自定义的管理工具,或者与现有的管理平台集成,例如使用JConsole、VisualVM等官方提供的工具,或者第三方工具如JManage、JTop等。JMX的灵活性和强大功能使其成为Java应用程序管理和监控的...

    JMX学习资料

    此外,还有一些第三方工具,如JManage、VisualVM等,提供更丰富的功能。 10. **JMX与Spring整合**:Spring框架提供了与JMX的集成,使得在Spring应用中注册和管理MBeans变得简单。Spring的`MBeanExporter`和`@...

    Windchill 系统管理员课程三

    - **JConsole**和**JManage**等JMX客户端工具,不仅允许管理员修改属性值,还能实现Windchill服务器的启动、停止以及日志文件的管理。 6. **Windchill外壳程序使用** - 安装Windchill时会自动生成外壳程序的快捷...

Global site tag (gtag.js) - Google Analytics