diff --git a/src/main/java/com/nis/domain/restful/TrafficNmsServerStatisticList.java b/src/main/java/com/nis/domain/restful/TrafficNmsServerStatisticList.java new file mode 100644 index 0000000..101bfa5 --- /dev/null +++ b/src/main/java/com/nis/domain/restful/TrafficNmsServerStatisticList.java @@ -0,0 +1,31 @@ +package com.nis.domain.restful; + +import java.io.Serializable; +import java.util.List; + +import com.wordnik.swagger.annotations.ApiModel; + +/** + * + *

Title: TrafficNmsServerStatistic

+ *

Description: 记录nms服务器信息,全网机器总量,正常在线机器总数,异常机器列表

+ *

Company: IIE

+ * @author rkg + * @date 2018年8月17日 + * + */ +@ApiModel(value = "TrafficNmsServerStatistic对象", description = "nms上报的服务器相关信息对象类") +public class TrafficNmsServerStatisticList implements Serializable { + private static final long serialVersionUID = 1L; + + private List trafficNmsServerList; + + public List getTrafficNmsServerList() { + return trafficNmsServerList; + } + + public void setTrafficNmsServerList(List trafficNmsServerList) { + this.trafficNmsServerList = trafficNmsServerList; + } + +} diff --git a/src/main/java/com/nis/domain/restful/dashboard/NtcTotalReport.java b/src/main/java/com/nis/domain/restful/dashboard/NtcTotalReport.java new file mode 100644 index 0000000..7c637e1 --- /dev/null +++ b/src/main/java/com/nis/domain/restful/dashboard/NtcTotalReport.java @@ -0,0 +1,93 @@ +package com.nis.domain.restful.dashboard; + +import java.util.Date; + +public class NtcTotalReport { + + private Integer statId ;//int(11) NOT NULL AUTO_INCREMENT COMMENT id自增, + private Integer rejectNum ;//int(11) NOT NULL COMMENT 封堵数量, + private Integer monitorNum ;//int(11) NOT NULL COMMENT 监测数量, + private Integer c2sPktNum ;//int(11) DEFAULT NULL COMMENT c2s包数, + private Integer s2cPktNum ;//int(11) DEFAULT NULL COMMENT s2c包数, + private Integer c2sByteLen ;//int(11) NOT NULL COMMENT c2s字节数, + private Integer s2cByteLen ;//int(11) NOT NULL COMMENT s2c字节数, + private Integer newUniConnNum ;//int(11) DEFAULT NULL COMMENT 新建链接数, + private Integer liveConnNum ;//int(11) DEFAULT NULL COMMENT 活跃链接数, + private Integer dropConnNum ;//int(11) DEFAULT NULL COMMENT 丢弃链接数, + private Integer loopConnNum ;//int(11) DEFAULT NULL COMMENT 回流链接数, + private Date reportTime ;//datetime NOT NULL COMMENT 统计时间, + + public Integer getStatId() { + return statId; + } + public void setStatId(Integer statId) { + this.statId = statId; + } + public Integer getRejectNum() { + return rejectNum; + } + public void setRejectNum(Integer rejectNum) { + this.rejectNum = rejectNum; + } + public Integer getMonitorNum() { + return monitorNum; + } + public void setMonitorNum(Integer monitorNum) { + this.monitorNum = monitorNum; + } + public Integer getC2sPktNum() { + return c2sPktNum; + } + public void setC2sPktNum(Integer c2sPktNum) { + this.c2sPktNum = c2sPktNum; + } + public Integer getS2cPktNum() { + return s2cPktNum; + } + public void setS2cPktNum(Integer s2cPktNum) { + this.s2cPktNum = s2cPktNum; + } + public Integer getC2sByteLen() { + return c2sByteLen; + } + public void setC2sByteLen(Integer c2sByteLen) { + this.c2sByteLen = c2sByteLen; + } + public Integer getS2cByteNen() { + return s2cByteLen; + } + public void setS2cByteNen(Integer s2cByteLen) { + this.s2cByteLen = s2cByteLen; + } + public Integer getNewUniConnNum() { + return newUniConnNum; + } + public void setNewUniConnNum(Integer newUniConnNum) { + this.newUniConnNum = newUniConnNum; + } + public Integer getLiveConnNum() { + return liveConnNum; + } + public void setLiveConnNum(Integer liveConnNum) { + this.liveConnNum = liveConnNum; + } + public Integer getDropConnNum() { + return dropConnNum; + } + public void setDropConnNum(Integer dropConnNum) { + this.dropConnNum = dropConnNum; + } + public Integer getLoopConnNum() { + return loopConnNum; + } + public void setLoopConnNum(Integer loopConnNum) { + this.loopConnNum = loopConnNum; + } + public Date getReportTime() { + return reportTime; + } + public void setReportTime(Date reportTime) { + this.reportTime = reportTime; + } + +} \ No newline at end of file diff --git a/src/main/java/com/nis/domain/restful/dashboard/TrafficHttpStatistic.java b/src/main/java/com/nis/domain/restful/dashboard/TrafficHttpStatistic.java index e928204..9fadebf 100644 --- a/src/main/java/com/nis/domain/restful/dashboard/TrafficHttpStatistic.java +++ b/src/main/java/com/nis/domain/restful/dashboard/TrafficHttpStatistic.java @@ -23,8 +23,18 @@ public class TrafficHttpStatistic { private Integer count; private Integer pktNum; private Integer byteLen; + private Integer websiteServiceId;//网站id - public Integer getCount() { + + public Integer getWesiteServiceId() { + return websiteServiceId; + } + + public void setWebsiteServiceId(Integer websiteServiceId) { + this.websiteServiceId = websiteServiceId; + } + + public Integer getCount() { return count; } diff --git a/src/main/java/com/nis/domain/restful/dashboard/TrafficPortActiveStatistic.java b/src/main/java/com/nis/domain/restful/dashboard/TrafficPortActiveStatistic.java new file mode 100644 index 0000000..98b3592 --- /dev/null +++ b/src/main/java/com/nis/domain/restful/dashboard/TrafficPortActiveStatistic.java @@ -0,0 +1,38 @@ +package com.nis.domain.restful.dashboard; + +import java.util.Date; + +public class TrafficPortActiveStatistic { +//流量统计之活跃端口统计 + private Integer statId; + private Integer port; + private Integer sum; + private Date statTime; + + public Integer getStatId() { + return statId; + } + public void setStatId(Integer statId) { + this.statId = statId; + } + public Integer getPort() { + return port; + } + public void setPort(Integer port) { + this.port = port; + } + public Integer getSum() { + return sum; + } + public void setSum(Integer sum) { + this.sum = sum; + } + public Date getStatTime() { + return statTime; + } + public void setStatTime(Date statTime) { + this.statTime = statTime; + } + + +} diff --git a/src/main/java/com/nis/domain/restful/dashboard/WebsiteDomainTopic.java b/src/main/java/com/nis/domain/restful/dashboard/WebsiteDomainTopic.java new file mode 100644 index 0000000..03319b4 --- /dev/null +++ b/src/main/java/com/nis/domain/restful/dashboard/WebsiteDomainTopic.java @@ -0,0 +1,59 @@ +package com.nis.domain.restful.dashboard; + +import java.util.Date; + +public class WebsiteDomainTopic { + + private Long id; // `id` bigint(20) NOT NULL AUTO_INCREMENT, + private Long websiteServiceId; // `website_service_id` bigint(20) DEFAULT NULL COMMENT '网站服务Id', + private String domain; // `domain` varchar(200) DEFAULT NULL COMMENT '域名', + private Long topicId; // `topic_id` bigint(20) DEFAULT NULL COMMENT '主题Id', + private Date createTime; // `create_time` timestamp NULL DEFAULT NULL ON UPDATE current_timestamp(), + private Integer creatorId; // `creator_id` int(11) DEFAULT NULL, + private Integer isValid; // `is_valid` int(1) DEFAULT NULL, + + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + public Long getWebsiteServiceId() { + return websiteServiceId; + } + public void setWebsiteServiceId(Long websiteServiceId) { + this.websiteServiceId = websiteServiceId; + } + public String getDomain() { + return domain; + } + public void setDomain(String domain) { + this.domain = domain; + } + public Long getTopicId() { + return topicId; + } + public void setTopicId(Long topicId) { + this.topicId = topicId; + } + public Date getCreateTime() { + return createTime; + } + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + public Integer getCreatorId() { + return creatorId; + } + public void setCreatorId(Integer creatorId) { + this.creatorId = creatorId; + } + public Integer getIsValid() { + return isValid; + } + public void setIsValid(Integer isValid) { + this.isValid = isValid; + } + + +} diff --git a/src/main/java/com/nis/restful/RestBusinessCode.java b/src/main/java/com/nis/restful/RestBusinessCode.java index 3a66acb..3f2c39e 100644 --- a/src/main/java/com/nis/restful/RestBusinessCode.java +++ b/src/main/java/com/nis/restful/RestBusinessCode.java @@ -592,6 +592,12 @@ public enum RestBusinessCode { */ RegionIsNotExist(5002010,"删除分组复用域配置时,无法在关联关系中找到对应的域配置信息,之前该域没有添加过,或者关联关系被损坏请检查"), + + /** + *配置文件内容有误 + */ + PropertiesIsError(5002011,"配置文件内容有误"), + /** * 无法从Map中获取配置的属性值 */ diff --git a/src/main/java/com/nis/util/ServiceAndRDBIndexReal.java b/src/main/java/com/nis/util/ServiceAndRDBIndexReal.java index df5d261..7f4be47 100644 --- a/src/main/java/com/nis/util/ServiceAndRDBIndexReal.java +++ b/src/main/java/com/nis/util/ServiceAndRDBIndexReal.java @@ -29,7 +29,7 @@ public class ServiceAndRDBIndexReal { * 记录哪些service可以被分组复用(只有maat类配置可以被分组复用) * Map> */ - private static Map>> serviceGroupReuseMap = new HashMap>>(); + private static Map>> serviceGroupReuseMap = new HashMap>>(); /** * 第一个key是业务类型,第二个key是type(编译配置,分组配置,域配置)value是表名 @@ -57,35 +57,32 @@ public class ServiceAndRDBIndexReal { private static Map> maatToValveMap = new HashMap>(); /** - * 阀门保存的redis数据库Index,在seriveTable.properties中定义 + * 阀门保存的redis数据库Index,在nis.properties中定义 */ - private static Integer valveDBIndex = 7; + private static Integer valveDBIndex = Configurations.getIntProperty("tapRedisDb", 5); static { String unMaatService = Configurations.getStringProperty("unMaatService", ""); if (unMaatService != null && !unMaatService.trim().equals("")) { String[] split = unMaatService.split(";"); for (String str : split) { - String[] serviceAction = str.split(":"); - if (serviceAction.length==2) { - serviceActionMap.put(Integer.valueOf(serviceAction[0]), - Integer.valueOf(serviceAction[1])); - }else{ - serviceActionMap.put(Integer.valueOf(serviceAction[0]), - null); - } - String serviceType = Configurations.getStringProperty(serviceAction[0], ""); - if (serviceType != null && !serviceType.trim().equals("")) { - String[] typeArrs = serviceType.split(";"); - for (String typeStr : typeArrs) { - String[] typeArr = typeStr.split(":"); - String tableNameArr[] = typeArr[1].split(","); - for (String tableName : tableNameArr) { - unMaatSercieNameMap.put(Integer.parseInt(serviceAction[0]), - tableName.toUpperCase()); - } - } - } + String[] serviceAction = str.split(":"); + if (serviceAction.length == 2) { + serviceActionMap.put(Integer.valueOf(serviceAction[0]), Integer.valueOf(serviceAction[1])); + } else { + serviceActionMap.put(Integer.valueOf(serviceAction[0]), null); + } + String serviceType = Configurations.getStringProperty(serviceAction[0], ""); + if (serviceType != null && !serviceType.trim().equals("")) { + String[] typeArrs = serviceType.split(";"); + for (String typeStr : typeArrs) { + String[] typeArr = typeStr.split(":"); + String tableNameArr[] = typeArr[1].split(","); + for (String tableName : tableNameArr) { + unMaatSercieNameMap.put(Integer.parseInt(serviceAction[0]), tableName.toUpperCase()); + } + } + } } } @@ -161,17 +158,17 @@ public class ServiceAndRDBIndexReal { if (!StringUtil.isEmpty(serviceRepeatedReal)) { String[] serviceRepeatedRealArr = serviceRepeatedReal.split(";"); for (String serviceRepeated : serviceRepeatedRealArr) { - String [] serInfos = serviceRepeated.split(":"); - String [] regionInfos = serInfos[1].split("[|]"); + String[] serInfos = serviceRepeated.split(":"); + String[] regionInfos = serInfos[1].split("[|]"); for (String regionInfo : regionInfos) { - String [] regionTabName = regionInfo.split("@"); - String [] tableNames = regionTabName[1].split(","); + String[] regionTabName = regionInfo.split("@"); + String[] tableNames = regionTabName[1].split(","); for (String tableName : tableNames) { Integer ser = Integer.valueOf(serInfos[0]); - if(serviceGroupReuseMap.containsKey(ser)){ + if (serviceGroupReuseMap.containsKey(ser)) { serviceGroupReuseMap.get(ser).get(regionTabName[0]).add(tableName); - }else{ - Map> regTabMap = new HashMap>(); + } else { + Map> regTabMap = new HashMap>(); List tabList = new ArrayList(); tabList.add(tableName); regTabMap.put(regionTabName[0], tabList); @@ -183,8 +180,6 @@ public class ServiceAndRDBIndexReal { } } - - public static void main(String[] args) { // getUnMaatTable(); getMaatTable(); @@ -326,7 +321,7 @@ public class ServiceAndRDBIndexReal { return null; } - + /** * 判断service是否被分组复用 * @param service @@ -336,10 +331,25 @@ public class ServiceAndRDBIndexReal { if (service != null) { return serviceGroupReuseMap.containsKey(service); } else { - throw new ServiceRuntimeException("判断service是否是分组复用时发生了异常,异常原因:service=null", RestBusinessCode.ServiceIsNull.getValue()); + throw new ServiceRuntimeException("判断service是否是分组复用时发生了异常,异常原因:service=null", + RestBusinessCode.ServiceIsNull.getValue()); } } + /** + * 验证当前service是否是向阀门添加action,service或者userregion等属性 + * @param service + * @return + */ + public static boolean isAddASU(int service) { + boolean isValve = false; + Map map2 = maatToValveMap.get(service); + if (map2 != null && map2.size() > 0) { + isValve = true; + } + return isValve; + } + /** * 根据业务类型获取unmaat配置表名 * @param service @@ -401,6 +411,7 @@ public class ServiceAndRDBIndexReal { public static void setUnMaatSercieNameMap(Map unMaatSercieNameMap) { ServiceAndRDBIndexReal.unMaatSercieNameMap = unMaatSercieNameMap; } + /** * @return the serviceGroupReuseMap */ @@ -416,7 +427,7 @@ public class ServiceAndRDBIndexReal { List list = new ArrayList(); list.addAll(map.get(regionName)); groupReuseRegionMap.put(regionName, list); - }else{ + } else { groupReuseRegionMap.get(regionName).addAll(map.get(regionName)); } } diff --git a/src/main/java/com/nis/web/controller/restful/DashboardServiceController.java b/src/main/java/com/nis/web/controller/restful/DashboardServiceController.java index 78f371c..2c6ec57 100644 --- a/src/main/java/com/nis/web/controller/restful/DashboardServiceController.java +++ b/src/main/java/com/nis/web/controller/restful/DashboardServiceController.java @@ -6,6 +6,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import com.nis.domain.restful.dashboard.TrafficPortActiveStatistic; import com.nis.restful.RestServiceException; import com.nis.util.Constants; import javax.servlet.http.HttpServletRequest; @@ -34,6 +35,67 @@ public class DashboardServiceController extends BaseRestController { protected ServicesRequestLogService servicesRequestLogService; @Autowired public DashboardService dashboardService; + + /** + * 流量统计info滚动条数据显示 封堵监测回流丢弃 + */ + @RequestMapping(value = "ntcTotalReport", method = RequestMethod.GET) + @ApiOperation(value = "业务总量汇聚", httpMethod = "GET", notes = "对应流量统计info滚动条数据显示") + public Map ntcTotalReport(Model model, HttpServletRequest request, HttpServletResponse response) { + + long start = System.currentTimeMillis(); + AuditLogThread auditLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, request, null); + List list = new ArrayList(); + try { + List resultList = dashboardService.getTotalReportList(); + if (resultList!=null&&resultList.size() > 0) { + list = resultList; + } + } catch (Exception e) { + e.printStackTrace(); + auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause()); + logger.error(e); + if (!(e instanceof RestServiceException)) { + e = new RestServiceException(auditLogThread, System.currentTimeMillis() - start, "业务总量汇聚实时统计数据检索失败"); + } + throw ((RestServiceException) e); + } + return serviceLogResponse(auditLogThread, System.currentTimeMillis() - start, request, "业务总量汇聚实时统计数据检索成功",list, 0); + } + /** + * 流量统计活跃端口统计 + */ + @RequestMapping(value = "trafficPortActive", method = RequestMethod.GET) + @ApiOperation(value = "活跃端口统计", httpMethod = "GET", notes = "对应流量统计活跃端口统计") + public Map trafficPortActive(Model model, HttpServletRequest request, HttpServletResponse response) { + + long start = System.currentTimeMillis(); + AuditLogThread auditLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, request, null); + List list = new ArrayList(); + try { + List resultList = dashboardService.getPortActiveList(); + + if (resultList!=null&&resultList.size() > 0) { + for (TrafficPortActiveStatistic port : resultList) { + Map map = new HashMap(); + + map.put("port", port.getPort()); + map.put("sum", port.getSum()); + list.add(map); + } + } + } catch (Exception e) { + e.printStackTrace(); + auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause()); + logger.error(e); + if (!(e instanceof RestServiceException)) { + e = new RestServiceException(auditLogThread, System.currentTimeMillis() - start, "活跃端口实时统计数据检索失败"); + } + throw ((RestServiceException) e); + } + return serviceLogResponse(auditLogThread, System.currentTimeMillis() - start, request, "活跃端口实时统计数据检索成功",list, 0); + } + /** * 协议统计 @@ -92,7 +154,7 @@ public class DashboardServiceController extends BaseRestController { return serviceLogResponse(auditLogThread, System.currentTimeMillis() - start, request, "活跃IP实时统计数据检索成功",list, 0); } /** - * app流量分析 TOP10 + * app应用流量分析 TOP10 */ @RequestMapping(value = "trafficApp", method = RequestMethod.GET) @ApiOperation(value = "app流量分析统计", httpMethod = "GET", notes = "对应app流量分析实时统计查询服务。") @@ -215,7 +277,8 @@ public class DashboardServiceController extends BaseRestController { AuditLogThread auditLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, request, null); List list = new ArrayList(); try { - List websiteChart = dashboardService.websiteList(); +// List websiteChart = dashboardService.websiteList(); + List websiteChart = dashboardService.getDomainByWebsiteList(); if (websiteChart.size() > 0) { list = websiteChart; } @@ -232,13 +295,13 @@ public class DashboardServiceController extends BaseRestController { } @RequestMapping(value = "trafficWebTypeChart", method = RequestMethod.GET) @ApiOperation(value = "http网站分类分析统计", httpMethod = "GET", notes = "对应某个网站类型分类统计图") - public Map trafficWebTypeChart(Integer webId,Model model, HttpServletRequest request, HttpServletResponse response) { + public Map trafficWebTypeChart(Integer websiteServiceId,Model model, HttpServletRequest request, HttpServletResponse response) { long start = System.currentTimeMillis(); AuditLogThread auditLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, request, null); List list = new ArrayList(); try { - List websiteChart = dashboardService.getTypeBywebsite(webId); + List websiteChart = dashboardService.getDomainByWebsiteServiceId(websiteServiceId); if (websiteChart.size() > 0) { list = websiteChart; } @@ -253,4 +316,27 @@ public class DashboardServiceController extends BaseRestController { } return serviceLogResponse(auditLogThread, System.currentTimeMillis() - start, request, "http网站分类分析数据检索成功",list, 0); } + @RequestMapping(value = "trafficTopicAndDomainChart", method = RequestMethod.GET) + @ApiOperation(value = "http网站主题分类分析统计", httpMethod = "GET", notes = "对应某个网站主题类型分类统计图") + public Map trafficTopicAndDomainChart(Integer websiteServiceId,Model model, HttpServletRequest request, HttpServletResponse response) { + + long start = System.currentTimeMillis(); + AuditLogThread auditLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, request, null); + List list = new ArrayList(); + try { + List websiteChart = dashboardService.getTopicAndDomainList(); + if (websiteChart.size() > 0) { + list = websiteChart; + } + } catch (Exception e) { + e.printStackTrace(); + auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause()); + logger.error(e); + if (!(e instanceof RestServiceException)) { + e = new RestServiceException(auditLogThread, System.currentTimeMillis() - start, "http网站主题分类分析数据检索失败"); + } + throw ((RestServiceException) e); + } + return serviceLogResponse(auditLogThread, System.currentTimeMillis() - start, request, "http网站主题分类分析数据检索成功",list, 0); + } } diff --git a/src/main/java/com/nis/web/controller/restful/NmsInfoController.java b/src/main/java/com/nis/web/controller/restful/NmsInfoController.java index f2bca8f..7523cef 100644 --- a/src/main/java/com/nis/web/controller/restful/NmsInfoController.java +++ b/src/main/java/com/nis/web/controller/restful/NmsInfoController.java @@ -1,21 +1,19 @@ package com.nis.web.controller.restful; -import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.nis.domain.restful.TrafficNmsServerStatistic; +import com.nis.domain.restful.TrafficNmsServerStatisticList; import com.nis.restful.RestBusinessCode; -import com.nis.restful.RestConstants; import com.nis.restful.RestServiceException; import com.nis.util.Constants; import com.nis.web.controller.BaseRestController; @@ -38,30 +36,28 @@ public class NmsInfoController extends BaseRestController { @RequestMapping(value = "/nms/v1/saveServerStatus", method = RequestMethod.POST) @ApiOperation(value = "存储NMS系统上报的服务器状态接口", httpMethod = "POST", response = Map.class, notes = "接收NMS系统上报的服务器状态信息") @ApiParam(value = "存储NMS系统上报的服务器状态接口", name = "saveServerStatus", required = true) - public Map saveServerStatus(@RequestBody TrafficNmsServerStatistic trafficNmsServerStatistic, - HttpServletRequest request, HttpServletResponse response) { + public Map saveServerStatus( + @RequestBody TrafficNmsServerStatisticList trafficNmsServerStatisticList, HttpServletRequest request, + HttpServletResponse response) { long start = System.currentTimeMillis(); AuditLogThread thread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_POST, request, - trafficNmsServerStatistic); - - Map map = new HashMap(); - map.put(RestConstants.REST_SERVICE_HTTP_STATUS, HttpStatus.OK); + trafficNmsServerStatisticList); try { - TrafficNmsServerStatistic saveNmsServer = trafficNmsServerStatisticService - .saveNmsServer(trafficNmsServerStatistic); - try { - trafficNmsServerStatisticService.saveAbnormalMachine(saveNmsServer.getId(), - saveNmsServer.getAbnormalMachineList()); - } catch (Exception e) { - trafficNmsServerStatisticService.delNmsServer(saveNmsServer); - throw e; + + if (trafficNmsServerStatisticList != null && trafficNmsServerStatisticList.getTrafficNmsServerList() != null + && trafficNmsServerStatisticList.getTrafficNmsServerList().size() > 0) { + trafficNmsServerStatisticService.saveNmsInfo(trafficNmsServerStatisticList.getTrafficNmsServerList()); + } else { + throw new RestServiceException(thread, System.currentTimeMillis() - start, "参数trafficNmsServerList不能为空", + RestBusinessCode.missing_args.getValue()); } + } catch (Exception e) { throw new RestServiceException(thread, System.currentTimeMillis() - start, "上报服务器状态信息异常:" + e.getMessage(), RestBusinessCode.unknow_error.getValue()); } return compileServiceResponse(thread, System.currentTimeMillis() - start, request, response, "上报服务器状态信息成功", - Constants.IS_DEBUG ? trafficNmsServerStatistic : null); + Constants.IS_DEBUG ? trafficNmsServerStatisticList : null); } } diff --git a/src/main/java/com/nis/web/controller/restful/SingleDimensionReport.java b/src/main/java/com/nis/web/controller/restful/SingleDimensionReport.java index 3e8b7bd..675c68f 100644 --- a/src/main/java/com/nis/web/controller/restful/SingleDimensionReport.java +++ b/src/main/java/com/nis/web/controller/restful/SingleDimensionReport.java @@ -364,7 +364,7 @@ public class SingleDimensionReport extends BaseRestController { */ public void resetReportTime(NtcReportEntity entity,Boolean isTotal) throws Exception { //日志总量统计查询全部 - if ("1".equals(entity.getSearchBusinessType())) { + if ("1".equals(entity.getSearchBusinessType())&&isTotal) { return ; } if (StringUtil.isEmpty(entity.getSearchReportStartTime())&&StringUtil.isEmpty(entity.getSearchReportEndTime())) { diff --git a/src/main/java/com/nis/web/dao/dashboard/NtcTotalReportDao.java b/src/main/java/com/nis/web/dao/dashboard/NtcTotalReportDao.java new file mode 100644 index 0000000..96fc54b --- /dev/null +++ b/src/main/java/com/nis/web/dao/dashboard/NtcTotalReportDao.java @@ -0,0 +1,13 @@ +package com.nis.web.dao.dashboard; + +import java.util.List; +import java.util.Map; + +import com.nis.web.dao.MyBatisDao; +@MyBatisDao +public interface NtcTotalReportDao { + + List getTotalReportList(); + List getNetFlowPortInfoNew(); + List getNetFlowPortInfoOld(); +} \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/dashboard/NtcTotalReportDao.xml b/src/main/java/com/nis/web/dao/dashboard/NtcTotalReportDao.xml new file mode 100644 index 0000000..c07e98d --- /dev/null +++ b/src/main/java/com/nis/web/dao/dashboard/NtcTotalReportDao.xml @@ -0,0 +1,33 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/dashboard/TrafficAppStatisticDao.xml b/src/main/java/com/nis/web/dao/dashboard/TrafficAppStatisticDao.xml index 5b9b810..58d7348 100644 --- a/src/main/java/com/nis/web/dao/dashboard/TrafficAppStatisticDao.xml +++ b/src/main/java/com/nis/web/dao/dashboard/TrafficAppStatisticDao.xml @@ -16,8 +16,9 @@ stat_time \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/dashboard/TrafficHttpStatisticDao.java b/src/main/java/com/nis/web/dao/dashboard/TrafficHttpStatisticDao.java index 7fca504..3c2ff0c 100644 --- a/src/main/java/com/nis/web/dao/dashboard/TrafficHttpStatisticDao.java +++ b/src/main/java/com/nis/web/dao/dashboard/TrafficHttpStatisticDao.java @@ -10,10 +10,14 @@ import com.nis.web.dao.MyBatisDao; @MyBatisDao public interface TrafficHttpStatisticDao { List websiteList(); - - List getTypeBywebsite(@Param("webId") Integer webId); - Map websiteTypeOthers(@Param("webType") List webType,@Param("webId") Integer webId); + //获取域名分类之后属于的网站 + List getDomainByWebsiteList(); + Integer preWebsiteListCount(@Param("websiteServiceId") Integer websiteServiceId); + List getDomainByWebsiteServiceId(@Param("websiteServiceId") Integer websiteServiceId); + Map websiteDomainOthers(@Param("webIdList") List webIdList,@Param("websiteServiceId") Integer websiteServiceId); - Integer preWebsiteListCount(@Param("webId") Integer webId); + List getDomainByTopicList(); + + List getDomainByTopicId(@Param("topicId")Object TopicId); } \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/dashboard/TrafficHttpStatisticDao.xml b/src/main/java/com/nis/web/dao/dashboard/TrafficHttpStatisticDao.xml index a2db696..2f560bf 100644 --- a/src/main/java/com/nis/web/dao/dashboard/TrafficHttpStatisticDao.xml +++ b/src/main/java/com/nis/web/dao/dashboard/TrafficHttpStatisticDao.xml @@ -3,7 +3,7 @@ - + @@ -15,34 +15,65 @@ stat_id, web_type, web_id, c2s_pkt_num, s2c_pkt_num, c2s_byte_len, s2c_byte_len, stat_time - - - - - + + + + + + + + + + + - + SELECT SUM(link_num) count ,(SUM(c2s_pkt_num)+SUM(s2c_pkt_num)) pktNum,(SUM(c2s_byte_len)+SUM(s2c_byte_len)) byteLen FROM galaxy.traffic_http_statistic t + LEFT JOIN galaxy.ui_website_domain_topic u ON t.web_id=u.id + where u.website_service_id=#{websiteServiceId} + + and t.web_id not in + #{singleType} - and stat_time >= DATE_SUB(NOW(),INTERVAL 5 MINUTE) + and stat_time >= DATE_SUB((SELECT MAX(stat_time) FROM galaxy.traffic_http_statistic),INTERVAL 5 MINUTE) \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/dashboard/TrafficIpActiveStatisticDao.xml b/src/main/java/com/nis/web/dao/dashboard/TrafficIpActiveStatisticDao.xml index 3c6e416..57a4db1 100644 --- a/src/main/java/com/nis/web/dao/dashboard/TrafficIpActiveStatisticDao.xml +++ b/src/main/java/com/nis/web/dao/dashboard/TrafficIpActiveStatisticDao.xml @@ -26,8 +26,8 @@ \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/dashboard/TrafficPortActiveStatisticDao.java b/src/main/java/com/nis/web/dao/dashboard/TrafficPortActiveStatisticDao.java new file mode 100644 index 0000000..bf02dfe --- /dev/null +++ b/src/main/java/com/nis/web/dao/dashboard/TrafficPortActiveStatisticDao.java @@ -0,0 +1,12 @@ +package com.nis.web.dao.dashboard; + +import java.util.List; +import java.util.Map; + +import com.nis.domain.restful.dashboard.TrafficPortActiveStatistic; +import com.nis.web.dao.MyBatisDao; +@MyBatisDao +public interface TrafficPortActiveStatisticDao { + + List getPortActiveList(); +} \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/dashboard/TrafficPortActiveStatisticDao.xml b/src/main/java/com/nis/web/dao/dashboard/TrafficPortActiveStatisticDao.xml new file mode 100644 index 0000000..ef418ad --- /dev/null +++ b/src/main/java/com/nis/web/dao/dashboard/TrafficPortActiveStatisticDao.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/dashboard/TrafficProtocolStatisticDao.xml b/src/main/java/com/nis/web/dao/dashboard/TrafficProtocolStatisticDao.xml index f12e4ab..d30a2ec 100644 --- a/src/main/java/com/nis/web/dao/dashboard/TrafficProtocolStatisticDao.xml +++ b/src/main/java/com/nis/web/dao/dashboard/TrafficProtocolStatisticDao.xml @@ -16,6 +16,7 @@ stat_time \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/dashboard/TrafficUaStatisticDao.xml b/src/main/java/com/nis/web/dao/dashboard/TrafficUaStatisticDao.xml index ac8713b..2d6ffb2 100644 --- a/src/main/java/com/nis/web/dao/dashboard/TrafficUaStatisticDao.xml +++ b/src/main/java/com/nis/web/dao/dashboard/TrafficUaStatisticDao.xml @@ -18,25 +18,25 @@ \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/restful/ConfigJedisServiceimpl.java b/src/main/java/com/nis/web/service/restful/ConfigJedisServiceimpl.java index 8178a8c..c5013a1 100644 --- a/src/main/java/com/nis/web/service/restful/ConfigJedisServiceimpl.java +++ b/src/main/java/com/nis/web/service/restful/ConfigJedisServiceimpl.java @@ -32,7 +32,7 @@ import redis.clients.jedis.exceptions.JedisConnectionException; @Service() public class ConfigJedisServiceimpl implements ConfigRedisService { private static Logger logger = LoggerFactory.getLogger(ConfigJedisServiceimpl.class); - private static final int TAPREDISDB = Configurations.getIntProperty("tapRedisDb", 7); + private static final int TAPREDISDB = Configurations.getIntProperty("tapRedisDb", 5); // 用于在实时统计配置后面添加时间,方便读取入库时间 private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); @@ -445,6 +445,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { Jedis resource = JedisUtils.getResource(0); Transaction transaction = resource.multi(); try { + Set keySet = configMap.keySet(); for (Integer redisDBIndex : configMap.keySet()) { if (redisDBIndex >= 0 && redisDBIndex < Configurations.getIntProperty("maxRedisDBIndex", 6)) { transaction.select(redisDBIndex); @@ -458,6 +459,13 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { if (maatConfigList != null && maatConfigList.size() > 0) { for (MaatConfig maatConfig : maatConfigList) { int service = maatConfig.getService(); + if (ServiceAndRDBIndexReal.isAddASU(service)) { + if (!keySet.contains(TAPREDISDB)) { + throw new ServiceRuntimeException("业务类型:" + service + ",需要向阀门" + TAPREDISDB + "号库分发,但是当前只往" + + keySet + "库下发,请检查阀门编号或者当前业务对应的配置文件是否正确",RestBusinessCode.PropertiesIsError.getValue()); + } + } + MaatXmlConfig maatXmlConfig = ReadMaatXmlUtil.getMaatConfigByService(service); setConfig(maatConfig, maatXmlConfig, maatVersion, service, transaction, redisDBIndex); diff --git a/src/main/java/com/nis/web/service/restful/DashboardService.java b/src/main/java/com/nis/web/service/restful/DashboardService.java index a84fe70..6e1faad 100644 --- a/src/main/java/com/nis/web/service/restful/DashboardService.java +++ b/src/main/java/com/nis/web/service/restful/DashboardService.java @@ -12,10 +12,13 @@ import org.springframework.stereotype.Service; import com.nis.domain.Page; import com.nis.domain.restful.dashboard.TrafficHttpStatistic; import com.nis.domain.restful.dashboard.TrafficIpActiveStatistic; +import com.nis.domain.restful.dashboard.TrafficPortActiveStatistic; import com.nis.domain.restful.dashboard.TrafficUaStatistic; +import com.nis.web.dao.dashboard.NtcTotalReportDao; import com.nis.web.dao.dashboard.TrafficAppStatisticDao; import com.nis.web.dao.dashboard.TrafficHttpStatisticDao; import com.nis.web.dao.dashboard.TrafficIpActiveStatisticDao; +import com.nis.web.dao.dashboard.TrafficPortActiveStatisticDao; import com.nis.web.dao.dashboard.TrafficProtocolStatisticDao; import com.nis.web.dao.dashboard.TrafficUaStatisticDao; import com.nis.web.service.BaseService; @@ -33,6 +36,49 @@ public class DashboardService extends BaseService{ public TrafficUaStatisticDao trafficUaStatisticDao; @Autowired public TrafficHttpStatisticDao trafficHttpStatisticDao; + @Autowired + public NtcTotalReportDao ntcTotalReportDao; + @Autowired + public TrafficPortActiveStatisticDao trafficPortActiveStatisticDao; + + /** + * 流量统计 数据显示 + * @return Map + */ + public List getTotalReportList(){ + List totalReportList = ntcTotalReportDao.getTotalReportList(); + //统计带宽的流入流出 单位 五分钟 的 byte + List newData = ntcTotalReportDao.getNetFlowPortInfoNew(); + List oldData = ntcTotalReportDao.getNetFlowPortInfoOld(); + Double inoctets=0d; + Double outoctets=0d; + if(newData!=null&&newData.size()>0&&oldData!=null&&oldData.size()>0&&newData.get(0)!=null&&oldData.get(0)!=null){ + Double newInoctets=Double.parseDouble(newData.get(0).get("inoctets").toString()) ; + Double newOutoctets=Double.parseDouble(newData.get(0).get("outoctets").toString()) ; + Double oldInoctets=Double.parseDouble(oldData.get(0).get("inoctets").toString()); + Double oldOutoctets=Double.parseDouble(oldData.get(0).get("outoctets").toString()); + //结果为当前五分钟减去上个五分钟 + inoctets=newInoctets-oldInoctets; + outoctets=newOutoctets-oldOutoctets; + if(inoctets<0||outoctets<0){ + inoctets=0d; + outoctets=0d; + } + } + if(totalReportList!=null&&totalReportList.size()>0){ + for (Map map : totalReportList) { + map.put("inoctets", inoctets); + map.put("outoctets", outoctets); + } + } + + return totalReportList; + } + public List getPortActiveList(){ + List portActiveList = trafficPortActiveStatisticDao.getPortActiveList(); + + return portActiveList; + } /** * 分页查询活跃IPtop100 @@ -108,19 +154,21 @@ public class DashboardService extends BaseService{ List result = new ArrayList(); List list = trafficUaStatisticDao.browserList(); Integer preCount=0; - for (TrafficUaStatistic ua : list) { - Map map = new HashMap(); - map.put("bsType",ua.getBsType()); - map.put("count",ua.getCount()); - map.put("pktNum",ua.getPktNum()); - map.put("byteLen",ua.getByteLen()); - preCount = trafficUaStatisticDao.preBrowserListCount(ua.getBsType());//上个时段的量 用于与现在对比 - if(preCount!=null){ - map.put("preCount",preCount); - }else{ - map.put("preCount",0); + if(list!=null&&list.size()>0){ + for (TrafficUaStatistic ua : list) { + Map map = new HashMap(); + map.put("bsType",ua.getBsType()); + map.put("count",ua.getCount()); + map.put("pktNum",ua.getPktNum()); + map.put("byteLen",ua.getByteLen()); + preCount = trafficUaStatisticDao.preBrowserListCount(ua.getBsType());//上个时段的量 用于与现在对比 + if(preCount!=null){ + map.put("preCount",preCount); + }else{ + map.put("preCount",0); + } + result.add(map); } - result.add(map); } return result; } @@ -145,37 +193,91 @@ public class DashboardService extends BaseService{ List result = new ArrayList(); List list = trafficHttpStatisticDao.websiteList(); Integer preCount=0; - for (TrafficHttpStatistic website : list) { - Map map = new HashMap(); - map.put("webId",website.getWebId()); - map.put("count",website.getCount()); - map.put("pktNum",website.getPktNum()); - map.put("byteLen",website.getByteLen()); - preCount = trafficHttpStatisticDao.preWebsiteListCount(website.getWebId());//上个时段的量 用于与现在对比 - if(preCount!=null){ - map.put("preCount",preCount); - }else{ - map.put("preCount",0); + if(list!=null&&list.size()>0){ + for (TrafficHttpStatistic website : list) { + Map map = new HashMap(); + map.put("webId",website.getWebId()); + map.put("count",website.getCount()); + map.put("pktNum",website.getPktNum()); + map.put("byteLen",website.getByteLen()); + preCount = trafficHttpStatisticDao.preWebsiteListCount(website.getWebId());//上个时段的量 用于与现在对比 + if(preCount!=null){ + map.put("preCount",preCount); + }else{ + map.put("preCount",0); + } + result.add(map); } - result.add(map); } return result; } - public List getTypeBywebsite(Integer webId ){ - List list = trafficHttpStatisticDao.getTypeBywebsite(webId); - List webType = new ArrayList(); - //查询固定网站下的除了TOP10以外的others分类 + /** + * 根据网站服务查询子域名 + * @param websiteServiceId + * @return list + */ + public List getDomainByWebsiteServiceId(Integer websiteServiceId ){ + List list = trafficHttpStatisticDao.getDomainByWebsiteServiceId(websiteServiceId); + List webIdList = new ArrayList(); + //查询固定网站下的域名除了TOP10以外的others域名 if(list!=null&& list.size()>0){ for (Map map : list) { - webType.add(map.get("webType")); + webIdList.add(map.get("webId")); } Map others = new HashMap(); - others = trafficHttpStatisticDao.websiteTypeOthers(webType,webId); + others = trafficHttpStatisticDao.websiteDomainOthers(webIdList,websiteServiceId); if(others!=null&&others.size()>0){ - others.put("webType", "-1"); + others.put("webId", "-1"); list.add(others); } } return list; } + + /** + 获取网站列表 + * @return + */ + @SuppressWarnings("unchecked") + public List getDomainByWebsiteList(){ + List websiteList = trafficHttpStatisticDao.getDomainByWebsiteList(); + List result = new ArrayList(); + if(websiteList!=null&&websiteList.size()>0){ + Integer preCount=0; + for (TrafficHttpStatistic website : websiteList) { + Map map = new HashMap(); + map.put("websiteServiceId",website.getWesiteServiceId()); + map.put("count",website.getCount()); + map.put("pktNum",website.getPktNum()); + map.put("byteLen",website.getByteLen()); + preCount = trafficHttpStatisticDao.preWebsiteListCount(website.getWesiteServiceId());//上个时段的量 用于与现在对比 + if(preCount!=null){ + map.put("preCount",preCount); + }else{ + map.put("preCount",0); + } + result.add(map); + } + } + + return result; + } + /** + *主题网站分类,域名 + * + * **/ + public List getTopicAndDomainList(){ + //按照主题分类 获得主题 + List topicList = trafficHttpStatisticDao.getDomainByTopicList(); + if(topicList!=null&&topicList.size()>0){ + for (Map m : topicList) { + List domainList= new ArrayList(); + if(m!=null&&m.get("topicId")!=null){ + domainList = trafficHttpStatisticDao.getDomainByTopicId(m.get("topicId")); + m.put("domainData", domainList); + } + } + } + return topicList; + } } diff --git a/src/main/java/com/nis/web/service/restful/MaatTestServiceimpl.java b/src/main/java/com/nis/web/service/restful/MaatTestServiceimpl.java index dc867da..929c51c 100644 --- a/src/main/java/com/nis/web/service/restful/MaatTestServiceimpl.java +++ b/src/main/java/com/nis/web/service/restful/MaatTestServiceimpl.java @@ -44,6 +44,7 @@ import net.sf.json.JSONObject; @Service() public class MaatTestServiceimpl { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + private static final int TAPREDISDB = Configurations.getIntProperty("tapRedisDb", 5); public void getMaatKeys(List configCompileList) throws Exception { if (configCompileList != null && configCompileList.size() > 0) { @@ -51,9 +52,16 @@ public class MaatTestServiceimpl { Integer service = configCompile.getService(); MaatXmlConfig maatXmlConfig = ReadMaatXmlUtil.getMaatConfigByService(service); List redisDBList = ServiceAndRDBIndexReal.getRedisDBByService(service); + if (ServiceAndRDBIndexReal.isAddASU(service)) { + if (!redisDBList.contains(TAPREDISDB)) { + throw new RuntimeException("业务类型:" + service + ",需要向阀门" + TAPREDISDB + "号库分发,但是当前只往" + + redisDBList + "库下发,请检查阀门编号或者当前业务对应的配置文件是否正确"); + } + } for (Integer redisDB : redisDBList) { getConfigByKey(redisDB, service, configCompile, maatXmlConfig); } + } } @@ -152,6 +160,33 @@ public class MaatTestServiceimpl { if (valStr != null && !valStr.trim().equals("")) { if (!StringUtils.isEmpty(valStr) && valStr.trim().startsWith("[")) { valStr = valStr.trim().replace("[", "").replace("]", ""); + if (TAPREDISDB == redisDb && type != 10 && type != 11 + && valStr.toLowerCase().equals("op_time")) {// 域配置并且是op_time时在op_time前面添加如下内容 + Map map2 = ServiceAndRDBIndexReal.getMaatToValveMap().get(service); + if (map2 != null && map2.size() > 0) { + String[] arr = null; + if (type == 12) {// IP类 + arr = map2.get("ipRegion"); + } else if (type == 13) {// 数值类 + arr = map2.get("numRegion"); + } else if (type == 14) {// 字符串类 + arr = map2.get("strRegion"); + } else if (type == 15) {// 增强字符串类 + arr = map2.get("strStrRegion"); + } else if (type == 16) {// 文件摘要类 + arr = map2.get("fileDigestRegion"); + } else if (type == 17) {// 文件摘要类 + arr = map2.get("fileLikeRegion"); + } else if (type == 18) {// 文件摘要类 + arr = map2.get("ipClientRange"); + } + if (arr != null && arr.length > 0) { + for (String str : arr) { + valList.add(str.toLowerCase()); + } + } + } + } valList.add(valStr); } else { valList.add(valStr); @@ -159,8 +194,8 @@ public class MaatTestServiceimpl { } } String val = JedisUtils.get(key, redisDb); - FileUtils.addStrToFile("\t\t入库的key=" + key + "\n", Configurations.getStringProperty("maatTestLogPath", ""), - true); + FileUtils.addStrToFile("\t\t入库的key=" + key + "\n", + Configurations.getStringProperty("maatTestLogPath", ""), true); FileUtils.addStrToFile("\t\t入库的val=" + val, Configurations.getStringProperty("maatTestLogPath", ""), true); FileUtils.addStrToFile("\t\t表达式" + maatXmlExpr.getValueExpression() + "\n", @@ -171,11 +206,45 @@ public class MaatTestServiceimpl { } } if (sysoLog(valArr, valList, obj, redisDb, key, configCompile, service)) { + if (TAPREDISDB == redisDb && type != 10 && type != 11) {// 域配置并且是op_time时在op_time前面添加如下内容 + Map map2 = ServiceAndRDBIndexReal.getMaatToValveMap().get(service); + if (map2 != null && map2.size() > 0) { + String[] arr = null; + if (type == 12) {// IP类 + arr = map2.get("ipRegion"); + } else if (type == 13) {// 数值类 + arr = map2.get("numRegion"); + } else if (type == 14) {// 字符串类 + arr = map2.get("strRegion"); + } else if (type == 15) {// 增强字符串类 + arr = map2.get("strStrRegion"); + } else if (type == 16) {// 文件摘要类 + arr = map2.get("fileDigestRegion"); + } else if (type == 17) {// 文件摘要类 + arr = map2.get("fileLikeRegion"); + } else if (type == 18) {// 文件摘要类 + arr = map2.get("ipClientRange"); + } + if (arr != null && arr.length > 0) { + StringBuffer sb = new StringBuffer(); + for (String str : arr) { + sb.append(str.toLowerCase() + ","); + } + FileUtils.addStrToFile( + "\t" + sdf.format(new Date()) + " 编译配置id为" + compileId + "的配置中,在" + redisDb + + "号redis库中key=" + key + "的值与实际插入的值相符(该库是阀门库并额外在optime字段前添加了两个字段" + + sb.substring(0, sb.length() - 1) + ")\n", + Configurations.getStringProperty("maatTestLogPath", ""), true); + return; + } + } + } FileUtils .addStrToFile( "\t" + sdf.format(new Date()) + " 编译配置id为" + compileId + "的配置中,在" + redisDb + "号redis库中key=" + key + "的值与实际插入的值相符\n", Configurations.getStringProperty("maatTestLogPath", ""), true); + } } @@ -433,8 +502,8 @@ public class MaatTestServiceimpl { } } key = keyBF.toString().toUpperCase(); - String[] valSplit = maatXmlExpr.getValueExpression().replace("; 0;\\n", "").replace("; ", "\\t").replace("\\n", "").replace("\\t", "") - .split(";"); + String[] valSplit = maatXmlExpr.getValueExpression().replace("; 0;\\n", "").replace("; ", "\\t") + .replace("\\n", "").replace("\\t", "").split(";"); for (String valStr : valSplit) { if (valStr != null && !valStr.trim().equals("")) { if (!StringUtils.isEmpty(valStr) && valStr.trim().startsWith("[")) { @@ -446,14 +515,13 @@ public class MaatTestServiceimpl { } } String val = JedisUtils.get(key, redisDb).replace(" ", "\t"); - + FileUtils.addStrToFile("\t\t入库的key=" + key + "\n", Configurations.getStringProperty("maatTestLogPath", ""), true); - FileUtils.addStrToFile("\t\t入库的val=" + val, Configurations.getStringProperty("maatTestLogPath", ""), - true); + FileUtils.addStrToFile("\t\t入库的val=" + val, Configurations.getStringProperty("maatTestLogPath", ""), true); FileUtils.addStrToFile("\t\t表达式" + maatXmlExpr.getValueExpression() + "\n", Configurations.getStringProperty("maatTestLogPath", ""), true); - + valArr = val.split("\\t"); break; } diff --git a/src/main/java/com/nis/web/service/restful/TrafficNmsServerStatisticService.java b/src/main/java/com/nis/web/service/restful/TrafficNmsServerStatisticService.java index 4fe2b2c..93ca9b8 100644 --- a/src/main/java/com/nis/web/service/restful/TrafficNmsServerStatisticService.java +++ b/src/main/java/com/nis/web/service/restful/TrafficNmsServerStatisticService.java @@ -4,8 +4,8 @@ import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; -import com.nis.domain.restful.AbnormalMachine; import com.nis.domain.restful.TrafficNmsServerStatistic; import com.nis.web.dao.TrafficNmsServerStatisticDao; @@ -14,16 +14,13 @@ public class TrafficNmsServerStatisticService { @Autowired TrafficNmsServerStatisticDao trafficNmsServerStatisticDao; - public TrafficNmsServerStatistic saveNmsServer(TrafficNmsServerStatistic trafficNmsServerStatistic) { - trafficNmsServerStatisticDao.insert(trafficNmsServerStatistic); - return trafficNmsServerStatistic; - } - - public void saveAbnormalMachine(Integer id, List abnormalMachineList) { - trafficNmsServerStatisticDao.insertAbnormalMachine(id, abnormalMachineList); - } - - public void delNmsServer(TrafficNmsServerStatistic trafficNmsServerStatistic) { - trafficNmsServerStatisticDao.delete(trafficNmsServerStatistic); + @Transactional + public void saveNmsInfo(List trafficNmsServerList) { + for (TrafficNmsServerStatistic trafficNmsServerStatistic : trafficNmsServerList) { + trafficNmsServerStatisticDao.insert(trafficNmsServerStatistic); + trafficNmsServerStatisticDao.insertAbnormalMachine(trafficNmsServerStatistic.getId(), + trafficNmsServerStatistic.getAbnormalMachineList()); + } + Integer.parseInt(null); } } diff --git a/src/main/resources/applicationConfig-rule.properties b/src/main/resources/applicationConfig-rule.properties index 873fd60..4a9ce06 100644 --- a/src/main/resources/applicationConfig-rule.properties +++ b/src/main/resources/applicationConfig-rule.properties @@ -176,19 +176,19 @@ service=1:128;2:128;16:16;17:16;18:16;19:16;20:16;21:16;22:16;23:16;24:16;26:16; 768=10:IR_POLICY_COMPILE;11:IR_POLICY_GROUP;12:IR_POLICY_IP;14:NTC_SUBSCRIBE_ID;18:NTC_IP_RANGE #0x400 APP HTTP特征发现 -1024=10:APP_COMPILE;11:APP_GROUP;14:APP_SUBSCRIBE_ID;15:APP_HTTP;18:NTC_IP_RANGE -#0x401 APP载荷特征表 -1025=10:APP_COMPILE;11:APP_GROUP;12:APP_IP_RANGE;14:APP_SUBSCRIBE_ID;15:APP_PAYLOAD;18:NTC_IP_RANGE -#0x402 APP DOMAIN特征发现 -1026=10:APP_COMPILE;11:APP_GROUP;14:APP_DOMAIN,APP_SUBSCRIBE_ID;18:NTC_IP_RANGE -#0x403 APP DNS特征匹配 -1027=10:APP_COMPILE;11:APP_GROUP;14:APP_SUBSCRIBE_ID;15:APP_DNS;18:NTC_IP_RANGE -#0x404 APP IP特征 -1028=10:APP_COMPILE;11:APP_GROUP;12:APP_STATIC_SEV_IP;14:APP_SUBSCRIBE_ID;18:NTC_IP_RANGE -#0x405 APP SSL特征 -1029=10:APP_COMPILE;11:APP_GROUP;12:APP_IP_RANGE;14:APP_SUBSCRIBE_ID;15:APP_SSL;18:NTC_IP_RANGE -#0x406 APP多用途标签 -1030=10:APP_COMPILE;11:APP_GROUP;14:APP_SUBSCRIBE_ID;15:APP_DK_GL;18:NTC_IP_RANGE +1024=10:APP_COMPILE;11:APP_GROUP;15:APP_HTTP;12:APP_IP_RANGE +#0x401 APP载荷特征表 +1025=10:APP_COMPILE;11:APP_GROUP;12:APP_IP_RANGE;15:APP_PAYLOAD +#0x402 APP DOMAIN特征发现 +1026=10:APP_COMPILE;11:APP_GROUP;14:APP_DOMAIN +#0x403 APP DNS特征匹配 +1027=10:APP_COMPILE;11:APP_GROUP;15:APP_DNS +#0x404 APP IP特征 +1028=10:APP_COMPILE;11:APP_GROUP;12:APP_STATIC_SEV_IP +#0x405 APP SSL特征 +1029=10:APP_COMPILE;11:APP_GROUP;12:APP_IP_RANGE;15:APP_SSL +#0x406 APP多用途标签 +1030=10:APP_COMPILE;11:APP_GROUP;14:APP_DK_GL #0x410 APP丢弃 1040=10:APP_COMPILE;11:APP_GROUP;12:NTC_UNIVERSAL_IP;13:NTC_UNIVERSAL_PROTO_TYPE;14:APP_POLICY,APP_SUBSCRIBE_ID;18:NTC_IP_RANGE @@ -296,7 +296,8 @@ unMaatService=3:32;4:96;5:32;25:32;28:32;64;65;261:16;262:16;263:16;264:16;265:1 ########## serviceDBIndex=1:2,3,4,5;2:2,3,4,5;16:2;17:2;18:2;19:2;20:2;21:2;22:2;23:2;24:2;26:2;27:2;30:2;31:2;32:2;33:2,5;34:2;35:2;36:2;37:2;128:2;129:2;130:2;131:2;132:2;133:2;134:2;135:2;136:2;137:2;138:2;139:2;140:2;142:2;143:2;144:2;145:2;146:2;147:2;148:2;149:2;256:2;257:2;258:2;259:2;260:2;267:2;271:2;272:2;384:2;385:2;386:2;387:2;388:2;395:2;512:4,5;513:4,2,5;514:4;515:4;517:4;520:4;521:4;528:4;544:4;560:4;576:4;592:4;608:4;750:4;768:4;1024:2;1025:2;1026:2,5;1027:2;1028:2,5;1029:2;1030:2;1040:2;1041:2;1042:2;1152:2;3:5;4:5;5:2;25:5;28:5;64:2;65:2;261:3;262:3;263:3;264:3;265:2;266:2;268:3;269:3;270:3;389:3;390:3;391:3;392:3;393:2;394:2;396:3;397:3;398:3;832:2,4,5; - +##阀门配置在redisdb的序号 +tapRedisDb=5 ##maat配置入阀门需要将编译中的部分参数写到域配置中,目前最多包含ACTION,SERVICE,USER_REGION三个属性 ##业务ID:域类型1|域类型2@属性1&属性2&属性3 ##域类型:IP域 =ipRegion 字符串域=strRegion 增强字符串域=strStrRegion 数值域=numRegion diff --git a/src/main/resources/applicationConfig-rule.test.properties b/src/main/resources/applicationConfig-rule.test.properties index bbd62c2..3051797 100644 --- a/src/main/resources/applicationConfig-rule.test.properties +++ b/src/main/resources/applicationConfig-rule.test.properties @@ -176,19 +176,19 @@ service=1:128;2:128;16:16;17:16;18:16;19:16;20:16;21:16;22:16;23:16;24:16;26:16; 768=10:IR_POLICY_COMPILE;11:IR_POLICY_GROUP;12:IR_POLICY_IP;14:NTC_SUBSCRIBE_ID;18:NTC_IP_RANGE #0x400 APP HTTP特征发现 -1024=10:APP_COMPILE;11:APP_GROUP;14:APP_SUBSCRIBE_ID;15:APP_HTTP;18:NTC_IP_RANGE -#0x401 APP载荷特征表 -1025=10:APP_COMPILE;11:APP_GROUP;12:APP_IP_RANGE;14:APP_SUBSCRIBE_ID;15:APP_PAYLOAD;18:NTC_IP_RANGE -#0x402 APP DOMAIN特征发现 -1026=10:APP_COMPILE;11:APP_GROUP;14:APP_DOMAIN,APP_SUBSCRIBE_ID;18:NTC_IP_RANGE -#0x403 APP DNS特征匹配 -1027=10:APP_COMPILE;11:APP_GROUP;14:APP_SUBSCRIBE_ID;15:APP_DNS;18:NTC_IP_RANGE -#0x404 APP IP特征 -1028=10:APP_COMPILE;11:APP_GROUP;12:APP_STATIC_SEV_IP;14:APP_SUBSCRIBE_ID;18:NTC_IP_RANGE -#0x405 APP SSL特征 -1029=10:APP_COMPILE;11:APP_GROUP;12:APP_IP_RANGE;14:APP_SUBSCRIBE_ID;15:APP_SSL;18:NTC_IP_RANGE -#0x406 APP多用途标签 -1030=10:APP_COMPILE;11:APP_GROUP;14:APP_SUBSCRIBE_ID;15:APP_DK_GL;18:NTC_IP_RANGE +1024=10:APP_COMPILE;11:APP_GROUP;15:APP_HTTP;12:APP_IP_RANGE +#0x401 APP载荷特征表 +1025=10:APP_COMPILE;11:APP_GROUP;12:APP_IP_RANGE;15:APP_PAYLOAD +#0x402 APP DOMAIN特征发现 +1026=10:APP_COMPILE;11:APP_GROUP;14:APP_DOMAIN +#0x403 APP DNS特征匹配 +1027=10:APP_COMPILE;11:APP_GROUP;15:APP_DNS +#0x404 APP IP特征 +1028=10:APP_COMPILE;11:APP_GROUP;12:APP_STATIC_SEV_IP +#0x405 APP SSL特征 +1029=10:APP_COMPILE;11:APP_GROUP;12:APP_IP_RANGE;15:APP_SSL +#0x406 APP多用途标签 +1030=10:APP_COMPILE;11:APP_GROUP;14:APP_DK_GL #0x410 APP丢弃 1040=10:APP_COMPILE;11:APP_GROUP;12:NTC_UNIVERSAL_IP;13:NTC_UNIVERSAL_PROTO_TYPE;14:APP_POLICY,APP_SUBSCRIBE_ID;18:NTC_IP_RANGE @@ -281,7 +281,8 @@ unMaatService=3:32;4:96;5:32;25:32;28:32;64;65;261:16;262:16;263:16;264:16;265:1 ##各业务类型对应的redisdb,业务类型:redisdb,多个业务以“;”分隔,多个db以“,”数量不能超过6个 #系统简称对应的redisDBIndex: NTC(12-55):2 MM(256-511):3 PXY(512-767):4 IR(768-1023):5 DK(10241279):6 阀门:7 serviceDBIndex=1:2,3,4,6,7;2:2,3,4,6,7;16:2;17:2;18:2;19:2;20:2;21:2;22:2;23:2;24:2;26:2;27:2;30:2;31:2;32:2;33:2,6,7;34:2;35:2,6;36:2,6;37:2;128:2;129:2;130:2;131:2;132:2;133:2;134:2;135:2;136:2;137:2;138:2;139:2;140:2;141:2;142:2;143:2;144:2;145:2,6;146:2;147:2,6;148:2,6;149:2;256:3;257:3;258:3;259:3;260:3;267:3;384:3;385:3;386:3;387:3;388:3;395:3;512:4,7;513:4,2,7;514:4;515:4;517:4;520:4;521:4;528:4;544:4;560:4;576:4;592:4;608:4;750:4;768:5;1024:2,6,7;1025:2,6,7;1026:2,6,7;1027:2,6,7;1028:2,6,7;1029:2,6,7;1030:2,6,7;1031:2,6,7;1040:2,6,7;1041:2,6,7;1042:2,6,7;1152:2,6;3:7;4:7;5:2;25:7;28:7;64:2;65:2;261:8,12;262:9,12;263:10,12;264:11,12;265:3;266:3;268:12;269:12;270:12;389:8,12;390:9,12;391:10,12;392:11,12;393:3;394:3;396:12;397:12;398:12;832:2,4,5,7; - +##阀门配置在redisdb的序号 +tapRedisDb=7 ##maat配置入阀门需要将编译中的部分参数写到域配置中,目前最多包含ACTION,SERVICE,USER_REGION三个属性 ##业务ID:域类型1|域类型2@属性1&属性2&属性3 ##域类型:IP域 =ipRegion 字符串域=strRegion 增强字符串域=strStrRegion 数值域=numRegion @@ -301,6 +302,7 @@ serviceDBIndex=1:2,3,4,6,7;2:2,3,4,6,7;16:2;17:2;18:2;19:2;20:2;21:2;22:2;23:2;2 maat2Valve=33:strRegion@ACTION&SERVICE&USER_REGION;35:strRegion@ACTION&SERVICE&USER_REGION;36:strRegion@ACTION&SERVICE&USER_REGION;145:strRegion@ACTION&SERVICE&USER_REGION;147:strRegion@ACTION&SERVICE&USER_REGION;148:strRegion@ACTION&SERVICE&USER_REGION;512:ipRegion@ACTION&SERVICE;513:strRegion@ACTION&SERVICE&USER_REGION;1024:strRegion|strStrRegion@USER_REGION;1026:strRegion|strStrRegion@USER_REGION;1027:strRegion|strStrRegion@USER_REGION;1028:ipRegion@USER_REGION;1029:strStrRegion@USER_REGION;1030:numRegion@USER_REGION;1031:strStrRegion@USER_REGION;1040:strRegion@ACTION&SERVICE&USER_REGION;1041:strRegion@ACTION&SERVICE&USER_REGION;1042:strRegion@ACTION&SERVICE&USER_REGION;1056:strRegion@ACTION&SERVICE&USER_REGION;1057:ipRegion@ACTION&SERVICE&USER_REGION;1058:strRegion@ACTION&SERVICE&USER_REGION;1059:strRegion@ACTION&SERVICE&USER_REGION;1060:strRegion@ACTION&SERVICE&USER_REGION + ##记录哪些service可以被分组复用(只有maat类配置可以被分组复用) #业务ID:域类型1@表名,表名|域类型2@表名;业务ID:域类型1@表名,表名|域类型2@表名 ##域类型:IP域 =ipRegion 字符串域=strRegion 数值域=numRegion diff --git a/src/main/resources/applicationConfig-rule.ysp.properties b/src/main/resources/applicationConfig-rule.ysp.properties index 26bd007..0bd89cd 100644 --- a/src/main/resources/applicationConfig-rule.ysp.properties +++ b/src/main/resources/applicationConfig-rule.ysp.properties @@ -176,19 +176,19 @@ service=1:128;2:128;16:16;17:16;18:16;19:16;20:16;21:16;22:16;23:16;24:16;26:16; 768=10:IR_POLICY_COMPILE;11:IR_POLICY_GROUP;12:IR_POLICY_IP;14:NTC_SUBSCRIBE_ID;18:NTC_IP_RANGE #0x400 APP HTTP特征发现 -1024=10:APP_COMPILE;11:APP_GROUP;14:APP_SUBSCRIBE_ID;15:APP_HTTP;18:NTC_IP_RANGE -#0x401 APP载荷特征表 -1025=10:APP_COMPILE;11:APP_GROUP;12:APP_IP_RANGE;14:APP_SUBSCRIBE_ID;15:APP_PAYLOAD;18:NTC_IP_RANGE -#0x402 APP DOMAIN特征发现 -1026=10:APP_COMPILE;11:APP_GROUP;14:APP_DOMAIN,APP_SUBSCRIBE_ID;18:NTC_IP_RANGE -#0x403 APP DNS特征匹配 -1027=10:APP_COMPILE;11:APP_GROUP;14:APP_SUBSCRIBE_ID;15:APP_DNS;18:NTC_IP_RANGE -#0x404 APP IP特征 -1028=10:APP_COMPILE;11:APP_GROUP;12:APP_STATIC_SEV_IP;14:APP_SUBSCRIBE_ID;18:NTC_IP_RANGE -#0x405 APP SSL特征 -1029=10:APP_COMPILE;11:APP_GROUP;12:APP_IP_RANGE;14:APP_SUBSCRIBE_ID;15:APP_SSL;18:NTC_IP_RANGE -#0x406 APP多用途标签 -1030=10:APP_COMPILE;11:APP_GROUP;14:APP_SUBSCRIBE_ID;15:APP_DK_GL;18:NTC_IP_RANGE +1024=10:APP_COMPILE;11:APP_GROUP;15:APP_HTTP;12:APP_IP_RANGE +#0x401 APP载荷特征表 +1025=10:APP_COMPILE;11:APP_GROUP;12:APP_IP_RANGE;15:APP_PAYLOAD +#0x402 APP DOMAIN特征发现 +1026=10:APP_COMPILE;11:APP_GROUP;14:APP_DOMAIN +#0x403 APP DNS特征匹配 +1027=10:APP_COMPILE;11:APP_GROUP;15:APP_DNS +#0x404 APP IP特征 +1028=10:APP_COMPILE;11:APP_GROUP;12:APP_STATIC_SEV_IP +#0x405 APP SSL特征 +1029=10:APP_COMPILE;11:APP_GROUP;12:APP_IP_RANGE;15:APP_SSL +#0x406 APP多用途标签 +1030=10:APP_COMPILE;11:APP_GROUP;14:APP_DK_GL #0x410 APP丢弃 1040=10:APP_COMPILE;11:APP_GROUP;12:NTC_UNIVERSAL_IP;13:NTC_UNIVERSAL_PROTO_TYPE;14:APP_POLICY,APP_SUBSCRIBE_ID;18:NTC_IP_RANGE @@ -296,7 +296,8 @@ unMaatService=3:32;4:96;5:32;25:32;28:32;64;65;261:16;262:16;263:16;264:16;265:1 ########## serviceDBIndex=1:2,3,4,5;2:2,3,4,5;16:2;17:2;18:2;19:2;20:2;21:2;22:2;23:2;24:2;26:2;27:2;30:2;31:2;32:2;33:2,5;34:2;35:2;36:2;37:2;128:2;129:2;130:2;131:2;132:2;133:2;134:2;135:2;136:2;137:2;138:2;139:2;140:2;142:2;143:2;144:2;145:2;146:2;147:2;148:2;149:2;256:2;257:2;258:2;259:2;260:2;267:2;271:2;272:2;384:2;385:2;386:2;387:2;388:2;395:2;512:4,5;513:4,2,5;514:4;515:4;517:4;520:4;521:4;528:4;544:4;560:4;576:4;592:4;608:4;750:4;768:4;1024:2;1025:2;1026:2,5;1027:2;1028:2,5;1029:2;1030:2;1040:2;1041:2;1042:2;1152:2;3:5;4:5;5:2;25:5;28:5;64:2;65:2;261:8;262:9;263:10;264:11;265:2;266:2;268:3;269:3;270:3;389:8;390:9;391:10;392:11;393:2;394:2;396:3;397:3;398:3;832:2,4,5; - +##阀门配置在redisdb的序号 +tapRedisDb=5 ##maat配置入阀门需要将编译中的部分参数写到域配置中,目前最多包含ACTION,SERVICE,USER_REGION三个属性 ##业务ID:域类型1|域类型2@属性1&属性2&属性3 ##域类型:IP域 =ipRegion 字符串域=strRegion 增强字符串域=strStrRegion 数值域=numRegion diff --git a/src/main/resources/fastdfs-client.properties b/src/main/resources/fastdfs-client.properties index 895bb0c..86c5bfb 100644 --- a/src/main/resources/fastdfs-client.properties +++ b/src/main/resources/fastdfs-client.properties @@ -10,11 +10,11 @@ fastdfs.http_secret_key = FastDFS1234567890 fastdfs.http_tracker_http_port = 80 #元辰鑫内网 -#fastdfs.tracker_servers = 10.0.6.249:22122 -#fastDfsHttpAddr= 10.0.6.249 +fastdfs.tracker_servers = 10.0.6.249:22122 +fastDfsHttpAddr= 10.0.6.249 #元辰鑫外网 -fastdfs.tracker_servers = 192.168.10.205:22122 -fastDfsHttpAddr=192.168.10.205 +#fastdfs.tracker_servers=192.168.10.205:22122 +#fastDfsHttpAddr=192.168.10.205 #亦庄演示环境 #fastdfs.tracker_servers = 10.3.34.1:22122 #fastDfsHttpAddr = 10.3.34.1 \ No newline at end of file diff --git a/src/main/resources/fdfs_client.conf b/src/main/resources/fdfs_client.conf index 9069920..00b5f6a 100644 --- a/src/main/resources/fdfs_client.conf +++ b/src/main/resources/fdfs_client.conf @@ -7,8 +7,8 @@ http.secret_key = FastDFS1234567890 #元辰鑫内网 -#tracker_server = 10.0.6.249:22122 +tracker_server=10.0.6.249:22122 #元辰鑫外网 -tracker_server = 192.168.10.205:22122 +#tracker_server=192.168.10.205:22122 #亦庄演示环境 -#tracker_server = 10.3.34.1:22122 +#tracker_server=10.3.34.1:22122 diff --git a/src/main/resources/jdbc.properties b/src/main/resources/jdbc.properties index 3a29643..30a988d 100644 --- a/src/main/resources/jdbc.properties +++ b/src/main/resources/jdbc.properties @@ -6,8 +6,6 @@ jdbc.log.url=jdbc:mysql://10.0.6.249:3306/galaxy?useUnicode=true&characterEncodi #jdbc.log.url=jdbc:mysql://192.168.11.242:3306/galaxy?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull #元辰鑫外网 #jdbc.log.url=jdbc:mysql://192.168.10.204:3306/galaxy?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull -#亦庄测试环境 -#jdbc.log.url=jdbc:mysql://192.168.10.212:3306/galaxy?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull #亦庄演示环境 #jdbc.log.url=jdbc:mysql://10.3.48.5:3306/galaxy?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull jdbc.log.username=root @@ -39,7 +37,8 @@ bonecp.statementsCacheSize=100 ############################################################################################################################################ #数据中心hive接口配置 ############################################################################################################################################ - +#数据中心hive日志库数据库名称,程序中每次查询时使用的数据库名称 use dbName +jdbc.hive.DBName=maat #A版日志库 jdbc.hive.driver=org.apache.hive.jdbc.HiveDriver #元辰鑫内网 @@ -48,10 +47,6 @@ jdbc.hive.url=jdbc:hive2://10.0.6.202:10000/maat #jdbc.hive.url=jdbc:hive2://192.168.11.243:2181,192.168.10.76:2181,192.168.10.77:2181/maat;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2 #元辰鑫外网 #jdbc.hive.url=jdbc:hive2://192.168.10.22:10000/maat -#亦庄测试环境 -#jdbc.hive.url=jdbc:hive2://192.168.10.216:10000/maat -#亦庄测试环境高可用集群连接,注意使用此种方法需要配置hosts,主机名与ip的对应关系 -#jdbc.hive.url=jdbc:hive2://192.168.10.216:2181,192.168.10.217:2181,192.168.10.218:2181/maat;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2 #亦庄演示环境高可用集群连接,注意使用此种方法需要配置hosts,主机名与ip的对应关系 #jdbc.hive.url=jdbc:hive2://10.3.48.2:2181,10.3.48.3:2181,10.3.48.4:2181/maat;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2 jdbc.hive.username=xa_z2_mesa @@ -72,11 +67,15 @@ bonecp.hive.statementsCacheSize=100 #################日志查询clickhouse数据源信息############# +#日志查询是否使用clickhouse,否则使用hive +isUseClickHouse=false +##clickhouse数据库名称 +jdbc.clickHouse.DBName=k18_ods jdbc.clickhouse.driver=ru.yandex.clickhouse.ClickHouseDriver #域名测试环境 -jdbc.clickhouse.url=jdbc:clickhouse://clickhouse.baifendian.com:80/k18_ods +#jdbc.clickhouse.url=jdbc:clickhouse://clickhouse.baifendian.com:80/k18_ods #亦庄演示环境 -#jdbc.clickhouse.url=jdbc:clickhouse://10.3.45.5:8123/k18_ods +jdbc.clickhouse.url=jdbc:clickhouse://10.3.45.5:8123/k18_ods jdbc.clickhouse.username= jdbc.clickhouse.key= jdbc.clickhouse.password= @@ -153,7 +152,7 @@ redis.maxTotal=250 redis.maxWaitMillis=100000 redis.testOnBorrow=true redis.testOnReturn=true -#客户端超时时间单位是毫秒 +#客户端超时时间单位是毫秒 redis.timeout=100000 #用于 redis.clients.jedis.JedisCluster.JedisCluster(Set, int, int, GenericObjectPoolConfig) 第三个参数 maxRedirections #默认值是5 diff --git a/src/main/resources/nis.properties b/src/main/resources/nis.properties index 94f9fae..426350c 100644 --- a/src/main/resources/nis.properties +++ b/src/main/resources/nis.properties @@ -137,20 +137,12 @@ isSelectCluster=true #用户查询日志超过多少小时去数据中心查询 dataCenterTime=48 -#是否开启基础验证 -baseValidate=true - -#是否开启业务验证 -serviceValidate=true - #\u65E5\u5FD7\u5B58\u50A8\u672C\u5730\u65F6\u95F4(\u5355\u4F4D\u5C0F\u65F6) logLocalTime=48 #\u5B9E\u65F6\u7EDF\u8BA1\u9ED8\u8BA4\u67E5\u8BE2\u672C\u5730\u4E00\u4E2A\u5C0F\u65F6\u7684\u6570\u636E(\u5355\u4F4D\uFF1A\u5C0F\u65F6) reportLocalTime=1 -#实时报表统计时间,单位:分钟 -pzReportTime=5 #\u795E\u901A\u6570\u636E\u5E93\u6700\u65E9\u65E5\u5FD7\u65F6\u95F4(A\u7248\u6BEB\u79D2) #2017-08-13 10:07:25 @@ -168,24 +160,26 @@ httpUrl=http://127.0.0.1:8080/galaxy/service/cfg/v1/configSources #use elasticsearch or not# isUseES=false +####galaxy 使用######################################################################################################################################## +#是否开启基础验证 +baseValidate=true +#是否开启业务验证 +serviceValidate=true -#日志查询是否使用clickhouse,否则使用hive -isUseClickHouse=false -##clickhouse数据库名称 -jdbc.clickHouse.DBName=k18_ods - - - -#数据中心hive日志库数据库名称,程序中每次查询时使用的数据库名称 use dbName -jdbc.hive.DBName=maat maxPageSize=100000 #是否开启Debug模式 isDebug=true + + +#实时报表统计时间,单位:分钟 +pzReportTime=5 + + #文件摘要获取工具目录 digest.gen.tool.path=maat-redis/digest_gen @@ -196,8 +190,6 @@ maxRedisDBIndex=16 idRelaRedisDBIndex=15 #存储分组复用域配置的redisdb tmpStorageReuseRegionDB=15 -##阀门配置在redisdb的序号 -tapRedisDb=7 ##实时统计(编译配置)数据表达式 redisStatisticsReal=[COMPILE_ID];\t;[SERVICE];\t;[ACTION];\t;[CONT_TYPE];\t;[ATTR_TYPE];\t;[CONT_LABEL];\t;[TASK_ID];\t;[AFFAIR_ID];\t;[DO_BLACKLIST];\t;[DO_LOG];\t;[EFFECTIVE_RANGE];\t;[START_TIME];\t;[END_TIME];\t;[USER_REGION];\t;[IS_VALID];\t;[GROUP_NUM];\t;[FATHER_CFG_ID];\t;[OP_TIME] @@ -205,6 +197,7 @@ redisStatisticsReal=[COMPILE_ID];\t;[SERVICE];\t;[ACTION];\t;[CONT_TYPE];\t;[ATT redisStatisticsRealDBIndex=14 #maat测试程序输出日志的文件目录 maatTestLogPath=c:/maat/mmat.log +#maatTestLogPath=/home/maat/mmat.log #样例文件存放目录,{tableType}和{fileName}会替换成具体内容 mmSampleDstPath=/home/mesasoft/{tableType}/full/{fileName}