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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
|
package com.nis.nmsclient.common;
import java.io.File;
import org.apache.commons.lang.StringUtils;
import com.nis.nmsclient.util.FileUtil;
public class Contants {
public static final String SYSTEM_PATH; //NMSClient应用启动主目录
/** ========= SSLSocket相关配置参数,客户与服务两端交互数据信息 ========**/
public static final String SOCKET_SERVER_HOST_KEY= "server_host";
public static String SOCKET_SERVER_HOST;//服务器IP
public static final Integer SOCKET_SERVER_PORT;//服务器端口
public static final Integer SOCKET_AGENT_PORT;//客户端端口
public static final Integer SOCKET_TIMEOUT_MINUTES;// Socket通信超时时间
public static final String SSL_KEY_STORE;//key证书库文件
public static final String SSL_TRUST_KEY_STORE;//认证证书库文件
public static final String SSL_JSSE_TYPE = "TLS";//类型TLS、SSL
public static final String SSL_KEYSTORE_TYPE = "JCEKS";//KeyStore的类型有:jceks、jks
public static final String SSL_KEY_PRIVATE_PASS = "123456";
public static final String SSL_KEY_STORE_PASS = "client";
public static final String keyPath;
/**=======================本地文件相关参数========================*/
public static final String localDetecConfSuffix;// 监测设置信息文件名后缀
public static final String localDetecConfPath;// 监测设置信息存放路径
public static final String localDataCollection;// 监测数据存放集
public static final String localDataFilePath;//------------监测数据存放路径
public static final String localDataDonePath;//------------成功处理数据存放路径
public static final String localDataErrorPath;//------------不完整数据0大小文件存放路径
public static final String localBackupPath;// 备份文件存放目录
public static final String localUploadsPath;// 推送文件存入目录
public static final String localTaskPath;// 任务相关信息存放目录
public static final String localTaskDonePath;// ------------成功处理任务存放目录
public static final String localTaskErrorPath;// -----------不完整0大小回传文件存放目录
public static final String localTaskResultPath;// ------------任务结果存放目录
public static final String localTaskReturnPath;// ------------任务回传文件存放目录
public static final String localLogsPath;// 日志存放路径
public static final String localTempPath;// 临时文件存放目录
public static final String localTempDataIncomingPath; // 第三方监测临时文件存放目录
public static final String localAgentPidFile;// Agent自身进程PID存放文件
public static final String localPluginScriptPath;// 第三方监测脚本存放目录
public static final String LOCAL_SCRIPT_PATH;
/**=======================系统预计监测类型========================*/
public static final String SYS_CHECK_TYPE_CPU;
public static final String SYS_CHECK_TYPE_MEMORY;
public static final String SYS_CHECK_TYPE_DISK;
public static final String SYS_CHECK_TYPE_NET;
public static final String SYS_CHECK_TYPE_SYSDATE;
public static final String SYS_CHECK_TYPE_PROCESS;
public static final String SYS_CHECK_TYPE_PROCESS_NMSAGENT;
public static final String SYS_CHECK_TYPE_SYSTEMINFO;
/** =====================Common时间时隔==================== **/
// ------------ 清除本地文件
public static final Integer COMMON_DEL_LOG_DAYS;// 删除日志文件间隔时间
public static final Integer COMMON_DEL_DATA_HOURS;// 删除数据文件间隔时间
public static final Integer COMMON_DEL_TASK_HOURS;// 删除任务相关文件间隔时间
public static final Integer COMMON_DEL_UPGRADEFILE_DAYS;// 删除升级文件间隔时间
public static final Integer COMMON_DEL_TEMP_DAYS;// 删除临时文件间隔时间
public static String[] COMMON_DEL_PATH_INCLUDE;// 指定Agent可删除文件的范围
public static String[] COMMON_DEL_PATH_EXCLUDE;// 指定Agent可删除文件范围内不可删除部分
// ------------ 监测、任务、预警
public static final Integer COMMON_ALARM_MINUTES = 5;// 主动告警轮循间隔时间
public static final Integer COMMON_TASK_RESULT_SEND_MINUTES = 5;// 重发之前发送失败的任务执行结果间隔时间
public static final Integer COMMON_TASK_INIT_DELAY_MINUTES = 2;// 启动时初始化任务请求延迟时间
public static final Integer COMMON_UPLOAD_DATA_MINUTES;// 上传数据轮循间隔时间
public static final Integer COMMON_TASK_CLEAR_HOURS;// 定时清理内存中已完成任务的间隔时间
// ------------线程池
public static final Integer COMMON_THREAD_SOCKET_SIZE ;// socket通信线程最大个数
public static final Integer COMMON_THREAD_SCHEDULE_SIZE;// 定时任务线程最大个数
// ------------打包上传
public static final Integer COMMON_ZIP_MIN_SIZE;// 文件数越过一定值时压缩用
public static final Integer COMMON_ZIP_MAX_SIZE;// 文件数越过一定值时压缩文件最多包含文件个数
public static final Integer COMMON_MAX_RETURN_CNT;// 回传文件数越过一定值时压缩用
// -----------任务结果、主动告警等信息中各字段的分隔符
public static final String COMMON_MSG_SEPRATOR = "$@$";
public static final String COMMON_MSG_SEPRATOR_SPLIT = "\\$@\\$";
public static final int COMMON_MSG_SUCCESS = 0;
public static final int COMMON_MSG_FAIL = 1;
// -----------设置文件编码方式
public static final String charset;
/** ========================告警状态常量========================== **/
//用于报警: -1监测执行失败,0监测信息不正常,1监测信息正常,-2异常主动告警,2主动告警恢复正常)
public static final int DETECTION_STATUS_FAILURE = -1;//监测执行失败
public static final int DETECTION_STATUS_ABNORMAL = 0;//监测信息不正常
public static final int DETECTION_STATUS_NORMAL = 1;//监测信息正常
//public static final int DETECTION_ALARM_ABNORMAL = -2;//告警检查:监测线程异常(未取到数据,相应的文件找不到,或者连续N次都超过设置的告警值)
//public static final int DETECTION_ALARM_NORMAL = 2;//告警检查:监测线程恢复正常
/** ========================任务部分文件后缀============================ **/
public static final String TASK_RESULT_FILE_SUFFIX = ".result";
public static final String TASK_RESULT_AGENTTMPFILE_SUFFIX = ".upgrade";
public static final String TASK_RETURN_FILE_SUFFIX = ".return";
/** ========================Debug============================ **/
public static final Integer DEBUG_INIT_TASK_FLAG;
public static final Integer DEBUG_PLUGIN_FLAG;
public static final Integer DEBUG_SYSDETECT_FLAG;
public static final Integer DEBUG_UPLOADDATA_FLAG;
public static final Integer DEBUG_ALARM_FLAG;
public static final Integer DEBUG_DELFILE_FLAG;
public static final Integer DEBUG_TASKRESULT_FLAG;
public static final Integer DEBUG_TASKRETURN_FLAG;
//=================
public static final int max_times = 5;// 失败后重试次数
public static final long max_delay_seconds = 30;// 重试间隔,秒
public static final int noDataTimes = 4;// 未取到数据的次数,用于主动告警
public static final int overAlarmValTimes = 4;// 连续超过预警值的次数,用于主动告警
//--------------Agent唯一标志UUID
public static Long AGENT_HOST_UUID = null;
public static String AGENT_OPERATE_SYSTEM = null;
public static String AGENT_LOCAL_IP = null;
public static final String DETEC_STATE_INFO_FORMATE_POINT = "$@$";//用于监测数据的状态信息web界面显示的格式化的连接符
public static Boolean ACTIIVE_ALARM_START = false;//默认不启动主动告警
public static String AGENT_INTERFACE_NAME_KEY = null;//网络端口名称
/**
* 监测数据主动上报
*/
//监测数据主动上报
public static final int DATA_SEND_THREAD_FLAG;
//主动数据上报 IP
public static final String DATA_SEND_THREAD_HOST;
//主动数据上报 PORT
public static final int DATA_SEND_THREAD_PORT;
//主动数据上报间隔 INTERVAL,单位 10 S
public static final int DATA_SEND_THREAD_INTERVAL;
static{
SYSTEM_PATH = SysConfig.getSystemDir();
// -------------------SSLSocket
SOCKET_SERVER_HOST = SysConfig.getStringVal(SOCKET_SERVER_HOST_KEY);
SOCKET_SERVER_PORT = SysConfig.getIntegerVal("server_port");
SOCKET_AGENT_PORT = SysConfig.getIntegerVal("agent_port");
SOCKET_TIMEOUT_MINUTES = SysConfig.getIntegerVal("socket.timeout.minutes", "30");
SSL_KEY_STORE = formatPath(SysConfig.getStringVal("local.ssl.keys"));
SSL_TRUST_KEY_STORE = formatPath(SysConfig.getStringVal("local.ssl.trust"));
keyPath = formatPath(SysConfig.getStringVal("local.ssl.path"));
/*=======================文件相关参数========================*/
// 可删范围
String path = SysConfig.getStringVal("common.del.path.include");
if(path!=null && !"".equals(path)){
COMMON_DEL_PATH_INCLUDE = path.split(",");
for(int i=0; i<COMMON_DEL_PATH_INCLUDE.length; i++){
COMMON_DEL_PATH_INCLUDE[i] = FileUtil.handlerPath(COMMON_DEL_PATH_INCLUDE[i]);
}
}
// 禁删范围
path = SysConfig.getStringVal("common.del.path.exclude");
if(path!=null && !"".equals(path)){
COMMON_DEL_PATH_EXCLUDE = path.split(",");
for(int i=0; i<COMMON_DEL_PATH_EXCLUDE.length; i++){
COMMON_DEL_PATH_EXCLUDE[i] = FileUtil.handlerPath(COMMON_DEL_PATH_EXCLUDE[i]);
}
}
// 文件总路径
String localFilePath = SysConfig.getStringVal("local.data.path");
// ---------------Local Path
LOCAL_SCRIPT_PATH = formatPath(SysConfig.getStringVal("local.script.path"));
localDetecConfSuffix = SysConfig.getStringVal("local.config.file.suffix");
localAgentPidFile = formatPath(SysConfig.getStringVal("local.agent.pidfile"));
localDetecConfPath = localFilePath + File.separator + "nc_config";
localPluginScriptPath = localFilePath + File.separator + "nc_detecScript";
localDataCollection = localFilePath + File.separator + "nc_data";
localDataFilePath = localDataCollection + File.separator + "incoming";
localDataDonePath = localDataCollection + File.separator + "done";
localDataErrorPath = localDataCollection + File.separator + "error";
localBackupPath = localFilePath + File.separator + "nc_backup";
localUploadsPath = localFilePath + File.separator + "nc_uploads";
localTaskPath = localFilePath + File.separator + "nc_task";
localTaskDonePath = localTaskPath + File.separator + "done";// 成功处理任务存放目录
localTaskErrorPath = localTaskPath + File.separator + "error";// 成功处理任务存放目录
localTaskResultPath = localTaskPath + File.separator + "incoming" + File.separator + "result";//任务结果存放目录
localTaskReturnPath = localTaskPath + File.separator + "incoming" + File.separator + "return";//任务回传文件存放目录
localLogsPath = formatPath(SysConfig.getLogPath());
localTempPath = localFilePath + File.separator + "nc_temp";
localTempDataIncomingPath = localDataCollection + File.separator + "temp";
// ---------------字符编码
charset = SysConfig.getStringVal("charset");
// ---------------System Check Type
SYS_CHECK_TYPE_CPU = SysConfig.getStringVal("sys.check.type.cpu", "cpu");
SYS_CHECK_TYPE_MEMORY = SysConfig.getStringVal("sys.check.type.memory", "memory");
SYS_CHECK_TYPE_DISK = SysConfig.getStringVal("sys.check.type.disk", "disk");
SYS_CHECK_TYPE_NET = SysConfig.getStringVal("sys.check.type.net", "net");
SYS_CHECK_TYPE_SYSDATE = SysConfig.getStringVal("sys.check.type.systemdate", "systemdate");
SYS_CHECK_TYPE_PROCESS = SysConfig.getStringVal("sys.check.type.process", "process");
SYS_CHECK_TYPE_PROCESS_NMSAGENT = SysConfig.getStringVal("sys.check.type.process.nmsagent", "nmsclient");
SYS_CHECK_TYPE_SYSTEMINFO = SysConfig.getStringVal("sys.check.type.systeminfo", "systeminfo");
// --------------Common Clear Gaps
COMMON_DEL_LOG_DAYS = SysConfig.getIntegerVal("common.del.log.days", "7");
COMMON_DEL_DATA_HOURS = SysConfig.getIntegerVal("common.del.data.hours", "24");
// 2013-5-20 添加功能 删除任务相关信息最小时间,不得少于一天
if(COMMON_DEL_DATA_HOURS > 24){
COMMON_DEL_TASK_HOURS = COMMON_DEL_DATA_HOURS;
}else{
COMMON_DEL_TASK_HOURS = 24;
}
COMMON_DEL_UPGRADEFILE_DAYS = SysConfig.getIntegerVal("common.del.upgradefile.days", "30");
COMMON_DEL_TEMP_DAYS = SysConfig.getIntegerVal("common.del.temp.days", "2");
COMMON_UPLOAD_DATA_MINUTES = SysConfig.getIntegerVal("common.upload.data.minutes", "5");
COMMON_TASK_CLEAR_HOURS = SysConfig.getIntegerVal("common.task.clear.hours", "2");
// -------------- ThreadPool
COMMON_THREAD_SOCKET_SIZE = SysConfig.getIntegerVal("common.thread.socket.size", "10");
COMMON_THREAD_SCHEDULE_SIZE = SysConfig.getIntegerVal("common.thread.schedule.size", "15");
// -------------- Compress
COMMON_ZIP_MIN_SIZE = SysConfig.getIntegerVal("common.zip.min.size", "1000");
COMMON_ZIP_MAX_SIZE = SysConfig.getIntegerVal("common.zip.max.size", "2000");
COMMON_MAX_RETURN_CNT = SysConfig.getIntegerVal("common.max.return.size", "10");
// ----------------Debug
DEBUG_INIT_TASK_FLAG = SysConfig.getIntegerVal("debug.init.task.flag", "0");
DEBUG_PLUGIN_FLAG = SysConfig.getIntegerVal("debug.plugin.flag", "0");
DEBUG_SYSDETECT_FLAG = SysConfig.getIntegerVal("debug.sysdetect.flag", "0");
DEBUG_UPLOADDATA_FLAG = SysConfig.getIntegerVal("debug.uploaddata.flag", "0");
DEBUG_ALARM_FLAG = SysConfig.getIntegerVal("debug.alarm.flag", "0");
DEBUG_DELFILE_FLAG = SysConfig.getIntegerVal("debug.delfile.flag", "0");
DEBUG_TASKRESULT_FLAG = SysConfig.getIntegerVal("debug.taskresult.flag", "0");
DEBUG_TASKRETURN_FLAG = SysConfig.getIntegerVal("debug.taskreturn.flag", "0");
// ACTIIVE_ALARM_START = SysConfig.getStringVal("active.alarm.start", "true");//是否启用主动告警,默认不启动主动告警---用于nc配置文件,现修改为从web控制
//监测数据主动上报
DATA_SEND_THREAD_FLAG = SysConfig.getIntegerVal("data.send.thread.flag", "0");
//主动数据上报 IP
DATA_SEND_THREAD_HOST = SysConfig.getStringVal("data.send.thread.host", SOCKET_SERVER_HOST);
//主动数据上报 PORT
DATA_SEND_THREAD_PORT = SysConfig.getIntegerVal("data.send.thread.port", "9527");
//主动数据上报间隔 INTERVAL,单位 10 S
DATA_SEND_THREAD_INTERVAL = SysConfig.getIntegerVal("data.send.thread.interval", "10");
// 初始化创建文件夹
if(!new File(localDetecConfPath).exists()){
new File(localDetecConfPath).mkdirs();
}
if(!new File(localPluginScriptPath).exists()) {
new File(localPluginScriptPath).mkdirs();
}
if(!new File(localDataCollection).exists()){
new File(localDataCollection).mkdirs();
}
if(!new File(localBackupPath).exists()){
new File(localBackupPath).mkdirs();
}
if(!new File(localUploadsPath).exists()){
new File(localUploadsPath).mkdirs();
}
if(!new File(localTaskPath).exists()){
new File(localTaskPath).mkdirs();
}
if(!new File(localTempPath).exists()){
new File(localTempPath).mkdirs();
}
if(!new File(localTempDataIncomingPath).exists()){
new File(localTempDataIncomingPath).mkdirs();
}
}
private static String formatPath(String path){
String returnPath = path;
if(path!=null && !"".equals(path) && !new File(path).isAbsolute()){// 路径不为空且是相对路径
returnPath = SYSTEM_PATH + File.separator + path;
}
return returnPath;
}
public static boolean isSucessByResult(String msg){
boolean flag = false;
if (!StringUtils.isEmpty(msg)) {
String[] result = msg.split(Contants.COMMON_MSG_SEPRATOR_SPLIT);
if (result != null && result.length > 0) {
if (Integer.parseInt(result[0])==Contants.COMMON_MSG_SUCCESS) {
flag = true;
}
}
}
return flag;
}
public static String getDescByResult(String msg){
String desc = null;
if (!StringUtils.isEmpty(msg)) {
String[] result = msg.split(Contants.COMMON_MSG_SEPRATOR_SPLIT);
if (result != null && result.length > 1) {
desc = result[1];
}
}
return desc;
}
}
|