优化实时95值计算功能、服务器收益功能、用户自定义列展示、交换机基础数据采集
This commit is contained in:
@@ -24,7 +24,6 @@ import org.springframework.data.redis.core.RedisOperations;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.core.SessionCallback;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
@@ -651,7 +650,7 @@ public class DeviceMessageHandler {
|
||||
}
|
||||
|
||||
// 添加一个定时任务方法,定期检查心跳状态
|
||||
@Scheduled(fixedRate = 60000) // 每60s检查一次
|
||||
// @Scheduled(fixedRate = 60000) // 每60s检查一次
|
||||
public void checkHeartbeatStatus() {
|
||||
long currentTime = System.currentTimeMillis();
|
||||
log.debug("开始心跳状态检查,当前时间: {}", currentTime);
|
||||
|
||||
@@ -115,6 +115,7 @@ public class MessageHandler {
|
||||
private void handleNetWorkDelectMessage(DeviceMessage message) {
|
||||
List<RegisterMsgVo> interfaces = JsonDataParser.parseJsonData(message.getData(), RegisterMsgVo.class);
|
||||
if(!interfaces.isEmpty()) {
|
||||
String clientId = message.getClientId();
|
||||
RegisterMsgVo registerMsg = interfaces.get(0);
|
||||
// 时间戳转换
|
||||
long timestamp = registerMsg.getTimestamp();
|
||||
@@ -126,6 +127,7 @@ public class MessageHandler {
|
||||
NetworkInfo networkInfo = networkInfoList.get(0);
|
||||
// 查询该网卡信息是否存在
|
||||
RmNetworkInterface queryParam = new RmNetworkInterface();
|
||||
queryParam.setClientId(clientId);
|
||||
queryParam.setMacAddress(networkInfo.getMac());
|
||||
queryParam.setNewFlag(1);
|
||||
List<RmNetworkInterface> exits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(queryParam);
|
||||
@@ -134,7 +136,7 @@ public class MessageHandler {
|
||||
RmNetworkInterface insertData = new RmNetworkInterface();
|
||||
// 业务ip和管理网ip
|
||||
insertData.setBindIp("3");
|
||||
insertData.setClientId(registerMsg.getClientId());
|
||||
insertData.setClientId(clientId);
|
||||
insertData.setIsp(networkInfo.getCarrier());
|
||||
insertData.setCity(networkInfo.getCity());
|
||||
insertData.setGateway(networkInfo.getGateway());
|
||||
@@ -152,9 +154,10 @@ public class MessageHandler {
|
||||
|| !StringUtils.equals(networkInfo.getGateway(),oldInterfaceMsg.getGateway())){
|
||||
// 查询该网卡信息是否旧数据
|
||||
RmNetworkInterface query = new RmNetworkInterface();
|
||||
query.setMacAddress(networkInfo.getMac());
|
||||
query.setMacAddress(oldInterfaceMsg.getMacAddress());
|
||||
query.setClientId(clientId);
|
||||
query.setNewFlag(999);
|
||||
List<RmNetworkInterface> oldExits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(queryParam);
|
||||
List<RmNetworkInterface> oldExits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(query);
|
||||
if(!oldExits.isEmpty()){
|
||||
// 先删除旧数据
|
||||
oldExits.forEach(oldMsg ->{
|
||||
@@ -164,10 +167,11 @@ public class MessageHandler {
|
||||
// 先将已存在的改为旧数据
|
||||
RmNetworkInterface oldData = new RmNetworkInterface();
|
||||
oldData.setNewFlag(0);
|
||||
oldData.setMacAddress(networkInfo.getMac());
|
||||
oldData.setClientId(clientId);
|
||||
oldData.setMacAddress(oldInterfaceMsg.getMacAddress());
|
||||
rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(oldData);
|
||||
RmNetworkInterface insertData = new RmNetworkInterface();
|
||||
insertData.setMacAddress(networkInfo.getMac());
|
||||
insertData.setClientId(clientId);
|
||||
insertData.setIsp(networkInfo.getCarrier());
|
||||
insertData.setCity(networkInfo.getCity());
|
||||
insertData.setGateway(networkInfo.getGateway());
|
||||
@@ -209,6 +213,8 @@ public class MessageHandler {
|
||||
}
|
||||
// 只有有字段变化时才执行更新
|
||||
if (needUpdate) {
|
||||
updateData.setClientId(clientId);
|
||||
updateData.setMacAddress(oldInterfaceMsg.getMacAddress());
|
||||
rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(updateData);
|
||||
}
|
||||
}
|
||||
@@ -217,13 +223,14 @@ public class MessageHandler {
|
||||
for (NetworkInfo networkInfo : networkInfoList) {
|
||||
// 查询该网卡信息是否存在
|
||||
RmNetworkInterface queryParam = new RmNetworkInterface();
|
||||
queryParam.setClientId(clientId);
|
||||
queryParam.setMacAddress(networkInfo.getMac());
|
||||
List<RmNetworkInterface> exits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(queryParam);
|
||||
if(exits.isEmpty()){
|
||||
// 保存网卡信息
|
||||
RmNetworkInterface insertData = new RmNetworkInterface();
|
||||
// 业务ip和管理网ip
|
||||
insertData.setClientId(registerMsg.getClientId());
|
||||
insertData.setClientId(clientId);
|
||||
insertData.setIsp(networkInfo.getCarrier());
|
||||
insertData.setCity(networkInfo.getCity());
|
||||
insertData.setGateway(networkInfo.getGateway());
|
||||
@@ -241,9 +248,10 @@ public class MessageHandler {
|
||||
|| !StringUtils.equals(networkInfo.getGateway(),oldInterfaceMsg.getGateway())){
|
||||
// 查询该网卡信息是否旧数据
|
||||
RmNetworkInterface query = new RmNetworkInterface();
|
||||
query.setClientId(clientId);
|
||||
query.setMacAddress(networkInfo.getMac());
|
||||
query.setNewFlag(999);
|
||||
List<RmNetworkInterface> oldExits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(queryParam);
|
||||
List<RmNetworkInterface> oldExits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(query);
|
||||
if(!oldExits.isEmpty()){
|
||||
// 先删除旧数据
|
||||
oldExits.forEach(oldMsg ->{
|
||||
@@ -253,10 +261,11 @@ public class MessageHandler {
|
||||
// 先将已存在的改为旧数据
|
||||
RmNetworkInterface oldData = new RmNetworkInterface();
|
||||
oldData.setNewFlag(0);
|
||||
oldData.setMacAddress(networkInfo.getMac());
|
||||
oldData.setClientId(clientId);
|
||||
oldData.setMacAddress(oldInterfaceMsg.getMacAddress());
|
||||
rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(oldData);
|
||||
RmNetworkInterface insertData = new RmNetworkInterface();
|
||||
insertData.setMacAddress(networkInfo.getMac());
|
||||
insertData.setClientId(clientId);
|
||||
insertData.setIsp(networkInfo.getCarrier());
|
||||
insertData.setCity(networkInfo.getCity());
|
||||
insertData.setGateway(networkInfo.getGateway());
|
||||
@@ -290,7 +299,7 @@ public class MessageHandler {
|
||||
updateData.setBindIp("0");
|
||||
// 修改绑定公网ip状态
|
||||
RmResourceRegistrationRemote updateParam = new RmResourceRegistrationRemote();
|
||||
updateParam.setClientId(registerMsg.getClientId());
|
||||
updateParam.setClientId(clientId);
|
||||
updateParam.setMultiPublicIpStatus("0");
|
||||
remoteRevenueConfigService.updateStatusByResource(updateParam, SecurityConstants.INNER);
|
||||
}
|
||||
@@ -304,6 +313,8 @@ public class MessageHandler {
|
||||
}
|
||||
// 只有有字段变化时才执行更新
|
||||
if (needUpdate) {
|
||||
updateData.setClientId(clientId);
|
||||
updateData.setMacAddress(oldInterfaceMsg.getMacAddress());
|
||||
rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(updateData);
|
||||
}
|
||||
}
|
||||
@@ -339,6 +350,7 @@ public class MessageHandler {
|
||||
private void handleRegisterMessage(DeviceMessage message) {
|
||||
List<RegisterMsgVo> interfaces = JsonDataParser.parseJsonData(message.getData(), RegisterMsgVo.class);
|
||||
if(!interfaces.isEmpty()) {
|
||||
String clientId = message.getClientId();
|
||||
RegisterMsgVo registerMsg = interfaces.get(0);
|
||||
// 自动注册服务器信息
|
||||
RmRegisterMsgRemote rmRegisterMsgRemote = new RmRegisterMsgRemote();
|
||||
@@ -359,6 +371,7 @@ public class MessageHandler {
|
||||
NetworkInfo networkInfo = networkInfoList.get(0);
|
||||
// 查询该网卡信息是否存在
|
||||
RmNetworkInterface queryParam = new RmNetworkInterface();
|
||||
queryParam.setClientId(clientId);
|
||||
queryParam.setMacAddress(networkInfo.getMac());
|
||||
queryParam.setNewFlag(1);
|
||||
List<RmNetworkInterface> exits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(queryParam);
|
||||
@@ -367,7 +380,7 @@ public class MessageHandler {
|
||||
RmNetworkInterface insertData = new RmNetworkInterface();
|
||||
// 业务ip和管理网ip
|
||||
insertData.setBindIp("3");
|
||||
insertData.setClientId(registerMsg.getClientId());
|
||||
insertData.setClientId(clientId);
|
||||
insertData.setIsp(networkInfo.getCarrier());
|
||||
insertData.setCity(networkInfo.getCity());
|
||||
insertData.setGateway(networkInfo.getGateway());
|
||||
@@ -385,9 +398,10 @@ public class MessageHandler {
|
||||
|| !StringUtils.equals(networkInfo.getGateway(),oldInterfaceMsg.getGateway())){
|
||||
// 查询该网卡信息是否旧数据
|
||||
RmNetworkInterface query = new RmNetworkInterface();
|
||||
query.setMacAddress(networkInfo.getMac());
|
||||
query.setClientId(clientId);
|
||||
query.setMacAddress(oldInterfaceMsg.getMacAddress());
|
||||
query.setNewFlag(999);
|
||||
List<RmNetworkInterface> oldExits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(queryParam);
|
||||
List<RmNetworkInterface> oldExits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(query);
|
||||
if(!oldExits.isEmpty()){
|
||||
// 先删除旧数据
|
||||
oldExits.forEach(oldMsg ->{
|
||||
@@ -397,10 +411,11 @@ public class MessageHandler {
|
||||
// 先将已存在的改为旧数据
|
||||
RmNetworkInterface oldData = new RmNetworkInterface();
|
||||
oldData.setNewFlag(0);
|
||||
oldData.setMacAddress(networkInfo.getMac());
|
||||
oldData.setMacAddress(oldInterfaceMsg.getMacAddress());
|
||||
oldData.setClientId(clientId);
|
||||
rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(oldData);
|
||||
RmNetworkInterface insertData = new RmNetworkInterface();
|
||||
insertData.setMacAddress(networkInfo.getMac());
|
||||
insertData.setClientId(clientId);
|
||||
insertData.setIsp(networkInfo.getCarrier());
|
||||
insertData.setCity(networkInfo.getCity());
|
||||
insertData.setGateway(networkInfo.getGateway());
|
||||
@@ -442,6 +457,8 @@ public class MessageHandler {
|
||||
}
|
||||
// 只有有字段变化时才执行更新
|
||||
if (needUpdate) {
|
||||
updateData.setClientId(clientId);
|
||||
updateData.setMacAddress(oldInterfaceMsg.getMacAddress());
|
||||
rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(updateData);
|
||||
}
|
||||
}
|
||||
@@ -451,12 +468,13 @@ public class MessageHandler {
|
||||
// 查询该网卡信息是否存在
|
||||
RmNetworkInterface queryParam = new RmNetworkInterface();
|
||||
queryParam.setMacAddress(networkInfo.getMac());
|
||||
queryParam.setClientId(clientId);
|
||||
List<RmNetworkInterface> exits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(queryParam);
|
||||
if(exits.isEmpty()){
|
||||
// 保存网卡信息
|
||||
RmNetworkInterface insertData = new RmNetworkInterface();
|
||||
// 业务ip和管理网ip
|
||||
insertData.setClientId(registerMsg.getClientId());
|
||||
insertData.setClientId(clientId);
|
||||
insertData.setIsp(networkInfo.getCarrier());
|
||||
insertData.setCity(networkInfo.getCity());
|
||||
insertData.setGateway(networkInfo.getGateway());
|
||||
@@ -474,9 +492,10 @@ public class MessageHandler {
|
||||
|| !StringUtils.equals(networkInfo.getGateway(),oldInterfaceMsg.getGateway())){
|
||||
// 查询该网卡信息是否旧数据
|
||||
RmNetworkInterface query = new RmNetworkInterface();
|
||||
query.setMacAddress(networkInfo.getMac());
|
||||
query.setClientId(clientId);
|
||||
query.setMacAddress(oldInterfaceMsg.getMacAddress());
|
||||
query.setNewFlag(999);
|
||||
List<RmNetworkInterface> oldExits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(queryParam);
|
||||
List<RmNetworkInterface> oldExits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(query);
|
||||
if(!oldExits.isEmpty()){
|
||||
// 先删除旧数据
|
||||
oldExits.forEach(oldMsg ->{
|
||||
@@ -486,10 +505,11 @@ public class MessageHandler {
|
||||
// 先将已存在的改为旧数据
|
||||
RmNetworkInterface oldData = new RmNetworkInterface();
|
||||
oldData.setNewFlag(0);
|
||||
oldData.setMacAddress(networkInfo.getMac());
|
||||
oldData.setClientId(clientId);
|
||||
oldData.setMacAddress(oldInterfaceMsg.getMacAddress());
|
||||
rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(oldData);
|
||||
RmNetworkInterface insertData = new RmNetworkInterface();
|
||||
insertData.setMacAddress(networkInfo.getMac());
|
||||
insertData.setClientId(clientId);
|
||||
insertData.setIsp(networkInfo.getCarrier());
|
||||
insertData.setCity(networkInfo.getCity());
|
||||
insertData.setGateway(networkInfo.getGateway());
|
||||
@@ -523,7 +543,7 @@ public class MessageHandler {
|
||||
updateData.setBindIp("0");
|
||||
// 修改绑定公网ip状态
|
||||
RmResourceRegistrationRemote updateParam = new RmResourceRegistrationRemote();
|
||||
updateParam.setClientId(registerMsg.getClientId());
|
||||
updateParam.setClientId(clientId);
|
||||
updateParam.setMultiPublicIpStatus("0");
|
||||
remoteRevenueConfigService.updateStatusByResource(updateParam, SecurityConstants.INNER);
|
||||
}
|
||||
@@ -537,6 +557,8 @@ public class MessageHandler {
|
||||
}
|
||||
// 只有有字段变化时才执行更新
|
||||
if (needUpdate) {
|
||||
updateData.setClientId(clientId);
|
||||
updateData.setMacAddress(oldInterfaceMsg.getMacAddress());
|
||||
rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(updateData);
|
||||
}
|
||||
}
|
||||
@@ -942,7 +964,7 @@ public class MessageHandler {
|
||||
RmResourceRegistrationRemote rmResourceRegistrationRemote = new RmResourceRegistrationRemote();
|
||||
rmResourceRegistrationRemote.setOnlineStatus(status);
|
||||
rmResourceRegistrationRemote.setRegistrationStatus(status);
|
||||
rmResourceRegistrationRemote.setHardwareSn(clientId);
|
||||
rmResourceRegistrationRemote.setClientId(clientId);
|
||||
remoteRevenueConfigService.updateStatusByResource(rmResourceRegistrationRemote, SecurityConstants.INNER);
|
||||
}
|
||||
// 插入心跳日志到数据库
|
||||
|
||||
+6
-2
@@ -1,5 +1,6 @@
|
||||
package com.ruoyi.rocketmq.service.impl;
|
||||
|
||||
import com.ruoyi.common.core.utils.ConvertOtherTypeUtil;
|
||||
import com.ruoyi.common.core.utils.DateUtils;
|
||||
import com.ruoyi.common.core.utils.EchartsDataUtils;
|
||||
import com.ruoyi.common.core.utils.SpeedUtils;
|
||||
@@ -134,8 +135,11 @@ public class InitialSwitchInfoServiceImpl implements IInitialSwitchInfoService
|
||||
*/
|
||||
@Override
|
||||
public InitialSwitchInfo getSwitchNetDetailsMsg(InitialSwitchInfo initialSwitchInfo) {
|
||||
|
||||
return initialSwitchInfoMapper.getSwitchNetDetailsMsg(initialSwitchInfo);
|
||||
InitialSwitchInfo info = initialSwitchInfoMapper.getSwitchNetDetailsMsg(initialSwitchInfo);
|
||||
if(info.getType()!=null){
|
||||
info.setType(ConvertOtherTypeUtil.getInterfaceTypeName(Integer.parseInt(info.getType())));
|
||||
}
|
||||
return info;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+5
-1
@@ -434,10 +434,11 @@ public class RmMonitorPolicyServiceImpl implements IRmMonitorPolicyService
|
||||
startCollectSwitchMsgToDevices(policy.getDeployDevice(), uniqueList, switchOidVo);
|
||||
}
|
||||
// 更新策略状态为已下发
|
||||
if("1".equals(policy.getPriority())){
|
||||
if("1".equals(policy.getPriority()) && "0".equals(policy.getStatus())){
|
||||
RmMonitorPolicy policyUpdate = new RmMonitorPolicy();
|
||||
policyUpdate.setId(id);
|
||||
policyUpdate.setStatus("1");
|
||||
policyUpdate.setDeployTime(DateUtils.getNowDate());
|
||||
rmMonitorPolicyMapper.updateRmMonitorPolicy(policyUpdate);
|
||||
}
|
||||
return 1;
|
||||
@@ -875,6 +876,9 @@ public class RmMonitorPolicyServiceImpl implements IRmMonitorPolicyService
|
||||
try {
|
||||
// 根据clientId 查询 交换机信息
|
||||
RmSwitchManagementRemote switchMsg = dataProcessUtil.getSwitchMsg(clientId);
|
||||
if(switchMsg == null){
|
||||
continue;
|
||||
}
|
||||
String switchIp = switchMsg.getSnmpAddress();
|
||||
String community = switchMsg.getCommunityName();
|
||||
int port = Math.toIntExact(switchMsg.getSnmpPort());
|
||||
|
||||
@@ -123,7 +123,7 @@ public class DynamicOidCollector {
|
||||
for (Integer index : indexes) {
|
||||
Map<String, String> deviceInfo = getDeviceInfo(target, index, oidParams);
|
||||
if (!deviceInfo.isEmpty()) {
|
||||
deviceInfo.put("index", String.valueOf(index));
|
||||
// deviceInfo.put("index", String.valueOf(index));
|
||||
results.add(deviceInfo);
|
||||
}
|
||||
}
|
||||
@@ -138,7 +138,7 @@ public class DynamicOidCollector {
|
||||
return new CollectionResult(switchVo.getIp(), deviceType, results, true);
|
||||
} catch (Exception e) {
|
||||
String errorMsg = String.format("采集失败: {}", e.getMessage());
|
||||
System.err.printf("采集交换机 {} 的 {} 信息失败: {}",
|
||||
log.error("采集交换机 {} 的 {} 信息失败: {}",
|
||||
switchVo.getIp(), deviceType, errorMsg);
|
||||
return new CollectionResult(switchVo.getIp(), deviceType, errorMsg);
|
||||
}
|
||||
@@ -520,51 +520,49 @@ public class DynamicOidCollector {
|
||||
/**
|
||||
* 主程序入口 (支持v2c和v3测试)
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
DynamicOidCollector collector = new DynamicOidCollector();
|
||||
|
||||
try {
|
||||
// 初始化
|
||||
collector.init();
|
||||
|
||||
// 创建动态配置的交换机列表 (支持v2c和v3混合)
|
||||
List<SwitchOidDto> switches = Arrays.asList(
|
||||
createExampleSwitch("123.182.89.17", "chengde_200G"), // v2c
|
||||
createV3ExampleSwitch("1.194.193.81", "v3user", "SHA", "auth123", "AES128", "priv123") // v3
|
||||
);
|
||||
|
||||
// 并发采集所有交换机
|
||||
System.out.println("开始并发采集 " + switches.size() + " 台交换机...");
|
||||
long startTime = System.currentTimeMillis();
|
||||
|
||||
Map<String, Map<String, CollectionResult>> results = collector.collectAllSwitches(switches);
|
||||
|
||||
long endTime = System.currentTimeMillis();
|
||||
|
||||
// 显示统计信息
|
||||
System.out.println("\n=== 采集统计 ===");
|
||||
int totalDevices = 0;
|
||||
for (Map.Entry<String, Map<String, CollectionResult>> entry : results.entrySet()) {
|
||||
String ip = entry.getKey();
|
||||
Map<String, CollectionResult> deviceResults = entry.getValue();
|
||||
|
||||
int switchDevices = deviceResults.values().stream()
|
||||
.filter(CollectionResult::isSuccess)
|
||||
.mapToInt(r -> r.getData().size())
|
||||
.sum();
|
||||
|
||||
totalDevices += switchDevices;
|
||||
log.info("交换机 {}: %d 个设备", ip, switchDevices);
|
||||
}
|
||||
|
||||
log.info("总计: %d 台交换机, %d 个设备", results.size(), totalDevices);
|
||||
log.info("总采集时间: %.2f 秒", (endTime - startTime) / 1000.0);
|
||||
|
||||
} catch (Exception e) {
|
||||
System.err.println("采集程序出错: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
collector.shutdown();
|
||||
}
|
||||
}
|
||||
// public static void main(String[] args) {
|
||||
// DynamicOidCollector collector = new DynamicOidCollector();
|
||||
//
|
||||
// try {
|
||||
// // 初始化
|
||||
// collector.init();
|
||||
//
|
||||
// // 创建动态配置的交换机列表 (支持v2c和v3混合)
|
||||
// List<SwitchOidDto> switches = Arrays.asList(
|
||||
// createExampleSwitch("123.182.89.17", "chengde_200G"), // v2c
|
||||
// createV3ExampleSwitch("1.194.193.81", "v3user", "SHA", "auth123", "AES128", "priv123") // v3
|
||||
// );
|
||||
//
|
||||
// // 并发采集所有交换机
|
||||
// log.info("开始并发采集 {} 台交换机...", switches.size());
|
||||
// long startTime = System.currentTimeMillis();
|
||||
//
|
||||
// Map<String, Map<String, CollectionResult>> results = collector.collectAllSwitches(switches);
|
||||
//
|
||||
// long endTime = System.currentTimeMillis();
|
||||
//
|
||||
// // 显示统计信息
|
||||
// int totalDevices = 0;
|
||||
// for (Map.Entry<String, Map<String, CollectionResult>> entry : results.entrySet()) {
|
||||
// String ip = entry.getKey();
|
||||
// Map<String, CollectionResult> deviceResults = entry.getValue();
|
||||
//
|
||||
// int switchDevices = deviceResults.values().stream()
|
||||
// .filter(CollectionResult::isSuccess)
|
||||
// .mapToInt(r -> r.getData().size())
|
||||
// .sum();
|
||||
//
|
||||
// totalDevices += switchDevices;
|
||||
// }
|
||||
//
|
||||
// log.info("总计: %d 台交换机, %d 个设备", results.size(), totalDevices);
|
||||
// log.info("总采集时间: %.2f 秒", (endTime - startTime) / 1000.0);
|
||||
//
|
||||
// } catch (Exception e) {
|
||||
// log.error("采集程序出错: {}", e.getMessage());
|
||||
// e.printStackTrace();
|
||||
// } finally {
|
||||
// collector.shutdown();
|
||||
// }
|
||||
// }
|
||||
}
|
||||
+30
-8
@@ -7,7 +7,10 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
@@ -22,14 +25,33 @@ public class SwitchStrategyInitializer {
|
||||
public void init() {
|
||||
log.info("开始初始化交换机采集策略...");
|
||||
try {
|
||||
// 下发优先级为0的交换机策略
|
||||
RmMonitorPolicy queryParam = new RmMonitorPolicy();
|
||||
queryParam.setPriority("0");
|
||||
queryParam.setResourceType("switch");
|
||||
List<RmMonitorPolicy> defaultPolicy = rmMonitorPolicyService.selectRmMonitorPolicyList(queryParam);
|
||||
if(!defaultPolicy.isEmpty()){
|
||||
rmMonitorPolicyService.issueSwitchPolicy(defaultPolicy.get(0).getId());
|
||||
}
|
||||
// 下发交换机策略(优先级0和已下发的优先级1)
|
||||
List<RmMonitorPolicy> policiesToIssue = new ArrayList<>();
|
||||
|
||||
// 1. 添加优先级为0的默认策略
|
||||
RmMonitorPolicy defaultQuery = new RmMonitorPolicy();
|
||||
defaultQuery.setPriority("0");
|
||||
defaultQuery.setResourceType("switch");
|
||||
rmMonitorPolicyService.selectRmMonitorPolicyList(defaultQuery)
|
||||
.stream()
|
||||
.findFirst()
|
||||
.ifPresent(policiesToIssue::add);
|
||||
|
||||
// 2. 添加已下发的优先级1策略
|
||||
RmMonitorPolicy issuedQuery = new RmMonitorPolicy();
|
||||
issuedQuery.setPriority("1");
|
||||
issuedQuery.setStatus("1");
|
||||
issuedQuery.setResourceType("switch");
|
||||
List<RmMonitorPolicy> monitorPolicies = rmMonitorPolicyService.selectRmMonitorPolicyList(issuedQuery);
|
||||
List<RmMonitorPolicy> monitorPolicyList = monitorPolicies.stream()
|
||||
.sorted(Comparator.comparing(RmMonitorPolicy::getCreateTime))
|
||||
.collect(Collectors.toList());
|
||||
policiesToIssue.addAll(monitorPolicyList);
|
||||
|
||||
// 3. 统一下发所有符合条件的策略
|
||||
policiesToIssue.forEach(policy ->
|
||||
rmMonitorPolicyService.issueSwitchPolicy(policy.getId())
|
||||
);
|
||||
} catch (Exception e) {
|
||||
log.error("初始化交换机采集策略失败", e);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user