JENNIFER通过REMON监控 WebLogic JMX

       REMON是内嵌于JENNIFER的产品, REMON可以通过shell script, SQL等方式提供可视化的监控画面,生成报告书,发布警报等系统统合监控控制板的监控。

1、设置监控目标MBean

 

       WebLogic管理每一个MBean类型(JDBC连接池,JMS服务器等)的资源,并通过JMX控制执行和控制数据搜索。你可以得到有关由WebLogic MBean和每个MBean提供的监测数据信息。

 

2、利用WebLogic WebAdmin工具检查监控数据项。

 

       执行weblogic.Admin命令。最后一个带–type的值是监测目标MBean的名称。例如可以监控 JDBCConnectionPoolRuntime MBean.

3、执行REMON的标准监控类(AbscriptClassScript)

       REMON提供AbscriptClassScript的接口,以支持基于Java的监测方案。通过搜索JDBC池数据优先处理AbscriptClassScript方法实现JXM逻辑。

       ※这个类在[REMON_HOME]/lib/sys/remon.jar。

 

       RemonJMXWeblogic.java实现AbstractClassScript接口,源代码:

 

  1. package com.jennifer.jmx.weblgic;
  2.  
  3. import java.util.Iterator;
  4. import java.util.Set;
  5.  
  6. import com.javaservice.remon.util.EncUtil;
  7.  
  8. import remon.agent.AbstractClassScript;
  9. import weblogic.management.Helper;
  10. import weblogic.management.MBeanHome;
  11. import weblogic.management.runtime.JDBCConnectionPoolRuntimeMBean;
  12.  
  13. public class RemonJMXWeblogic extends AbstractClassScript{
  14.  
  15. public String process(String[] arg0) {
  16.  
  17.          // Through properties.getProperty, bring setting value configured in REMON Script.
  18.          // properties.getProperty() is defined in AbstractClassScrip class.
  19. String url = properties.getProperty("url");        
  20. String un = properties.getProperty("username");        
  21. String pw = properties.getProperty("password");          
  22. String sn = properties.getProperty("servername");
  23. String dsn = properties.getProperty("dsname"); 
  24.  
  25. String password = "";
  26. StringBuffer sb = null;
  27. try {
  28.  
  29.       //Execute decoding of password code.
  30. password = EncUtil.decrypt(pw);
  31. } catch (Exception e1) {
  32. e1.printStackTrace();
  33. }
  34.  
  35. JDBCConnectionPoolRuntimeMBean jcpr = null;
  36. Set mbeanSet = null;        
  37. Iterator mbeanIterator = null;
  38. MBeanHome localHome = null; 
  39.  
  40. try {          
  41.        // Connect to WebLogic MBean Server.
  42. localHome = (MBeanHome)Helper.getMBeanHome(un, password , url, sn);
  43.  
  44. } catch (IllegalArgumentException iae) {            
  45. System.out.println("Illegal Argument Exception: " + iae);        
  46. }
  47.  
  48. try {    
  49.                 // Find JDBCConnectionPoolRuntime MBean. 
  50. mbeanSet = localHome.getMBeansByType("JDBCConnectionPoolRuntime");             
  51. mbeanIterator = mbeanSet.iterator();  
  52. sb = new StringBuffer();
  53.  
  54. while(mbeanIterator.hasNext()) {                
  55. jcpr = (JDBCConnectionPoolRuntimeMBean)mbeanIterator.next();
  56.  
  57.   // In case of dsn(MedRecPool-PointBase), extract monitoring value in the JDBC POOL like the bellowing example. Please refer to reference materials for each item. 
  58. if(jcpr.getName().equals(dsn)){
  59. sb.append(jcpr.getActiveConnectionsCurrentCount());
  60. sb.append(",");
  61. sb.append(jcpr.getCurrCapacity());
  62. sb.append(",");
  63. sb.append(jcpr.getNumAvailable());
  64. sb.append(",");
  65. sb.append(jcpr.getFailuresToReconnectCount());
  66. }     
  67. }
  68. } catch (Exception e) { 
  69. return null;
  70. // Return the result value as a String type. 
  71. return sb.toString();
  72. }
  73. }
  74.  

 

4、注册REMON Agent创建的类

 

       ①保存在JAR文件中创建的类,并将其放置在[REMON_HOME]/lib/script目录,让REMON加载这个类。

       ※weblogic.jar文件放在[REMON_HOME]/lib/sys目录下。

 

       ②创建像下面的脚本后,用扩展名CLS保存脚本到[REMON_HOME]/script目录。

       例如,WLJMX.cls

 

#  REMON Script Header

#$ id = WLJMX01

#$ interval = 3

#$ type = number

#$ agent = RA11

 

#$ url = t3://localhost:7001   Source code’s String url = properties.getProperty("url")

#$ username = weblogic  “String un = properties.getProperty("username")”

#$ password = qjGHo/nwIDcskAPtGQH+Uw== ” String pw = properties.getProperty("password”)”

#$ servername = MedRecServer  “String sn = properties.getProperty("servername")”

#$ dsname = MedRecPool-PointBase  “String dsn = properties.getProperty("dsname")”

 

#$ exec=com.jennifer.jmx.weblgic.RemonJMXWeblogic   Register the class 

 

       密码可以进行加密:选择左侧的password encryption菜单,输入字符串,并执行[Encrypt]。

       在REMON脚本(WLJMX.cls)设置密码。

 

 

       ③如何检查注册的REMON

       - 通过LoadScript命令注册新创建的文件(WLJMX.cls)。

       - 如果脚本没有显示在选定的窗口,按F5,再次选择窗口。

 

       ④如何启动脚本

       - 在“Message”列中检查该脚本的启动有没有任何错误。

       (如果在列中不能看到加载脚本后的任何消息,请单击Restart(绿色图标)按钮。)

 

5、配置WebLogic JMX监控仪表盘Dashboard

 

       ①为WLJMX(JDBC POOL) 添加仪表盘

       选择[Properties]->[Menu Setting] ->[Add]。

       ②如何配置仪表盘

       选择添加的WLJMX(JDBC POOL)仪表盘然后单击[Edit]按钮。

       ③如何添加JMX JDBC池监控每个项目中的图形

       创建RemonJMXWeblogic.class收集的每个监测图。

       选择使用自定义的图表图标。

       ④填写字段,如/Graph Type/Agent (REMON)/Script并使用REMON的选项窗口。输入被监测的数据字段值。在这个例子中,用户输入“1”监测“ActiveConnectionsCurrentCount”。

       ⑤使用拖动功能将图片放入您想要放的窗口。

       ⑥像上面的方式,为其他监测项目创造其他图片。

       ※在数据输入字段,按监视项目顺序设置数据。

       ⑦使用Pre-View函数检查新的监测图片。

       ※注:完整的仪表盘窗口可以用导出/导入功能存储,当用户配置另一个仪表盘时可以利用生成的模板文件。

6、JENNIFER软件下载试用:http://www.innovatedigital.com/download/jennifer