CheckAllHost.java 8.1 KB
package com.sitech.ismp.coll.tivoli;

import java.io.File;
import java.util.Date;
import java.util.Enumeration;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.Vector;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

import com.sitech.ismp.coll.basic.TblATO_KPIDETAIL;

/**
 * 该类只采集 规范中的 ibm提供采集方法的 主机相关指标
 *
 * @author winnerbao
 *
 */
public class CheckAllHost {

    CollHost collHost = new CollHost("10-10-20");

    CollHostConfig config = new CollHostConfig("10-10-20");

    static ResourceBundle properhostname = null;

    static {
        try {
            properhostname = ResourceBundle.getBundle("soap_host_name");
        } catch (Exception e) {
            System.out.println("Bundle soap_host_name.properties error.");
            e.printStackTrace();
        }
    }

    public static void printKPIs(Vector KPISet) {
        for (int i = 0; i < KPISet.size(); i++) {
            TblATO_KPIDETAIL tblato_kpidetail = (TblATO_KPIDETAIL) KPISet
                    .elementAt(i);
            if (tblato_kpidetail == null)
                continue;
            System.out.println(tblato_kpidetail.UNIT_ID + " : "
                    + tblato_kpidetail.KPI_ID + " : "
                    + tblato_kpidetail.KPI_VALUE + " : "
                    + tblato_kpidetail.CLL_TIME);
        }
    }

    public static void printHostKPIStatus(String filename) throws Exception {
        Enumeration en = properhostname.getKeys();
        WritableWorkbook workbook = Workbook.createWorkbook(new File(filename));
        WritableSheet sheet = workbook.createSheet("First Sheet", 0);
        // 写KPI头
        Vector vector = new Vector();
        String empty[][] = CheckKPIHelper.Check_AIX_HOST_KPI(vector);
        for (int i = 0; i < empty.length; i++) {
            Label label1 = new Label(i + 1, 0, empty[i][0]);
            sheet.addCell(label1);
        }
        int rownum = 0;
        while (en.hasMoreElements()) {
            rownum++;
            String temphostname = (String) en.nextElement();
            String hostname = temphostname.replaceAll("_SOAP", "");

            // 写hostname
            Label label = new Label(0, rownum, hostname);
            sheet.addCell(label);

            CollAix aix = new CollAix();
            java.util.HashMap params = new java.util.HashMap();
            params.put("HOST_NAME", hostname);
            params.put("IP_ADDR", "10.110.2.136");

            java.util.Vector v = new java.util.Vector();

            v.addAll(aix.getConfiguration(params));
            v.addAll(aix.getConfiguration_One_Day(params));
            v.addAll(aix.getFailure(params));
            v.addAll(aix.getPerformance_Fifteen_Minute(params));
            v.addAll(aix.getPerformance_One_Hour(params));
            v.addAll(aix.getPerformance_Ten_Minute(params));

            // printKPIs(v);
            String temp[][] = CheckKPIHelper.Check_AIX_HOST_KPI(v);
            for (int i = 0; i < temp.length; i++) {
                Label label2 = new Label(i + 1, rownum, temp[i][1]);
                sheet.addCell(label2);
            }
        }

        workbook.write();
        workbook.close();
        System.out.println(filename + " write finish!");
    }

    public static void getBnms_as1_Ping() throws Exception {
        String SOAP_URL = "http://10.110.16.201:1920///cms/soap";
        SoapClient soapClient = new SoapClient(SOAP_URL);

        Enumeration en = properhostname.getKeys();
        while (en.hasMoreElements()) {
            String temphostname = (String) en.nextElement();
            String hostname = temphostname.replaceAll("_SOAP", "");
            String soap_host_status1 = CollHostSoapHelper
                    .getSoap_PINGSERVERSPINGSTATS00_From_bnms_as1(hostname);
            String soap_host_status1_res = soapClient
                    .getSoapStringResponse(soap_host_status1);
            List Host_Status_result1 = CollHostXmlHelper
                    .parseSoapResponse(soap_host_status1_res);
            if (Host_Status_result1 == null || Host_Status_result1.size() == 0) {
                System.out.println("Host Name : " + hostname
                        + "	Status : No Status");
            } else {
                Map statusMap = (Map) Host_Status_result1.get(0);
                String status = ((String) statusMap.get("Status"))
                        .toUpperCase();
                System.out.println("Host Name : " + hostname + "	Status : "
                        + status);
            }
        }
        System.out.println();
        System.out.println("-----finish-----");
    }

    /**
     * 如果bool=ture表示打印出所有主机的所有KPI的状态(exist/inexistence)
     * 如果bool=false表示打印出所有主机的所有未采集到KPI状态(exist)
     *
     * @param bool
     * @throws Exception
     */
    public static void getAll_KPI_Status(boolean bool) throws Exception {
        Enumeration en = properhostname.getKeys();
		/*
		 * int num = 0; while(en.hasMoreElements()) { num++; }
		 * System.out.println("====================Test Host Number Is : " + num +
		 * "===================="); System.out.println(); System.out.println();
		 */
        while (en.hasMoreElements()) {
            String temphostname = (String) en.nextElement();
            String hostname = temphostname.replaceAll("_SOAP", "");

            System.out.println("Test HostName Is : " + hostname);
            System.out.println(hostname + " Is HA HOST : "
                    + HaHostHelper.isHaHost(hostname));
            System.out.println("========================================");

            CollAix aix = new CollAix();
            java.util.HashMap params = new java.util.HashMap();
            params.put("HOST_NAME", hostname);
            params.put("IP_ADDR", "10.110.2.136");

            java.util.Vector v = new java.util.Vector();

            v.addAll(aix.getConfiguration(params));
            v.addAll(aix.getConfiguration_One_Day(params));
            v.addAll(aix.getFailure(params));
            v.addAll(aix.getPerformance_Fifteen_Minute(params));
            v.addAll(aix.getPerformance_One_Hour(params));
            v.addAll(aix.getPerformance_Ten_Minute(params));

            // printKPIs(v);
            String temp[][] = CheckKPIHelper.Check_AIX_HOST_KPI(v);
            for (int i = 0; i < temp.length; i++) {
                if (bool == false && temp[i][1].equalsIgnoreCase("inexistence")) {
                    System.out.println("KPI_ID : " + temp[i][0] + "---"
                            + temp[i][1]);
                }
                if (bool == true) {
                    System.out.println("KPI_ID : " + temp[i][0] + "---"
                            + temp[i][1]);
                }
            }
            System.out.println("========================================");
            System.out.println();
        }
        System.out.println("====================FINASH====================");
    }

    public static void main(String[] args) throws Exception {
        // CheckAllHost.getAll_KPI_Status(true); //采集所有主机的所有KPI状态
        // CheckAllHost.getAll_KPI_Status(false); //采集所有主机的所有为采集到的KPI
        // CollAixMBean aix = new CollAix();
        // java.util.HashMap params = new java.util.HashMap();
        // params.put("HOST_NAME","itmd-tvl");
        // Vector vec=aix.getMemory(params);
        // String temp[][]=CheckKPIHelper.Check_AIX_HOST_KPI(vec);
        // for(int i=0;i<temp.length;i++)
        // {
        // System.out.println("KPI_ID : " + temp[i][0] + "---" + temp[i][1]);
        // }
        // aix.collCpu(params);
        // aix.collFileSystem(params);
        // aix.getDisk(params);
        // aix.collMemory(params);
        // aix.collNetwork(params);
        // aix.collProcess(params);
        String filename = "AllHostKPIStatus.xls";
        Date date=new Date();
        long begin =date.getTime();
        printHostKPIStatus(filename);
        Date dateEnd=new Date();
        long end=dateEnd.getTime();
        System.out.println(end-begin);
        // getBnms_as1_Ping();
    }

}