snmp采集工具优化,采集数据入库优化。
This commit is contained in:
@@ -4,6 +4,7 @@ import com.ruoyi.common.core.constant.SecurityConstants;
|
||||
import com.ruoyi.common.core.constant.ServiceNameConstants;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.system.api.domain.RmAlarmRecordRemote;
|
||||
import com.ruoyi.system.api.domain.RmMonitorPolicyRemote;
|
||||
import com.ruoyi.system.api.domain.RmNetworkInterfaceRemote;
|
||||
import com.ruoyi.system.api.factory.RemoteRocketMqFallbackFactory;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
@@ -52,4 +53,29 @@ public interface RemoteRocketMqService {
|
||||
*/
|
||||
@PostMapping("/networkInterface/getNetworkInterfaceList")
|
||||
public R<List<RmNetworkInterfaceRemote>> getNetworkInterfaceList(@RequestBody RmNetworkInterfaceRemote rmNetworkInterfaceRemote, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||
|
||||
/**
|
||||
* 下发策略
|
||||
* @param id
|
||||
* @param source
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/monitorPolicy/innerIssueSwitchPolicy")
|
||||
public R<String> innerIssueSwitchPolicy(Long id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||
/**
|
||||
* 查询策略信息
|
||||
* @param rmMonitorPolicyRemote
|
||||
* @param source
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/monitorPolicy/getPolicyMsgInner")
|
||||
public R<List<RmMonitorPolicyRemote>> getPolicyMsgInner(@RequestBody RmMonitorPolicyRemote rmMonitorPolicyRemote, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||
/**
|
||||
* 策略添加新设备
|
||||
* @param rmMonitorPolicyRemote
|
||||
* @param source
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/monitorPolicy/updatePolicyMsgInner")
|
||||
public R<Integer> updatePolicyMsgInner(@RequestBody RmMonitorPolicyRemote rmMonitorPolicyRemote, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
package com.ruoyi.system.api.domain;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.core.annotation.Excel;
|
||||
import com.ruoyi.common.core.web.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
@Data
|
||||
public class RmMonitorPolicyRemote extends BaseEntity {
|
||||
|
||||
/** 主键ID */
|
||||
private Long id;
|
||||
|
||||
|
||||
/** 策略名称 */
|
||||
@Excel(name = "策略名称")
|
||||
private String policyName;
|
||||
|
||||
/** 描述 */
|
||||
@Excel(name = "描述")
|
||||
private String description;
|
||||
|
||||
/** 资源组ID */
|
||||
private Long resourceGroupId;
|
||||
/** 资源组名称 */
|
||||
@Excel(name = "关联资源组")
|
||||
private String resourceGroupName;
|
||||
/** 模板ID */
|
||||
private Long templateId;
|
||||
/** 模板名称 */
|
||||
@Excel(name = "关联监控模板")
|
||||
private String templateName;
|
||||
|
||||
/** 状态:0-待下发,1-已下发 */
|
||||
@Excel(name = "策略状态", readConverterExp = "0=待下发,1=已下发")
|
||||
private String status;
|
||||
|
||||
/** 下发策略时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "下发策略时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date deployTime;
|
||||
/** 资源类型,linux switch */
|
||||
private String resourceType;
|
||||
/** 查询条件名称 */
|
||||
private String queryName;
|
||||
/** 创建时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "创建时间")
|
||||
private Date createTime;
|
||||
/** 修改时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "修改时间")
|
||||
private Date updateTime;
|
||||
/** 交换机类型 */
|
||||
private String switchType;
|
||||
/** 部署设备 */
|
||||
private String deployDevice;
|
||||
/** 优先级 */
|
||||
private String priority;
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package com.ruoyi.system.api.factory;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.system.api.RemoteRocketMqService;
|
||||
import com.ruoyi.system.api.domain.RmAlarmRecordRemote;
|
||||
import com.ruoyi.system.api.domain.RmMonitorPolicyRemote;
|
||||
import com.ruoyi.system.api.domain.RmNetworkInterfaceRemote;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -51,6 +52,21 @@ public class RemoteRocketMqFallbackFactory implements FallbackFactory<RemoteRock
|
||||
public R<List<RmNetworkInterfaceRemote>> getNetworkInterfaceList(RmNetworkInterfaceRemote rmNetworkInterfaceRemote, String source) {
|
||||
return R.fail(throwable.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<String> innerIssueSwitchPolicy(Long id, String source) {
|
||||
return R.fail(throwable.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<List<RmMonitorPolicyRemote>> getPolicyMsgInner(RmMonitorPolicyRemote rmMonitorPolicyRemote, String source) {
|
||||
return R.fail(throwable.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<Integer> updatePolicyMsgInner(RmMonitorPolicyRemote rmMonitorPolicyRemote, String source) {
|
||||
return R.fail(throwable.getMessage());
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,7 +137,7 @@ public class InitialSwitchInfoDetailsServiceImpl implements IInitialSwitchInfoDe
|
||||
String switchSn = details.getSwitchSn();
|
||||
RmEpsTopologyManagement rmEpsTopologyManagement = new RmEpsTopologyManagement();
|
||||
rmEpsTopologyManagement.setInterfaceName(interfaceName);
|
||||
rmEpsTopologyManagement.setSwitchSn(switchSn);
|
||||
rmEpsTopologyManagement.setSwitchIpAddress(details.getSwitchIp());
|
||||
List<RmEpsTopologyManagement> managements = rmEpsTopologyManagementMapper.selectRmEpsTopologyManagementList(rmEpsTopologyManagement);
|
||||
// 赋值
|
||||
if(!managements.isEmpty()){
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
package com.ruoyi.system.service.impl;
|
||||
|
||||
import com.ruoyi.common.core.constant.SecurityConstants;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.utils.DateUtils;
|
||||
import com.ruoyi.common.core.utils.StringUtils;
|
||||
import com.ruoyi.common.core.utils.uuid.IdUtils;
|
||||
import com.ruoyi.system.api.RemoteRocketMqService;
|
||||
import com.ruoyi.system.api.domain.RmMonitorPolicyRemote;
|
||||
import com.ruoyi.system.domain.RmSwitchInterfaceInfo;
|
||||
import com.ruoyi.system.domain.RmSwitchManagement;
|
||||
import com.ruoyi.system.mapper.RmSwitchInterfaceInfoMapper;
|
||||
@@ -25,6 +30,8 @@ public class RmSwitchManagementServiceImpl implements IRmSwitchManagementService
|
||||
private RmSwitchManagementMapper rmSwitchManagementMapper;
|
||||
@Autowired
|
||||
private RmSwitchInterfaceInfoMapper rmSwitchInterfaceInfoMapper;
|
||||
@Autowired
|
||||
private RemoteRocketMqService remoteRocketMqService;
|
||||
|
||||
/**
|
||||
* 查询交换机管理
|
||||
@@ -65,11 +72,45 @@ public class RmSwitchManagementServiceImpl implements IRmSwitchManagementService
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertRmSwitchManagement(RmSwitchManagement rmSwitchManagement)
|
||||
{
|
||||
public int insertRmSwitchManagement(RmSwitchManagement rmSwitchManagement) {
|
||||
// 初始化交换机信息
|
||||
rmSwitchManagement.setCreateTime(DateUtils.getNowDate());
|
||||
rmSwitchManagement.setClientId(IdUtils.simpleUUID());
|
||||
return rmSwitchManagementMapper.insertRmSwitchManagement(rmSwitchManagement);
|
||||
String clientId= IdUtils.simpleUUID();
|
||||
rmSwitchManagement.setClientId(clientId);
|
||||
rmSwitchManagementMapper.insertRmSwitchManagement(rmSwitchManagement);
|
||||
|
||||
// 查询并更新优先级为0的交换机策略
|
||||
R<List<RmMonitorPolicyRemote>> policyMsgR = remoteRocketMqService.getPolicyMsgInner(
|
||||
new RmMonitorPolicyRemote() {{
|
||||
setPriority("0");
|
||||
setResourceType("switch");
|
||||
}},
|
||||
SecurityConstants.INNER
|
||||
);
|
||||
|
||||
if (policyMsgR.getData() != null && !policyMsgR.getData().isEmpty()) {
|
||||
RmMonitorPolicyRemote policyMsg = policyMsgR.getData().get(0);
|
||||
|
||||
// 构建设备信息字符串
|
||||
String newDeviceList = StringUtils.isBlank(policyMsg.getDeployDevice())
|
||||
? clientId
|
||||
: policyMsg.getDeployDevice() + "\n" + clientId;
|
||||
|
||||
// 更新策略设备列表
|
||||
remoteRocketMqService.updatePolicyMsgInner(
|
||||
new RmMonitorPolicyRemote() {{
|
||||
setId(policyMsg.getId());
|
||||
setDeployDevice(newDeviceList);
|
||||
setUpdateTime(DateUtils.getNowDate());
|
||||
}},
|
||||
SecurityConstants.INNER
|
||||
);
|
||||
|
||||
// 下发更新后的策略
|
||||
remoteRocketMqService.innerIssueSwitchPolicy(policyMsg.getId(), SecurityConstants.INNER);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.ruoyi.rocketmq.controller;
|
||||
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.common.core.web.controller.BaseController;
|
||||
import com.ruoyi.common.core.web.domain.AjaxResult;
|
||||
@@ -7,6 +8,7 @@ import com.ruoyi.common.core.web.page.PageDomain;
|
||||
import com.ruoyi.common.core.web.page.TableDataInfo;
|
||||
import com.ruoyi.common.log.annotation.Log;
|
||||
import com.ruoyi.common.log.enums.BusinessType;
|
||||
import com.ruoyi.common.security.annotation.InnerAuth;
|
||||
import com.ruoyi.common.security.annotation.RequiresPermissions;
|
||||
import com.ruoyi.rocketmq.domain.RmMonitorPolicy;
|
||||
import com.ruoyi.rocketmq.service.IRmMonitorPolicyService;
|
||||
@@ -152,4 +154,38 @@ public class RmMonitorPolicyController extends BaseController
|
||||
return toAjax(rows);
|
||||
}
|
||||
|
||||
/**
|
||||
* 策略下发,内部调用
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@Log(title = "issueSwitchPolicy", businessType = BusinessType.UPDATE)
|
||||
@GetMapping("/innerIssueSwitchPolicy")
|
||||
@InnerAuth
|
||||
public R<String> innerIssueSwitchPolicy(Long id)
|
||||
{
|
||||
rmMonitorPolicyService.issueSwitchPolicy(id);
|
||||
return R.ok("优先级0策略下发成功");
|
||||
}
|
||||
/**
|
||||
* 查询资源监控策略列表
|
||||
*/
|
||||
@PostMapping("/getPolicyMsgInner")
|
||||
@InnerAuth
|
||||
public R<List<RmMonitorPolicy>> getPolicyMsgInner(@RequestBody RmMonitorPolicy rmMonitorPolicy)
|
||||
{
|
||||
List<RmMonitorPolicy> list = rmMonitorPolicyService.selectRmMonitorPolicyList(rmMonitorPolicy);
|
||||
return R.ok(list);
|
||||
}
|
||||
/**
|
||||
* 修改资源监控策略
|
||||
*/
|
||||
@PostMapping("/updatePolicyMsgInner")
|
||||
@InnerAuth
|
||||
public R<Integer> updatePolicyMsgInner(@RequestBody RmMonitorPolicy rmMonitorPolicy)
|
||||
{
|
||||
int rows = rmMonitorPolicyService.updatePolicyMsgInner(rmMonitorPolicy);
|
||||
return R.ok(rows);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -8,6 +8,8 @@ public class CollectDataVo {
|
||||
private String type;
|
||||
/** 数据 */
|
||||
private String value;
|
||||
/** 交换机ip */
|
||||
private String switchIp;
|
||||
/** 时间戳 */
|
||||
private long timestamp;
|
||||
}
|
||||
|
||||
@@ -76,4 +76,11 @@ public interface IRmMonitorPolicyService
|
||||
int issueSwitchPolicy(Long id);
|
||||
|
||||
int updateResourcePolicy(RmMonitorPolicy rmMonitorPolicy);
|
||||
|
||||
/**
|
||||
* 修改资源监控策略内部调用
|
||||
* @param rmMonitorPolicy
|
||||
* @return
|
||||
*/
|
||||
int updatePolicyMsgInner(RmMonitorPolicy rmMonitorPolicy);
|
||||
}
|
||||
|
||||
@@ -353,6 +353,11 @@ public class RmMonitorPolicyServiceImpl implements IRmMonitorPolicyService
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updatePolicyMsgInner(RmMonitorPolicy rmMonitorPolicy) {
|
||||
return rmMonitorPolicyMapper.updateRmMonitorPolicy(rmMonitorPolicy);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询监控策略详情
|
||||
* @param id
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.ruoyi.rocketmq.snmp.config;
|
||||
|
||||
import com.ruoyi.rocketmq.domain.RmMonitorPolicy;
|
||||
import com.ruoyi.rocketmq.service.IRmMonitorPolicyService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class SwitchStrategyInitializer {
|
||||
|
||||
@Autowired
|
||||
private IRmMonitorPolicyService rmMonitorPolicyService;
|
||||
|
||||
|
||||
// 服务启动时下发默认策略
|
||||
@PostConstruct
|
||||
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());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("初始化交换机采集策略失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -28,6 +28,8 @@ import java.util.concurrent.ScheduledFuture;
|
||||
@Slf4j
|
||||
public class MultiSwitchCollectionScheduler {
|
||||
|
||||
private static final String PREFIX = "switch";
|
||||
private static final String SUFFIX = "Collect";
|
||||
private final TaskScheduler taskScheduler;
|
||||
private final DynamicOidCollector dynamicOidCollector;
|
||||
private boolean collectorInitialized = false;
|
||||
@@ -95,8 +97,27 @@ public class MultiSwitchCollectionScheduler {
|
||||
|
||||
// 根据CollectVo配置创建不同的定时任务
|
||||
for (CollectVo collectVo : collectVos) {
|
||||
if (collectVo.isCollect()) { //剔除switchVo中的其他oid
|
||||
ScheduledFuture<?> task = createCollectionTask(switchIp, clientId, switchVo, collectVo);
|
||||
if (collectVo.isCollect()) {
|
||||
ScheduledFuture<?> task;
|
||||
// 剔除switchVo中的其他oid
|
||||
if (switchVo.getOtherOID() != null) {
|
||||
Map<String, String> otherOid = switchOidVo.getOtherOID();
|
||||
String type = collectVo.getType();
|
||||
|
||||
// 创建新的 Map,避免修改原始数据
|
||||
Map<String, String> filteredOid = new HashMap<>(otherOid);
|
||||
filteredOid.entrySet().removeIf(entry ->
|
||||
!entry.getValue().equalsIgnoreCase(extractMiddle(type))
|
||||
);
|
||||
|
||||
// 创建新的 SwitchOidDto,避免修改原始 switchVo
|
||||
SwitchOidDto resultMap = createSwitchMsg(switchVo);
|
||||
resultMap.setOtherOID(filteredOid);
|
||||
|
||||
task = createCollectionTask(switchIp, clientId, resultMap, collectVo);
|
||||
} else {
|
||||
task = createCollectionTask(switchIp, clientId, switchVo, collectVo);
|
||||
}
|
||||
if (task != null) {
|
||||
switchTasks.put(collectVo.getType(), task);
|
||||
}
|
||||
@@ -112,6 +133,69 @@ public class MultiSwitchCollectionScheduler {
|
||||
switchIp, switchTasks.size());
|
||||
}
|
||||
|
||||
/**
|
||||
* 赋值oid
|
||||
* @param switchVo
|
||||
*/
|
||||
public SwitchOidDto createSwitchMsg(SwitchOidDto switchVo){
|
||||
SwitchOidDto resultMap = new SwitchOidDto();
|
||||
resultMap.setIp(switchVo.getIp());
|
||||
resultMap.setCommunity(switchVo.getCommunity());
|
||||
resultMap.setPort(switchVo.getPort());
|
||||
resultMap.setVersion(switchVo.getVersion());
|
||||
resultMap.setTimeout(switchVo.getTimeout());
|
||||
resultMap.setRetries(switchVo.getRetries());
|
||||
|
||||
// SNMP v3 特有参数
|
||||
resultMap.setSecurityName(switchVo.getSecurityName());
|
||||
resultMap.setAuthProtocol(switchVo.getAuthProtocol());
|
||||
resultMap.setAuthPassword(switchVo.getAuthPassword());
|
||||
resultMap.setPrivProtocol(switchVo.getPrivProtocol());
|
||||
resultMap.setPrivPassword(switchVo.getPrivPassword());
|
||||
resultMap.setSecurityLevel(switchVo.getSecurityLevel());
|
||||
|
||||
// OID配置(复制所有OID Map)
|
||||
resultMap.setNetOID(new LinkedHashMap<>(switchVo.getNetOID()));
|
||||
resultMap.setEntityOID(new LinkedHashMap<>(switchVo.getEntityOID()));
|
||||
resultMap.setPwrOID(new LinkedHashMap<>(switchVo.getPwrOID()));
|
||||
resultMap.setFanOID(new LinkedHashMap<>(switchVo.getFanOID()));
|
||||
resultMap.setMpuOID(new LinkedHashMap<>(switchVo.getMpuOID()));
|
||||
resultMap.setModuleOID(new LinkedHashMap<>(switchVo.getModuleOID()));
|
||||
resultMap.setPowerOID(new LinkedHashMap<>(switchVo.getPowerOID()));
|
||||
|
||||
// 过滤条件
|
||||
resultMap.setFilters(new HashMap<>(switchVo.getFilters()));
|
||||
return resultMap;
|
||||
}
|
||||
/**
|
||||
* 提取字符串的中间部分(去除固定的前缀和后缀)
|
||||
* @param type 输入字符串(如 "switchAssCollect")
|
||||
* @return 中间部分(如 "Ass")
|
||||
*/
|
||||
public String extractMiddle(String type) {
|
||||
if (type == null || type.isEmpty()) {
|
||||
return type;
|
||||
}
|
||||
|
||||
// 检查是否以 "switch" 开头
|
||||
if (!type.startsWith(PREFIX)) {
|
||||
throw new IllegalArgumentException("Type must start with 'switch'");
|
||||
}
|
||||
|
||||
// 检查是否以 "Collect" 结尾
|
||||
if (!type.endsWith(SUFFIX)) {
|
||||
throw new IllegalArgumentException("Type must end with 'Collect'");
|
||||
}
|
||||
|
||||
// 计算中间部分的起始和结束位置
|
||||
int prefixLength = PREFIX.length();
|
||||
int suffixLength = SUFFIX.length();
|
||||
int middleStart = prefixLength;
|
||||
int middleEnd = type.length() - suffixLength;
|
||||
|
||||
// 提取中间部分
|
||||
return type.substring(middleStart, middleEnd);
|
||||
}
|
||||
/**
|
||||
* 启动SNMP v3交换机采集任务
|
||||
*/
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.ruoyi.common.core.constant.SecurityConstants;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.utils.DateUtils;
|
||||
import com.ruoyi.rocketmq.domain.*;
|
||||
import com.ruoyi.rocketmq.domain.vo.CollectDataVo;
|
||||
@@ -13,7 +12,6 @@ import com.ruoyi.rocketmq.snmp.dto.CollectionResult;
|
||||
import com.ruoyi.rocketmq.utils.SwitchJsonDataParser;
|
||||
import com.ruoyi.system.api.RemoteRevenueConfigService;
|
||||
import com.ruoyi.system.api.domain.InitialSwitchInfoDetailsRemote;
|
||||
import com.ruoyi.system.api.domain.RmResourceRegistrationRemote;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -58,10 +56,11 @@ public class ProcessSwitchCollectDataService {
|
||||
List<Map<String, String>> resultData = result.getData();
|
||||
CollectDataVo switchDataVo = new CollectDataVo();
|
||||
switchDataVo.setTimestamp(result.getTimestamp());
|
||||
switchDataVo.setSwitchIp(result.getSwitchIp());
|
||||
switchDataVo.setValue(JSONObject.toJSONString(resultData));
|
||||
switch(result.getDeviceType()){
|
||||
case "net":
|
||||
// handleSwitchNetMessage(switchDataVo, clientId);
|
||||
handleSwitchNetMessage(switchDataVo, clientId);
|
||||
break;
|
||||
case "pwr":
|
||||
handleSwitchPwrMessage(switchDataVo, clientId);
|
||||
@@ -119,7 +118,7 @@ public class ProcessSwitchCollectDataService {
|
||||
insertData.setCollectType(fieldName);
|
||||
if (!"null".equals(fieldValue)) {
|
||||
insertData.setCollectValue(fieldValue);
|
||||
// insertInitialSwitchOtherInfo.insertInitialSwitchOtherCollectData(insertData);
|
||||
insertInitialSwitchOtherInfo.insertInitialSwitchOtherCollectData(insertData);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -134,8 +133,7 @@ public class ProcessSwitchCollectDataService {
|
||||
insertData.setCollectType(fieldName);
|
||||
if (!"null".equals(fieldValue)) {
|
||||
insertData.setCollectValue(fieldValue);
|
||||
System.out.println("1");
|
||||
// insertInitialSwitchOtherInfo.insertInitialSwitchOtherCollectData(insertData);
|
||||
insertInitialSwitchOtherInfo.insertInitialSwitchOtherCollectData(insertData);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -154,13 +152,6 @@ public class ProcessSwitchCollectDataService {
|
||||
private void handleSwitchNetMessage(CollectDataVo switchDataVo, String clientId) {
|
||||
List<InitialSwitchInfo> switchInfos = SwitchJsonDataParser.parseJsonData(switchDataVo.getValue(), InitialSwitchInfo.class);
|
||||
if(!switchInfos.isEmpty()){
|
||||
// 根据clientId查询交换机ip
|
||||
RmResourceRegistrationRemote queryParam = new RmResourceRegistrationRemote();
|
||||
queryParam.setHardwareSn(clientId);
|
||||
R<RmResourceRegistrationRemote> registMsgR = remoteRevenueConfigService.getListByHardwareSn(queryParam, SecurityConstants.INNER);
|
||||
if(registMsgR != null){
|
||||
RmResourceRegistrationRemote registMsg = registMsgR.getData();
|
||||
}
|
||||
// 时间戳转换
|
||||
long timestamp = switchDataVo.getTimestamp();
|
||||
long millis = timestamp * 1000;
|
||||
@@ -186,9 +177,7 @@ public class ProcessSwitchCollectDataService {
|
||||
switchInfos.forEach(switchInfo -> {
|
||||
switchInfo.setClientId(clientId);
|
||||
switchInfo.setCreateTime(createTime);
|
||||
if(registMsgR != null && registMsgR.getData()!=null && registMsgR.getData().getSnmpCollectAddr()!=null){
|
||||
switchInfo.setSwitchIp(registMsgR.getData().getSnmpCollectAddr());
|
||||
}
|
||||
switchInfo.setSwitchIp(switchDataVo.getSwitchIp());
|
||||
InitialSwitchInfoTemp tempInfo = tempMap.get(switchInfo.getName());
|
||||
if (tempInfo != null) {
|
||||
// 计算inSpeed
|
||||
@@ -212,9 +201,7 @@ public class ProcessSwitchCollectDataService {
|
||||
switchInfos.forEach(switchInfo -> {
|
||||
switchInfo.setClientId(clientId);
|
||||
switchInfo.setCreateTime(createTime);
|
||||
if(registMsgR != null && registMsgR.getData()!=null && registMsgR.getData().getSnmpCollectAddr()!=null){
|
||||
switchInfo.setSwitchIp(registMsgR.getData().getSnmpCollectAddr());
|
||||
}
|
||||
switchInfo.setSwitchIp(switchDataVo.getSwitchIp());
|
||||
});
|
||||
}
|
||||
// 清空临时表对应switch信息
|
||||
|
||||
@@ -19,10 +19,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="switchType" column="switch_type" />
|
||||
<result property="deployDevice" column="deploy_device" />
|
||||
<result property="resourceType" column="resource_type" />
|
||||
<result property="priority" column="priority" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectRmMonitorPolicyVo">
|
||||
select id, template_id, resource_group_id, policy_name, description, status, deploy_time, create_time, update_time, create_by, update_by, switch_type, deploy_device, resource_type from rm_monitor_policy
|
||||
select id, template_id, resource_group_id, policy_name, description, status, deploy_time, create_time, update_time, create_by, update_by, switch_type, deploy_device, resource_type, priority from rm_monitor_policy
|
||||
</sql>
|
||||
|
||||
<select id="selectRmMonitorPolicyList" parameterType="RmMonitorPolicy" resultMap="RmMonitorPolicyResult">
|
||||
@@ -30,11 +31,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<where>
|
||||
<if test="templateId != null "> and template_id = #{templateId}</if>
|
||||
<if test="resourceType != null "> and resource_type = #{resourceType}</if>
|
||||
<if test="resourceType != null "> and resource_type = #{resourceType}</if>
|
||||
<if test="resourceGroupId != null "> and resource_group_id = #{resourceGroupId}</if>
|
||||
<if test="policyName != null and policyName != ''"> and policy_name like concat('%', #{policyName}, '%')</if>
|
||||
<if test="description != null and description != ''"> and description = #{description}</if>
|
||||
<if test="status != null and status != ''"> and status = #{status}</if>
|
||||
<if test="deployTime != null "> and deploy_time = #{deployTime}</if>
|
||||
<if test="priority != null "> and priority = #{priority}</if>
|
||||
<if test="queryName != null and queryName != ''">
|
||||
and (policy_name like concat('%', #{queryName}, '%')
|
||||
or template_id in (select id from rm_monitor_template where template_name like concat('%', #{queryName}, '%'))
|
||||
@@ -65,6 +68,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="switchType != null">switch_type,</if>
|
||||
<if test="deployDevice != null">deploy_device,</if>
|
||||
<if test="resourceType != null">resource_type,</if>
|
||||
<if test="priority != null">priority,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="templateId != null">#{templateId},</if>
|
||||
@@ -80,6 +84,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="switchType != null">#{switchType},</if>
|
||||
<if test="deployDevice != null">#{deployDevice},</if>
|
||||
<if test="resourceType != null">#{resourceType},</if>
|
||||
<if test="priority != null">#{priority},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
@@ -99,6 +104,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="switchType != null">switch_type = #{switchType},</if>
|
||||
<if test="deployDevice != null">deploy_device = #{deployDevice},</if>
|
||||
<if test="resourceType != null">resource_type = #{resourceType},</if>
|
||||
<if test="priority != null">priority = #{priority},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
Reference in New Issue
Block a user