CollTuxedoWithTelnet.java 7.57 KB
/*
 KPI_ID	KPI名称	KPI描述	Tuxedo
 PM-00-04-01-01	客户端连接的队列个数	交易中间件用于响应客户端请求的进程队列个数	tuxTmachine.tuxTmachineActive获取,但得不到	1.3.6.1.4.1.140.300.1.2 WSL信息
 PM-00-04-01-02	服务个数	交易中间件提供的服务的总数	1.3.6.1.4.1.140.300.20.1.1.1  总个数
 PM-00-04-01-03	队列等待数	交易中间件工作队列排队数	tuxTmachine.tuxTmachineActive获取,但得不到
 PM-00-04-01-04	进程队列中消息个数	应用进程队列中消息个数	tuxTmachine.tuxTmachineActive获取,但得不到	none
 PM-00-04-01-05	应用进程负载	每个应用进程完成的服务调用的次数	tuxTmachine.tuxTmachineActive获取,但得不到
 PM-00-04-01-06	客户端活动连接数	正在执行操作的客户端连接个数	tuxTmachine.tuxTmachineActive获取,但得不到
 FM-00-04-01-01	应用服务状态(可选)	服务是否正常启动并处于可用状态	1.3.6.1.4.1.140.300.20.1.1.5.0	"1.3.6.1.4.1.140.300.20.1.1.3.0  server的名字
 针对单个service"
 FM-00-04-01-02	中间件可用性	中间件代理服务是否正常启动并处于可用状态	1.3.6.1.4.1.140.300.5.1.1.4.0
 FM-00-04-01-03	客户端连接的队列个数	交易中间件用于响应客户端请求的进程队列个数	tuxTmachine.tuxTmachineActive获取,但得不到
 CM-00-04-01-01	中间件最大并发连接数	与数据库连接数	1.3.6.1.4.1.140.300.5.1.1.16.0
 CM-00-04-01-02	中间件最大并发网络客户端数量	与客户端连接数	1.3.6.1.4.1.140.300.5.1.1.13.0
 CM-00-04-01-03	中间件的系统日志路径	中间件的系统日志路径	1.3.6.1.4.1.140.300.5.1.1.4.0
 CM-00-04-01-04	中间件的用户日志路径	中间件的用户日志路径	1.3.6.1.4.1.140.300.5.1.1.11.0
 *
 */

/*
 * usage:以启动tuxedo应用的用户登录,进入到tuxedo/udataobj/snmp/etc目录下,执行命令tux_snmpd -s -p 5161
 */
package com.sitech.ismp.coll;

import java.util.HashMap;
import java.util.Vector;

public class CollTuxedoWithTelnet implements CollTuxedoMBeanbak {
	String KBP_ID = "10-12-12"; // Tuxedo标识

	String kbp_id = "10-11-12";

	String routerip = null;

	String ObjectIP = null;

	String SHELLPATH = null;

	String communication = "public";

	String username = null;

	String password = null;

	String cPort = null;

	int port = 5161;

	public CollTuxedoWithTelnet() {
	}

	public Vector getConfiguration(String IP, String username, String Password) {
		Vector result = null;
		try {
			this.ObjectIP = IP;
			TelnetTarget telnetTarget = new TelnetTarget();
			telnetTarget.init(ObjectIP, username, Password);
			result = getConfiguration(telnetTarget);
			telnetTarget.release();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}

	public Vector getPerformance(String IP, String username, String Password) {
		Vector result = null;
		try {
			this.ObjectIP = IP;
			TelnetTarget telnetTarget = new TelnetTarget();
			telnetTarget.init(ObjectIP, username, Password);
			result = getPerformance(telnetTarget);
			telnetTarget.release();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}

	private boolean getParams(java.util.HashMap params) {
		username = (String) params.get("USERNAME");
		password = (String) params.get("PASSWORD");
		ObjectIP = (String) params.get("IP_ADDR");
		SHELLPATH = (String) params.get("SHELLPATH");
		password = com.sitech.util.DES3.decrypt(password);
		if (SHELLPATH == null) {
			SHELLPATH = "";
		}
		return true;
	}

	public java.util.Vector getConfiguration(java.util.HashMap params)
			throws Exception {
		getParams(params);
		return getConfiguration(ObjectIP, username, password);
	}

	public java.util.Vector getPerformance(java.util.HashMap params)
			throws Exception {
		getParams(params);
		return getPerformance(ObjectIP, username, password);
	}

	/*
	 * CM-00-04-001-01 中间件最大并发连接数 1.3.6.1.4.1.140.300.5.1.1.16.0 CM-00-04-001-02
	 * 中间件最大并发网络客户端数量 1.3.6.1.4.1.140.300.5.1.1.13.0 CM-00-04-001-03 中间件的系统日志路径
	 * 1.3.6.1.4.1.140.300.5.1.1.4.0 CM-00-04-001-04 中间件的用户日志路径
	 * 1.3.6.1.4.1.140.300.5.1.1.11.0
	 */
	private Vector getConfiguration(TelnetTarget telnetTarget) {
		String KBP_ID = this.KBP_ID + "-11" + ":" + ObjectIP + "-" + username;

		CollBase collbase = new CollBase();
		try {
			collbase.addKPI(KBP_ID, "CM-00-04-001-01", telnetTarget
					.getCommandResult(SHELLPATH + "CM-00-04-001-01.sh"));
			collbase.addKPI(KBP_ID, "CM-00-04-001-02", telnetTarget
					.getCommandResult(SHELLPATH + "CM-00-04-001-02.sh"));
			collbase.addKPI(KBP_ID, "CM-00-04-001-03", telnetTarget
					.getCommandResult(SHELLPATH + "CM-00-04-001-03.sh"));
			collbase.addKPI(KBP_ID, "CM-00-04-001-04", telnetTarget
					.getCommandResult(SHELLPATH + "CM-00-04-001-01.sh"));
		} catch (Exception e) {
			e.printStackTrace();
		}
		return collbase.KPISet;
	}

	/*
	 * PM-00-04-001-01 客户端连接的队列个数 ,取正运行的Queue Name的个数TuxedoTotalQueued.sh
	 * PM-00-04-001-02 服务个数 1.3.6.1.4.1.140.300.20.1.1.1 FM-00-04-001-01
	 * 应用服务状态(可选) 1.3.6.1.4.1.140.300.20.1.1.5.0 FM-00-04-001-02 中间件可用性
	 * 1.3.6.1.4.1.140.300.5.1.1.4.0 FM-00-04-001-03 客户端连接的队列个数 ,取正运行的Queue
	 * Name的个数 PM-00-04-001-03 队列等待数 TuxedoTotalQueued.sh PM-00-04-001-04
	 * 进程队列中消息个数 NaN PM-00-04-001-05 应用进程负载 ,Queued求和 PM-00-04-001-06 客户端活动连接数
	 * ,取正运行的server的个数
	 */
	private Vector getPerformance(TelnetTarget telnetTarget) {
		String KBP_ID = this.KBP_ID + "-12" + ":" + ObjectIP + "-" + username;

		CollBase collbase = new CollBase();
		try {
			collbase.addKPI(KBP_ID, "FM-00-04-001-01", telnetTarget
					.getCommandResult(SHELLPATH + "FM-00-04-001-01.sh")); // 有WSL进程
			collbase.addKPI(KBP_ID, "FM-00-04-001-02", telnetTarget
					.getCommandResult(SHELLPATH + "FM-00-04-001-02.sh")); // 有BBL进程
			// collbase.addKPI(KBP_ID,"FM-00-04-001-03",telnetTarget.getCommandResult(SHELLPATH+"FM-00-04-001-03.sh"));
			// //

			collbase.addKPI(KBP_ID, "PM-00-04-001-01", telnetTarget
					.getCommandResult(SHELLPATH + "PM-00-04-001-01.sh"));
			collbase.addKPI(KBP_ID, "PM-00-04-001-02", telnetTarget
					.getCommandResult(SHELLPATH + "PM-00-04-001-02.sh"));
			collbase.addKPI(KBP_ID, "PM-00-04-001-03", telnetTarget
					.getCommandResult(SHELLPATH + "PM-00-04-001-03.sh"));
			collbase.addKPI(KBP_ID, "PM-00-04-001-04", telnetTarget
					.getCommandResult(SHELLPATH + "PM-00-04-001-04.sh"));
			collbase.addKPI(KBP_ID, "PM-00-04-001-05", telnetTarget
					.getCommandResult(SHELLPATH + "PM-00-04-001-05.sh"));
			collbase.addKPI(KBP_ID, "PM-00-04-001-06", telnetTarget
					.getCommandResult(SHELLPATH + "PM-00-04-001-06.sh"));
		} catch (Exception e) {
			e.printStackTrace();
		}
		return collbase.KPISet;
	}
	
	public Vector getOverstock(HashMap params) throws Exception {
		return null;
	}

	public Vector getOverstock(String IP, String username, String password)
			throws Exception {
		return null;
	}

	public static void main(String[] argv) throws Exception {
		CollTuxedoWithTelnet colltuxedo = new CollTuxedoWithTelnet();

		HashMap params = new HashMap();
		params.put("IP_ADDR", "10.161.1.183");
		params.put("USERNAME", "iboss1");
		params.put("PASSWORD",
				"54413f00fe06ef3628e659848f4f9055fbbad619e3b5cb7a");
		params.put("SHELLPATH", "/ibnms/ismp/bnms_agent/tuxedo/");

		Vector result = new Vector();
		result = colltuxedo.getConfiguration(params);
		CollBase collbase = new CollBase();
		collbase.displayKPI(result);
		result = colltuxedo.getPerformance(params);

		collbase.displayKPI(result);

	}
}