MasterAgent.java
3.64 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
package com.sitech.jmx;
import com.sitech.base.ACommonThread;
import com.sitech.base.AgentProperties;
import com.sitech.base.Config;
import com.sitech.database.dao.TbCfgEventDao;
import com.sitech.ismp.messageObject.AgentSyncRequest;
import com.sitech.jmx.adaptor.JmsAdaptor;
import com.sitech.jmx.adaptor.RmiAdaptor;
import com.sitech.jmx.manage.CollScheduleManager;
import com.sitech.jmx.manage.CronLogScan;
import com.sitech.jmx.manage.MBeanManager;
import com.sitech.jmx.manage.MessageSenderManager;
import com.sitech.jmx.manage.SwapMonitorThread;
import com.sitech.util.mq.MQConstants;
import com.sitech.util.mq.TunnelFactory;
import org.apache.log4j.Logger;
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
public class MasterAgent extends ACommonThread {
private static Logger logger = Logger.getLogger("LOGER");
private static Logger error = Logger.getLogger("ERROR");
private static Logger log = Logger.getLogger(MasterAgent.class);
private MBeanServer server;
public MasterAgent() {
super(AgentProperties.AGENT_ID, AgentProperties.PROCESS_KEY);
}
protected void process() {
createMBS();
registerScheduler();
registAdapter();
startJmsSender();
startSwapMonitorThread();
sendSyncRequest();
startCronScheduleLogThread();
}
/**
* 启动MBeanServer
*/
private void createMBS() {
log.info("MBeanServer create .....");
try {
server = MBeanServerFactory.createMBeanServer(AgentProperties.MBEAN_SERVER_DOMAIN);
MBeanManager manager = MBeanManager.getInstance();
manager.setMBeanServer(server);
log.info("MBeanServer create successful.");
} catch (Exception e) {
log.error("MBeanServer instance creation failed.", e);
}
}
/**
* 注册quartz调度
*/
private void registerScheduler() {
try {
CollScheduleManager collschedule = CollScheduleManager.getInstance();
collschedule.setMBeanServer(server);
collschedule.startSchedule();
log.info("Start quartz scheduler successful.");
} catch (Exception e) {
log.error("Exception while start quartz scheduler.", e);
}
}
/**
* 启动采集/告警配置同步接收
* 2012-12-20 改为MQ
*/
private void registAdapter() {
log.info("Start MQ adapter...");
String url = Config.WORKSTAITON_CONN_URL;
String queue = "Q_AGENT_" + AgentProperties.AGENT_ID;
JmsAdaptor jmsAdaptor = new JmsAdaptor(url, queue);
jmsAdaptor.start();
RmiAdaptor.getInstance().regist(server);
log.info("Start MQ adapter ok...");
}
/**s
* 启动指标数据和告警数据发送服务
*/
private void startJmsSender() {
log.info("Start all jms sender.");
new MessageSenderManager().startAllMessageSender();
log.info("Start all jms sender ok.");
}
/**
* 启动swap目录监控线程
*/
private void startSwapMonitorThread() {
SwapMonitorThread swapMonitorThread = new SwapMonitorThread();
swapMonitorThread.start();
log.info("Start swap path monitor thread successful.");
}
/**
* 启动cron日志目录监控线程
*/
private void startCronScheduleLogThread(){
new Thread(new CronLogScan(),"CronLogScan").start();
}
/**
* 发送告警配置和采集配置同步请求
*/
private void sendSyncRequest() {
new TbCfgEventDao().deleteTbCfgEventAll();
AgentSyncRequest request = new AgentSyncRequest();
request.setAgentId(AgentProperties.AGENT_ID);
TunnelFactory.getTunnel(MQConstants.Q_ROPORT_FROM_AGENT).writeData(request);
// MQSender mqSender = MQSenderFactory.createMQSender(
// Config.WORKSTAITON_CONN_URL, MQConstants.Q_ROPORT_FROM_AGENT);
// mqSender.writeData(request);
// mqSender.start();
log.info("Send sync request.");
}
public static void main(String[] args) {
new MasterAgent().start();
}
}