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接口,源代码:
- package com.jennifer.jmx.weblgic;
- import java.util.Iterator;
- import java.util.Set;
- import com.javaservice.remon.util.EncUtil;
- import remon.agent.AbstractClassScript;
- import weblogic.management.Helper;
- import weblogic.management.MBeanHome;
- import weblogic.management.runtime.JDBCConnectionPoolRuntimeMBean;
- public class RemonJMXWeblogic extends AbstractClassScript{
- public String process(String[] arg0) {
- // Through properties.getProperty, bring setting value configured in REMON Script.
- // properties.getProperty() is defined in AbstractClassScrip class.
- String url = properties.getProperty("url");
- String un = properties.getProperty("username");
- String pw = properties.getProperty("password");
- String sn = properties.getProperty("servername");
- String dsn = properties.getProperty("dsname");
- String password = "";
- StringBuffer sb = null;
- try {
- //Execute decoding of password code.
- password = EncUtil.decrypt(pw);
- } catch (Exception e1) {
- e1.printStackTrace();
- }
- JDBCConnectionPoolRuntimeMBean jcpr = null;
- Set mbeanSet = null;
- Iterator mbeanIterator = null;
- MBeanHome localHome = null;
- try {
- // Connect to WebLogic MBean Server.
- localHome = (MBeanHome)Helper.getMBeanHome(un, password , url, sn);
- } catch (IllegalArgumentException iae) {
- System.out.println("Illegal Argument Exception: " + iae);
- }
- try {
- // Find JDBCConnectionPoolRuntime MBean.
- mbeanSet = localHome.getMBeansByType("JDBCConnectionPoolRuntime");
- mbeanIterator = mbeanSet.iterator();
- sb = new StringBuffer();
- while(mbeanIterator.hasNext()) {
- jcpr = (JDBCConnectionPoolRuntimeMBean)mbeanIterator.next();
- // 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.
- if(jcpr.getName().equals(dsn)){
- sb.append(jcpr.getActiveConnectionsCurrentCount());
- sb.append(",");
- sb.append(jcpr.getCurrCapacity());
- sb.append(",");
- sb.append(jcpr.getNumAvailable());
- sb.append(",");
- sb.append(jcpr.getFailuresToReconnectCount());
- }
- }
- } catch (Exception e) {
- return null;
- }
- // Return the result value as a String type.
- return sb.toString();
- }
- }
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