CollSUNHost.java
4.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
package com.sitech.ismp.coll.centercoll;
import java.util.HashMap;
import java.util.Scanner;
import java.util.Vector;
import com.sitech.ismp.coll.basic.TblATO_KPIDETAIL;
import com.sitech.util.DES3;
/**
* SUN主机集中采集
*/
public class CollSUNHost implements CollSUNHostMBean {
/**
* 采集全部指标
*/
public Vector<TblATO_KPIDETAIL> getAll(HashMap<String, String> params) {
Vector<TblATO_KPIDETAIL> result = new Vector<TblATO_KPIDETAIL>();
result.addAll(getConfig(params));
result.addAll(getCpu(params));
result.addAll(getMemory(params));
result.addAll(getDisk(params));
result.addAll(getFileSystem(params));
return result;
}
/**
* 采集配置信息
*/
public Vector<TblATO_KPIDETAIL> getConfig(HashMap<String, String> params) {
CollSUNWithCMD cmd = new CollSUNWithCMD();
return cmd.getConfig(params);
}
/**
* 采集CPU性能指标
*/
public Vector<TblATO_KPIDETAIL> getCpu(HashMap<String, String> params) {
CollSUNWithCMD cmd = new CollSUNWithCMD();
return cmd.getCpu(params);
}
/**
*
* PM-00-01-002-01 内存的使用率 vmstat 中的memory - free *4k 为空闲内存
* PM-00-01-002-02 内存交换请求数 vmstat 中的page - fr
* PM-00-01-002-03 内存交换页换进率 vmstat 中的page - pi
* PM-00-01-002-04 内存交换页换出率 vmstat 中的page - po
* PM-00-01-002-05 内存队列数 等待内存的进程或线程数量vmstat 中的 kthr - r
* PM-00-01-002-06 系统内存使用率 系统内存占所有物理内存的百分比 无此概念
* PM-00-01-002-07 用户内存使用率 用户内存占所有物理内存的百分比 无此概念
* PM-00-01-002-08 文件系统数据缓冲命中率 文件系统数据缓冲命中率
*/
public Vector<TblATO_KPIDETAIL> getMemory(HashMap<String, String> params) {
CollSUNWithCMD cmd = new CollSUNWithCMD();
return cmd.getMemory(params);
}
/**
* 采集磁盘性能指标
*/
public Vector<TblATO_KPIDETAIL> getDisk(HashMap<String, String> params) {
CollSUNWithCMD cmd = new CollSUNWithCMD();
return cmd.getDisk(params);
}
/**
* 采集文件系统性能指标
* PM-00-01-004-01 文件系统使用比率 文件系统已使用的空间与总空间的比值
* PM-00-01-004-02 交换区使用百分比 交换区使用百分比
* PM-00-01-004-03 逻辑卷(裸设备)文件系统使用率 各逻辑卷上文件系统的使用率
*/
public Vector<TblATO_KPIDETAIL> getFileSystem(HashMap<String, String> params) {
CollSUNWithCMD cmd = new CollSUNWithCMD();
return cmd.getFileSystem(params);
}
private static String read(String prompt) {
Scanner scanner = new Scanner(System.in);
System.out.print(prompt);
return scanner.nextLine();
}
public static void main(String[] args) {
System.out
.println("***************Solaris Center Collect Test Begin*********************");
String ipAddr = read("IP_ADDR(remote host ip):\n");
String username = read("USERNAME:\n");
String password = read("PASSWORD:\n");
String prototal = read("PROTOTAL(ssh/telent):\n");
String hostName = read("HOST_NAME(remote host name):\n");
String specPrompt = read("SPEC_PROMPT(like /yfbnms>):\n");
String methodStr = read("METHOD(0:getAll, 1:getConfig, 2:getCpu, 3:getMemory, 4:getDisk, 5:getFileSystem):\n");
System.out.println("IP_ADDR=" + ipAddr + ", USERNAME=" + username
+ ", PASSWORD=" + password + ", PROTOTAL=" + prototal
+ ", HOST_NAME=" + hostName + ", METHOD=" + methodStr);
HashMap<String, String> params = new HashMap<String, String>();
params.put("IP_ADDR", ipAddr);
params.put("USERNAME", username);
params.put("PASSWORD", DES3.encrypt(password));
params.put("PROTOCOL", prototal);
params.put("HOSTNAME", hostName);
params.put("SPEC_PROMPT", specPrompt);
int method = Integer.parseInt(methodStr);
Vector<TblATO_KPIDETAIL> result = new Vector<TblATO_KPIDETAIL>();
CollSUNHost collector = new CollSUNHost();
switch (method) {
case 0:
result.addAll(collector.getConfig(params));
result.addAll(collector.getCpu(params));
result.addAll(collector.getMemory(params));
result.addAll(collector.getDisk(params));
result.addAll(collector.getFileSystem(params));
break;
case 1:
result.addAll(collector.getConfig(params));
break;
case 2:
result.addAll(collector.getCpu(params));
break;
case 3:
result.addAll(collector.getMemory(params));
break;
case 4:
result.addAll(collector.getDisk(params));
break;
case 5:
result.addAll(collector.getFileSystem(params));
break;
default:
break;
}
System.out
.println("***************Solaris Center Collect Test End*********************");
System.out.println();
for (int i = 0; i < result.size(); i++) {
TblATO_KPIDETAIL record = (TblATO_KPIDETAIL) result.get(i);
System.out.println(record.UNIT_ID + "\t" + record.KPI_ID + "\t"
+ record.KPI_VALUE);
}
}
}