From 2b7f8d5bbc129741f2ee61d0d1d7beb6389aa993 Mon Sep 17 00:00:00 2001 From: wangwenrui Date: Wed, 30 Dec 2020 19:11:58 +0800 Subject: EAL4:删除无用代码 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/nis/NzConfagentApplication.java | 46 ++-- .../java/com/nis/controller/HealthyController.java | 38 +-- .../java/com/nis/controller/MetricsController.java | 48 ++-- .../java/com/nis/controller/TrafficController.java | 1 - src/main/java/com/nis/dao/AlertRuleDao.java | 29 ++- src/main/java/com/nis/dao/EndpointDao.java | 35 ++- src/main/java/com/nis/dao/PromserverDao.java | 47 ++-- src/main/java/com/nis/dao/SysConfigDao.java | 29 ++- src/main/java/com/nis/entity/AlertRule.java | 176 +++++-------- src/main/java/com/nis/entity/ConfagentMetrics.java | 125 +++++----- src/main/java/com/nis/entity/TrapMessage.java | 8 +- src/main/java/com/nis/job/ConfagentJob.java | 13 +- src/main/java/com/nis/job/ConfagentJobConfig.java | 104 ++++---- src/main/java/com/nis/job/ConfagentUptimeJob.java | 37 ++- src/main/java/com/nis/server/SNMPTrapServer.java | 142 ++--------- .../java/com/nis/service/AlertRuleService.java | 26 +- src/main/java/com/nis/service/EndpointService.java | 49 ++-- .../java/com/nis/service/PromserverService.java | 68 ++--- .../java/com/nis/service/SysConfigService.java | 23 +- .../com/nis/service/impl/AlertRuleServiceImpl.java | 63 +++-- .../com/nis/service/impl/ConfEventServiceImpl.java | 14 +- .../com/nis/service/impl/EndpointServiceImpl.java | 64 +++-- .../com/nis/service/impl/SysConfigServiceImpl.java | 53 ++-- .../com/nis/service/impl/TrafficServiceImpl.java | 1 - src/main/java/com/nis/util/CommonUtils.java | 277 +-------------------- src/main/java/com/nis/util/ConfagentConfig.java | 1 + src/main/java/com/nis/util/Constant.java | 6 +- src/main/java/com/nis/util/DateUtil.java | 2 +- src/main/java/com/nis/util/MybatisPlusConfig.java | 18 +- .../java/com/nis/util/PropertyPlaceholder.java | 58 ++--- src/main/java/com/nis/util/RedisConfig.java | 87 ++++--- src/main/java/com/nis/util/RuntimeUtil.java | 44 +--- src/main/java/com/nis/util/SnmpUtil.java | 2 - src/main/java/com/nis/util/SpringContextUtils.java | 16 -- src/main/java/com/nis/util/YamlUtil.java | 5 - 35 files changed, 614 insertions(+), 1141 deletions(-) diff --git a/src/main/java/com/nis/NzConfagentApplication.java b/src/main/java/com/nis/NzConfagentApplication.java index 0237694..4400bbf 100644 --- a/src/main/java/com/nis/NzConfagentApplication.java +++ b/src/main/java/com/nis/NzConfagentApplication.java @@ -1,23 +1,23 @@ -package com.nis; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.Bean; -import io.micrometer.core.instrument.MeterRegistry; - -@SpringBootApplication -public class NzConfagentApplication { - - public static void main(String[] args) { - - SpringApplication.run(NzConfagentApplication.class, args); - } - - @Bean - MeterRegistryCustomizer configurer(@Value("Confagent") String applicationName) { - return (registry) -> registry.config().commonTags("application", applicationName); - } - -} +package com.nis; + +import io.micrometer.core.instrument.MeterRegistry; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; + +@SpringBootApplication +public class NzConfagentApplication { + + public static void main(String[] args) { + + SpringApplication.run(NzConfagentApplication.class, args); + } + + @Bean + MeterRegistryCustomizer configurer(@Value("Confagent") String applicationName) { + return (registry) -> registry.config().commonTags("application", applicationName); + } + +} diff --git a/src/main/java/com/nis/controller/HealthyController.java b/src/main/java/com/nis/controller/HealthyController.java index d1bb69e..0642aae 100644 --- a/src/main/java/com/nis/controller/HealthyController.java +++ b/src/main/java/com/nis/controller/HealthyController.java @@ -1,19 +1,19 @@ -package com.nis.controller; - -import java.util.HashMap; -import java.util.Map; - -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -public class HealthyController{ - - @GetMapping("/healthy") - public Map healthy() { - HashMap map =new HashMap(); - map.put("msg", "success"); - map.put("code", 200); - return map; - } -} +package com.nis.controller; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.Map; + +@RestController +public class HealthyController{ + + @GetMapping("/healthy") + public Map healthy() { + HashMap map =new HashMap(); + map.put("msg", "success"); + map.put("code", 200); + return map; + } +} diff --git a/src/main/java/com/nis/controller/MetricsController.java b/src/main/java/com/nis/controller/MetricsController.java index fe17e73..add65ba 100644 --- a/src/main/java/com/nis/controller/MetricsController.java +++ b/src/main/java/com/nis/controller/MetricsController.java @@ -1,26 +1,24 @@ -package com.nis.controller; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.servlet.ModelAndView; - -import com.nis.entity.ConfagentMetrics; - -import io.micrometer.core.instrument.MeterRegistry; - -@RestController -public class MetricsController{ - @Autowired - private ConfagentMetrics confagentMetrics; - @Autowired - private MeterRegistry meterRegistry; - @RequestMapping(value = "/metrics", method= RequestMethod.GET) - public ModelAndView metrics() { - confagentMetrics.bindTo(meterRegistry); - ModelAndView mv = new ModelAndView(); - mv.setViewName("redirect:/prometheus"); - return mv; - } +package com.nis.controller; + +import com.nis.entity.ConfagentMetrics; +import io.micrometer.core.instrument.MeterRegistry; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; + +@RestController +public class MetricsController{ + @Autowired + private ConfagentMetrics confagentMetrics; + @Autowired + private MeterRegistry meterRegistry; + @RequestMapping(value = "/metrics", method= RequestMethod.GET) + public ModelAndView metrics() { + confagentMetrics.bindTo(meterRegistry); + ModelAndView mv = new ModelAndView(); + mv.setViewName("redirect:/prometheus"); + return mv; + } } \ No newline at end of file diff --git a/src/main/java/com/nis/controller/TrafficController.java b/src/main/java/com/nis/controller/TrafficController.java index 46ced5f..8529587 100644 --- a/src/main/java/com/nis/controller/TrafficController.java +++ b/src/main/java/com/nis/controller/TrafficController.java @@ -2,7 +2,6 @@ package com.nis.controller; import cn.hutool.log.Log; import com.nis.service.TrafficService; -import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/src/main/java/com/nis/dao/AlertRuleDao.java b/src/main/java/com/nis/dao/AlertRuleDao.java index 9accd18..d492ea6 100644 --- a/src/main/java/com/nis/dao/AlertRuleDao.java +++ b/src/main/java/com/nis/dao/AlertRuleDao.java @@ -1,15 +1,14 @@ -package com.nis.dao; - -import java.util.List; - -import org.apache.ibatis.annotations.Mapper; - -import com.nis.entity.AlertRule; - -@Mapper -public interface AlertRuleDao { - - List selectList(); - - List selectBulidInRule(); -} +package com.nis.dao; + +import com.nis.entity.AlertRule; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface AlertRuleDao { + + List selectList(); + + List selectBulidInRule(); +} diff --git a/src/main/java/com/nis/dao/EndpointDao.java b/src/main/java/com/nis/dao/EndpointDao.java index 7ef31d7..737b568 100644 --- a/src/main/java/com/nis/dao/EndpointDao.java +++ b/src/main/java/com/nis/dao/EndpointDao.java @@ -1,18 +1,17 @@ -package com.nis.dao; - -import java.util.List; - -import org.apache.ibatis.annotations.Mapper; - -import com.nis.entity.Endpoint; -import com.nis.entity.MetricsDto; - -@Mapper -public interface EndpointDao { - - List selectExporterInfos(Integer idcId); - - List selectEndpointMetrics(); - - List selectPromServerInfo(Integer promserverId); -} +package com.nis.dao; + +import com.nis.entity.Endpoint; +import com.nis.entity.MetricsDto; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface EndpointDao { + + List selectExporterInfos(Integer idcId); + + List selectEndpointMetrics(); + + List selectPromServerInfo(Integer promserverId); +} diff --git a/src/main/java/com/nis/dao/PromserverDao.java b/src/main/java/com/nis/dao/PromserverDao.java index 640dd4d..47b8769 100644 --- a/src/main/java/com/nis/dao/PromserverDao.java +++ b/src/main/java/com/nis/dao/PromserverDao.java @@ -1,24 +1,23 @@ -package com.nis.dao; - -import java.util.List; - -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import com.nis.entity.Promserver; - -@Mapper -public interface PromserverDao { - - List selectList(); - - Promserver selectRoleByIpAndPort(@Param("ip") String ip, @Param("port") String port); - - List selectSubInfo(@Param("promserver")Promserver promserver); - - List selectSubInfosByType(Integer type); - - List queryPromServerInfosAndIdcName(); - - List queryHealthyGlobalPrometheus(); -} +package com.nis.dao; + +import com.nis.entity.Promserver; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface PromserverDao { + + List selectList(); + + Promserver selectRoleByIpAndPort(@Param("ip") String ip, @Param("port") String port); + + List selectSubInfo(@Param("promserver")Promserver promserver); + + List selectSubInfosByType(Integer type); + + List queryPromServerInfosAndIdcName(); + + List queryHealthyGlobalPrometheus(); +} diff --git a/src/main/java/com/nis/dao/SysConfigDao.java b/src/main/java/com/nis/dao/SysConfigDao.java index 2a6dba7..696cabb 100644 --- a/src/main/java/com/nis/dao/SysConfigDao.java +++ b/src/main/java/com/nis/dao/SysConfigDao.java @@ -1,15 +1,14 @@ -package com.nis.dao; - -import java.util.List; - -import org.apache.ibatis.annotations.Mapper; - -import com.nis.entity.SysConfig; - -@Mapper -public interface SysConfigDao { - - List selectList(); - - String selectValueByParamkey(String paramKey); -} +package com.nis.dao; + +import com.nis.entity.SysConfig; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface SysConfigDao { + + List selectList(); + + String selectValueByParamkey(String paramKey); +} diff --git a/src/main/java/com/nis/entity/AlertRule.java b/src/main/java/com/nis/entity/AlertRule.java index c510f3e..6edbdcf 100644 --- a/src/main/java/com/nis/entity/AlertRule.java +++ b/src/main/java/com/nis/entity/AlertRule.java @@ -1,112 +1,64 @@ -package com.nis.entity; - -import lombok.Data; - -import java.io.Serializable; - -@Data -public class AlertRule implements Serializable{ - - private Integer id; - /** - * 告警名称 - */ - private String alertName; - /** - * 运算表达式 - */ - private String expr; - /** - * 比较符号 - */ - private String operator; - - /** - * 阈值 - */ - private Double threshold; - - /** - * 单位 - */ - private Integer unit; - /** - * 持续时间,单位s - */ - private Integer last; - /** - * 告警级别 - */ - private String severity; - /** - * 告警摘要 - */ - private String summary; - /** - * 告警详细描述 - */ - private String description; - /** - * 通知用户组 - */ - private Integer receiver; - - /** - * 是否为内置规则 - */ - private Boolean buildIn; - public Integer getId() { - return id; - } - public void setId(Integer id) { - this.id = id; - } - public String getAlertName() { - return alertName; - } - public void setAlertName(String alertName) { - this.alertName = alertName; - } - public String getExpr() { - return expr; - } - public void setExpr(String expr) { - this.expr = expr; - } - public Integer getLast() { - return last; - } - public void setLast(Integer last) { - this.last = last; - } - public String getSeverity() { - return severity; - } - public void setSeverity(String severity) { - this.severity = severity; - } - public String getSummary() { - return summary; - } - public void setSummary(String summary) { - this.summary = summary; - } - public String getDescription() { - return description; - } - public void setDescription(String description) { - this.description = description; - } - public Integer getReceiver() { - return receiver; - } - public void setReceiver(Integer receiver) { - this.receiver = receiver; - } - public Boolean getBuildIn() { - return buildIn; - } - public void setBuildIn(Boolean buildIn) { - this.buildIn = buildIn; - } -} +package com.nis.entity; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class AlertRule implements Serializable{ + + private Integer id; + /** + * 告警名称 + */ + private String alertName; + /** + * 运算表达式 + */ + private String expr; + /** + * 比较符号 + */ + private String operator; + + /** + * 阈值 + */ + private Double threshold; + + /** + * 单位 + */ + private Integer unit; + /** + * 持续时间,单位s + */ + private Integer last; + /** + * 告警级别 + */ + private String severity; + /** + * 告警摘要 + */ + private String summary; + /** + * 告警详细描述 + */ + private String description; + /** + * 通知用户组 + */ + private Integer receiver; + + /** + * 是否为内置规则 + */ + private Boolean buildIn; + public Integer getId() { + return id; + } + public void setId(Integer id) { + this.id = id; + } +} diff --git a/src/main/java/com/nis/entity/ConfagentMetrics.java b/src/main/java/com/nis/entity/ConfagentMetrics.java index 764ff35..3145569 100644 --- a/src/main/java/com/nis/entity/ConfagentMetrics.java +++ b/src/main/java/com/nis/entity/ConfagentMetrics.java @@ -1,65 +1,60 @@ -package com.nis.entity; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import com.nis.service.EndpointService; - -import io.micrometer.core.annotation.Timed; -import io.micrometer.core.instrument.Counter; -import io.micrometer.core.instrument.Gauge; -import io.micrometer.core.instrument.MeterRegistry; -import io.micrometer.core.instrument.Timer; -import io.micrometer.core.instrument.binder.MeterBinder; - -@Component -public class ConfagentMetrics implements MeterBinder { - - public Counter snmpCounter; - public Map map; - public Counter confagentUpTimeCounter; - @Autowired - private EndpointService endpointService; - - ConfagentMetrics() { - map = new HashMap<>(); - } - - @Override - public void bindTo(MeterRegistry meterRegistry) { - - this.snmpCounter = Counter.builder("nz_confagent_snmptrap_nums") - .tags(new String[]{"name", "snmpNums"}) - .description("snmp alert count").register(meterRegistry); - this.confagentUpTimeCounter = Counter.builder("nz_confagent_up_time") - .tags(new String[]{"name", "upTime"}) - .description("confagent up time").register(meterRegistry); - if(map==null) { - map=new HashMap<>(); - } - List endpointMetrics = endpointService.queryEndpointMetrics(); - if(endpointMetrics!=null && endpointMetrics.size()>0) { - for(int i=0;i x.get(key)) - .tags("id",endpointMetrics.get(i).getId().toString(),"host",endpointMetrics.get(i).getHost()) - .description("Alert message statistics info") - .register(meterRegistry); - } - }else { - map.put("endpointNums", 0.0); - String key="endpointNums"; - Gauge.builder("nz_confagent_endpoint_nums", map, x -> x.get(key)) - .tags("id","null","host","null") - .description("Alert message statistics info") - .register(meterRegistry); - } - } -} +package com.nis.entity; + +import com.nis.service.EndpointService; +import io.micrometer.core.instrument.Counter; +import io.micrometer.core.instrument.Gauge; +import io.micrometer.core.instrument.MeterRegistry; +import io.micrometer.core.instrument.binder.MeterBinder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Component +public class ConfagentMetrics implements MeterBinder { + + public Counter snmpCounter; + public Map map; + public Counter confagentUpTimeCounter; + @Autowired + private EndpointService endpointService; + + ConfagentMetrics() { + map = new HashMap<>(); + } + + @Override + public void bindTo(MeterRegistry meterRegistry) { + + this.snmpCounter = Counter.builder("nz_confagent_snmptrap_nums") + .tags(new String[]{"name", "snmpNums"}) + .description("snmp alert count").register(meterRegistry); + this.confagentUpTimeCounter = Counter.builder("nz_confagent_up_time") + .tags(new String[]{"name", "upTime"}) + .description("confagent up time").register(meterRegistry); + if(map==null) { + map=new HashMap<>(); + } + List endpointMetrics = endpointService.queryEndpointMetrics(); + if(endpointMetrics!=null && endpointMetrics.size()>0) { + for(int i=0;i x.get(key)) + .tags("id",endpointMetrics.get(i).getId().toString(),"host",endpointMetrics.get(i).getHost()) + .description("Alert message statistics info") + .register(meterRegistry); + } + }else { + map.put("endpointNums", 0.0); + String key="endpointNums"; + Gauge.builder("nz_confagent_endpoint_nums", map, x -> x.get(key)) + .tags("id","null","host","null") + .description("Alert message statistics info") + .register(meterRegistry); + } + } +} diff --git a/src/main/java/com/nis/entity/TrapMessage.java b/src/main/java/com/nis/entity/TrapMessage.java index 3e849ff..3872f12 100644 --- a/src/main/java/com/nis/entity/TrapMessage.java +++ b/src/main/java/com/nis/entity/TrapMessage.java @@ -1,14 +1,14 @@ package com.nis.entity; +import cn.hutool.core.util.StrUtil; +import org.snmp4j.PDU; +import org.snmp4j.smi.Variable; + import java.io.Serializable; import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; -import cn.hutool.core.util.StrUtil; -import org.snmp4j.PDU; -import org.snmp4j.smi.Variable; - public class TrapMessage implements Serializable{ private String agentSendIP; diff --git a/src/main/java/com/nis/job/ConfagentJob.java b/src/main/java/com/nis/job/ConfagentJob.java index d9b1780..f7acf12 100644 --- a/src/main/java/com/nis/job/ConfagentJob.java +++ b/src/main/java/com/nis/job/ConfagentJob.java @@ -4,7 +4,6 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.net.url.UrlBuilder; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.core.util.URLUtil; import cn.hutool.log.Log; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -15,23 +14,21 @@ import com.nis.util.CommonUtils; import com.nis.util.Constant; import com.nis.util.RuntimeUtil; import com.nis.util.YamlUtil; -import com.sun.javafx.fxml.builder.URLBuilder; import org.apache.commons.lang3.StringUtils; import org.quartz.DisallowConcurrentExecution; import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.data.redis.core.HashOperations; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.http.ResponseEntity; import org.springframework.scheduling.quartz.QuartzJobBean; import org.springframework.web.client.RestClientException; import org.springframework.web.client.RestTemplate; -import java.io.*; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.RandomAccessFile; +import java.io.StringReader; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -796,8 +793,6 @@ public class ConfagentJob extends QuartzJobBean { * 定时任务中将promserver信息储存到redis中 */ public void savePromeserverInfoToRedis(Promserver promserver,List endpoints) { - HashOperations opsForHash = redisTemplate.opsForHash(); - Set keys = redisTemplate.opsForHash().keys(Constant.ENDPOINT_PROM); if(endpoints!=null && endpoints.size()>0) { for(Endpoint endpointPromInfo : endpoints) { logger.debug("savePromeserverInfoToRedis"+endpointPromInfo.getId()+"--->"+JSON.toJSONString(promserver)); diff --git a/src/main/java/com/nis/job/ConfagentJobConfig.java b/src/main/java/com/nis/job/ConfagentJobConfig.java index a338aa9..a2a9ed7 100644 --- a/src/main/java/com/nis/job/ConfagentJobConfig.java +++ b/src/main/java/com/nis/job/ConfagentJobConfig.java @@ -1,54 +1,50 @@ -package com.nis.job; - -import org.quartz.CronScheduleBuilder; -import org.quartz.JobBuilder; -import org.quartz.JobDetail; -import org.quartz.Trigger; -import org.quartz.TriggerBuilder; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -@Configuration -public class ConfagentJobConfig { - - @Value("${confagent.jobCron}") - private String confagentJobCron; - - @Bean - public JobDetail confagentCronJobDetail() { - return JobBuilder.newJob(ConfagentJob.class).withIdentity("confagentJob").storeDurably().build(); - } - - @Bean - public Trigger confagentCronJobTrigger() { - - if(confagentJobCron.isEmpty()) { - //如果配置文件没有配置定时周期 默认为15秒执行一次 - confagentJobCron="0/30 * * * * ?"; - } - - CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(confagentJobCron); - - return TriggerBuilder.newTrigger() - .forJob(confagentCronJobDetail()) - .withSchedule(cronScheduleBuilder) - .build(); - } - - @Bean - public JobDetail confagentUptimeCronJobDetail() { - return JobBuilder.newJob(ConfagentUptimeJob.class).withIdentity("confagentUptimeJob").storeDurably().build(); - } - - @Bean - public Trigger confagentUptimeCronJobTrigger() { - - CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0/1 * * * * ?"); - - return TriggerBuilder.newTrigger() - .forJob(confagentUptimeCronJobDetail()) - .withSchedule(cronScheduleBuilder) - .build(); - } - -} +package com.nis.job; + +import org.quartz.*; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +@Configuration +public class ConfagentJobConfig { + + @Value("${confagent.jobCron}") + private String confagentJobCron; + + @Bean + public JobDetail confagentCronJobDetail() { + return JobBuilder.newJob(ConfagentJob.class).withIdentity("confagentJob").storeDurably().build(); + } + + @Bean + public Trigger confagentCronJobTrigger() { + + if(confagentJobCron.isEmpty()) { + //如果配置文件没有配置定时周期 默认为15秒执行一次 + confagentJobCron="0/30 * * * * ?"; + } + + CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(confagentJobCron); + + return TriggerBuilder.newTrigger() + .forJob(confagentCronJobDetail()) + .withSchedule(cronScheduleBuilder) + .build(); + } + + @Bean + public JobDetail confagentUptimeCronJobDetail() { + return JobBuilder.newJob(ConfagentUptimeJob.class).withIdentity("confagentUptimeJob").storeDurably().build(); + } + + @Bean + public Trigger confagentUptimeCronJobTrigger() { + + CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0/1 * * * * ?"); + + return TriggerBuilder.newTrigger() + .forJob(confagentUptimeCronJobDetail()) + .withSchedule(cronScheduleBuilder) + .build(); + } + +} diff --git a/src/main/java/com/nis/job/ConfagentUptimeJob.java b/src/main/java/com/nis/job/ConfagentUptimeJob.java index fd3c050..7cf52d8 100644 --- a/src/main/java/com/nis/job/ConfagentUptimeJob.java +++ b/src/main/java/com/nis/job/ConfagentUptimeJob.java @@ -1,19 +1,18 @@ -package com.nis.job; - -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.quartz.QuartzJobBean; - -import com.nis.entity.ConfagentMetrics; - -public class ConfagentUptimeJob extends QuartzJobBean { - @Autowired - private ConfagentMetrics confagentMetrics; - - @Override - protected void executeInternal(JobExecutionContext context) throws JobExecutionException { - confagentMetrics.confagentUpTimeCounter.increment(); - } - -} +package com.nis.job; + +import com.nis.entity.ConfagentMetrics; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.quartz.QuartzJobBean; + +public class ConfagentUptimeJob extends QuartzJobBean { + @Autowired + private ConfagentMetrics confagentMetrics; + + @Override + protected void executeInternal(JobExecutionContext context) throws JobExecutionException { + confagentMetrics.confagentUpTimeCounter.increment(); + } + +} diff --git a/src/main/java/com/nis/server/SNMPTrapServer.java b/src/main/java/com/nis/server/SNMPTrapServer.java index 7363c4d..c311c8a 100644 --- a/src/main/java/com/nis/server/SNMPTrapServer.java +++ b/src/main/java/com/nis/server/SNMPTrapServer.java @@ -1,56 +1,27 @@ package com.nis.server; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.nio.charset.StandardCharsets; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Vector; - -import javax.annotation.PostConstruct; - import cn.hutool.core.util.StrUtil; import cn.hutool.log.Log; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.snmp4j.CommandResponder; -import org.snmp4j.CommandResponderEvent; -import org.snmp4j.MessageDispatcherImpl; -import org.snmp4j.PDU; -import org.snmp4j.PDUv1; -import org.snmp4j.Snmp; -import org.snmp4j.TransportMapping; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.nis.entity.*; +import com.nis.service.AlertRuleService; +import com.nis.service.SysConfigService; +import com.nis.util.DateUtil; +import org.snmp4j.*; import org.snmp4j.mp.MPv1; import org.snmp4j.mp.MPv2c; import org.snmp4j.mp.MPv3; import org.snmp4j.mp.SnmpConstants; -import org.snmp4j.security.AuthMD5; -import org.snmp4j.security.AuthSHA; -import org.snmp4j.security.PrivAES128; -import org.snmp4j.security.PrivAES192; -import org.snmp4j.security.PrivAES256; -import org.snmp4j.security.PrivDES; import org.snmp4j.security.SecurityModels; import org.snmp4j.security.SecurityProtocols; import org.snmp4j.security.USM; -import org.snmp4j.smi.Address; -import org.snmp4j.smi.GenericAddress; -import org.snmp4j.smi.OID; -import org.snmp4j.smi.OctetString; -import org.snmp4j.smi.TcpAddress; -import org.snmp4j.smi.UdpAddress; -import org.snmp4j.smi.Variable; -import org.snmp4j.smi.VariableBinding; +import org.snmp4j.smi.*; import org.snmp4j.transport.DefaultTcpTransportMapping; import org.snmp4j.transport.DefaultUdpTransportMapping; import org.snmp4j.util.MultiThreadedMessageDispatcher; import org.snmp4j.util.ThreadPool; -import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.ApplicationArguments; @@ -59,23 +30,14 @@ import org.springframework.core.annotation.Order; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.stereotype.Component; -import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.nis.entity.AlertManagerEnum; -import com.nis.entity.AlertRule; -import com.nis.entity.ConfagentMetrics; -import com.nis.entity.SysConfig; -import com.nis.entity.TrapMessage; -import com.nis.service.AlertRuleService; -import com.nis.service.SysConfigService; -import com.nis.util.DateUtil; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.text.SimpleDateFormat; +import java.util.*; @@ -95,7 +57,6 @@ import com.nis.util.DateUtil; @Order(1) public class SNMPTrapServer implements CommandResponder,ApplicationRunner{// implements CommandResponder, extends Service private static Log logger = Log.get(); - private static SNMPTrapServer ts = null; @Value("${confagent.snmp.trapThredPoolSize}") private String snmpTrapThredPoolSize; @Value("${confagent.snmp.trapPort}") @@ -142,30 +103,7 @@ public class SNMPTrapServer implements CommandResponder,ApplicationRunner{// imp snmp.addCommandResponder(this); } - private OID getAuthProtocol(String auth){ - if(StrUtil.equals(auth,"MD5")) { - return AuthMD5.ID; - } else if(StrUtil.equals(auth,"SHA")) { - return AuthSHA.ID; - }else{ - return null; - } - } - - private OID getPrivProtocol(String priv){ - if(StrUtil.equals(priv,"DES")) { - return PrivDES.ID; - } else if ((priv.equals("AES128")) - || (priv.equals("AES"))) { - return PrivAES128.ID; - } else if (priv.equals("AES192")) { - return PrivAES192.ID; - } else if(StrUtil.equals(priv,"AES256")) { - return PrivAES256.ID; - }else{ - return null; - } - } + @@ -220,7 +158,6 @@ public class SNMPTrapServer implements CommandResponder,ApplicationRunner{// imp trapmessageinfo.setTrapVersion(1); String s1 = pduv1.getEnterprise().toString(); trapmessageinfo.setTrapOID(s1); - String s2 = pduv1.getAgentAddress().toString(); trapmessageinfo.setPduAgentIP(s); trapmessageinfo.setTrapV1SpecificType(pduv1.getSpecificTrap()); trapmessageinfo.setTrapV1GenericType(pduv1.getGenericTrap()); @@ -354,7 +291,6 @@ public class SNMPTrapServer implements CommandResponder,ApplicationRunner{// imp // 将告警信息发送到web端处理 RestTemplate restTemplate=new RestTemplate(); restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); - MediaType type = MediaType.parseMediaType("application/json;charset=UTF-8"); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity entity =new HttpEntity(mess,headers); @@ -378,7 +314,7 @@ public class SNMPTrapServer implements CommandResponder,ApplicationRunner{// imp trapName = allTrapTypeDefine.get(variable1.toString()).toString(); return trapName; } - + void setOIDList(TrapMessage trapmessageinfo, PDU pdu) { Vector vector = pdu.getVariableBindings(); @@ -405,58 +341,10 @@ public class SNMPTrapServer implements CommandResponder,ApplicationRunner{// imp } - /** */ - /** - * 解决snmp4j中文乱码问题 - */ - public static String getChinese(String octetString) { - try { - String[] temps = octetString.split(":"); - byte[] bs = new byte[temps.length]; - for (int i = 0; i < temps.length; i++) - bs[i] = (byte) Integer.parseInt(temps[i], 16); - - return new String(bs, "GB2312"); - } catch (UnsupportedEncodingException e) { - return null; - } - } - - /*protected static String printVariableBindings(PDU response) { - String strCom = ""; - for (int i = 0; i < response.size(); i++) { - VariableBinding vb = response.get(i); - String[] str = vb.getVariable().toString().toUpperCase().split(":"); - - String strOut = ""; - int intLength = str.length; - logger.debug("长度==> " + intLength); - for (int j = 0; j < intLength; j++) { - strOut += str[j]; - } - strCom += vb.getVariable(); - if (str.length != 1) { - logger.debug("==第行=vb.getVariable()=" + SNMPTrapServer.toStringHex(strOut));//显示中文 - } - } - return strCom; - }*/ - /** * 将十进六制转换成为中文 */ private static String hexString = "0123456789ABCDEF"; - public static String toStringHex(String bytes) { - - ByteArrayOutputStream baos = new ByteArrayOutputStream( - bytes.length() / 2); - //将每2位16进制整数组装成一个字节 - for (int i = 0; i < bytes.length(); i += 2) { - baos.write((hexString.indexOf(bytes.charAt(i)) << 4 | hexString - .indexOf(bytes.charAt(i + 1)))); - } - return new String(baos.toByteArray()); - } } diff --git a/src/main/java/com/nis/service/AlertRuleService.java b/src/main/java/com/nis/service/AlertRuleService.java index 0c490d8..1493240 100644 --- a/src/main/java/com/nis/service/AlertRuleService.java +++ b/src/main/java/com/nis/service/AlertRuleService.java @@ -1,14 +1,12 @@ -package com.nis.service; - -import java.util.List; -import java.util.Map; - -import com.nis.entity.AlertRule; -import com.nis.entity.ConfEvent; - -public interface AlertRuleService { - - public List queryList(); - - public AlertRule queryBulidInRule(); -} +package com.nis.service; + +import com.nis.entity.AlertRule; + +import java.util.List; + +public interface AlertRuleService { + + public List queryList(); + + public AlertRule queryBulidInRule(); +} diff --git a/src/main/java/com/nis/service/EndpointService.java b/src/main/java/com/nis/service/EndpointService.java index 438b2a9..47a2be0 100644 --- a/src/main/java/com/nis/service/EndpointService.java +++ b/src/main/java/com/nis/service/EndpointService.java @@ -1,25 +1,24 @@ -package com.nis.service; - -import java.util.List; - -import com.nis.entity.Endpoint; -import com.nis.entity.MetricsDto; -import com.nis.entity.Promserver; - -public interface EndpointService { - - /** - * 根据idc信息查询exporter数量信息 - */ - public List queryExporterInfos(Integer idcId); - - /** - * 自定义指标当前采集endpoint个数 - */ - List queryEndpointMetrics(); - - /** - * 查询endpoint和promserver对应关系 - */ - List queryPromServerInfo(Integer promserverId); -} +package com.nis.service; + +import com.nis.entity.Endpoint; +import com.nis.entity.MetricsDto; + +import java.util.List; + +public interface EndpointService { + + /** + * 根据idc信息查询exporter数量信息 + */ + public List queryExporterInfos(Integer idcId); + + /** + * 自定义指标当前采集endpoint个数 + */ + List queryEndpointMetrics(); + + /** + * 查询endpoint和promserver对应关系 + */ + List queryPromServerInfo(Integer promserverId); +} diff --git a/src/main/java/com/nis/service/PromserverService.java b/src/main/java/com/nis/service/PromserverService.java index 46cb2f7..ef215b4 100644 --- a/src/main/java/com/nis/service/PromserverService.java +++ b/src/main/java/com/nis/service/PromserverService.java @@ -1,34 +1,34 @@ -package com.nis.service; - -import java.util.List; - -import com.nis.entity.Promserver; - -public interface PromserverService { - - public List queryList(); - - /** - * 根据ip查询 - * @param ip - * @param port - * @return - */ - public Promserver queryRoleByIpAndPort(String ip, String port); - - /** - * 查询sub信息 根据idcid及type - * @param promserver - * @return - */ - public List querySubInfos(Promserver promserver); - - /** - * 查询所有sub信息 - */ - public List querySubInfosByType(Integer type); - - List queryPromServerInfosAndIdcName(); - - boolean checkEnableRule(String ipaddr, String promServerPort); -} +package com.nis.service; + +import com.nis.entity.Promserver; + +import java.util.List; + +public interface PromserverService { + + public List queryList(); + + /** + * 根据ip查询 + * @param ip + * @param port + * @return + */ + public Promserver queryRoleByIpAndPort(String ip, String port); + + /** + * 查询sub信息 根据idcid及type + * @param promserver + * @return + */ + public List querySubInfos(Promserver promserver); + + /** + * 查询所有sub信息 + */ + public List querySubInfosByType(Integer type); + + List queryPromServerInfosAndIdcName(); + + boolean checkEnableRule(String ipaddr, String promServerPort); +} diff --git a/src/main/java/com/nis/service/SysConfigService.java b/src/main/java/com/nis/service/SysConfigService.java index 65ee610..01db976 100644 --- a/src/main/java/com/nis/service/SysConfigService.java +++ b/src/main/java/com/nis/service/SysConfigService.java @@ -1,11 +1,12 @@ -package com.nis.service; - -import java.util.List; -import com.nis.entity.SysConfig; - -public interface SysConfigService { - - public List queryList(); - - public String queryValueByParamkey(String paramKey); -} +package com.nis.service; + +import com.nis.entity.SysConfig; + +import java.util.List; + +public interface SysConfigService { + + public List queryList(); + + public String queryValueByParamkey(String paramKey); +} diff --git a/src/main/java/com/nis/service/impl/AlertRuleServiceImpl.java b/src/main/java/com/nis/service/impl/AlertRuleServiceImpl.java index c7a87c2..b2b2f5e 100644 --- a/src/main/java/com/nis/service/impl/AlertRuleServiceImpl.java +++ b/src/main/java/com/nis/service/impl/AlertRuleServiceImpl.java @@ -1,32 +1,31 @@ -package com.nis.service.impl; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.nis.dao.AlertRuleDao; -import com.nis.entity.AlertRule; -import com.nis.service.AlertRuleService; - -@Service -public class AlertRuleServiceImpl implements AlertRuleService { - - @Autowired - private AlertRuleDao alertRuleDao; - - @Override - public List queryList() { - return alertRuleDao.selectList(); - } - - @Override - public AlertRule queryBulidInRule() { - List results = alertRuleDao.selectBulidInRule(); - if(results!=null && results.size()>0) { - return results.get(0); - }else { - return null; - } - } -} +package com.nis.service.impl; + +import com.nis.dao.AlertRuleDao; +import com.nis.entity.AlertRule; +import com.nis.service.AlertRuleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class AlertRuleServiceImpl implements AlertRuleService { + + @Autowired + private AlertRuleDao alertRuleDao; + + @Override + public List queryList() { + return alertRuleDao.selectList(); + } + + @Override + public AlertRule queryBulidInRule() { + List results = alertRuleDao.selectBulidInRule(); + if(results!=null && results.size()>0) { + return results.get(0); + }else { + return null; + } + } +} diff --git a/src/main/java/com/nis/service/impl/ConfEventServiceImpl.java b/src/main/java/com/nis/service/impl/ConfEventServiceImpl.java index c0d485c..e063337 100644 --- a/src/main/java/com/nis/service/impl/ConfEventServiceImpl.java +++ b/src/main/java/com/nis/service/impl/ConfEventServiceImpl.java @@ -1,16 +1,14 @@ package com.nis.service.impl; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.alibaba.fastjson.JSON; import com.nis.dao.ConfEventDao; import com.nis.entity.ConfEvent; import com.nis.service.ConfEventService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; @Service public class ConfEventServiceImpl implements ConfEventService { diff --git a/src/main/java/com/nis/service/impl/EndpointServiceImpl.java b/src/main/java/com/nis/service/impl/EndpointServiceImpl.java index 6542a6d..f265de1 100644 --- a/src/main/java/com/nis/service/impl/EndpointServiceImpl.java +++ b/src/main/java/com/nis/service/impl/EndpointServiceImpl.java @@ -1,33 +1,31 @@ -package com.nis.service.impl; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.nis.dao.EndpointDao; -import com.nis.entity.Endpoint; -import com.nis.entity.MetricsDto; -import com.nis.entity.Promserver; -import com.nis.service.EndpointService; -@Service -public class EndpointServiceImpl implements EndpointService{ - @Autowired - private EndpointDao endpointDao; - - @Override - public List queryExporterInfos(Integer idcId) { - return endpointDao.selectExporterInfos(idcId); - } - - @Override - public List queryEndpointMetrics() { - return endpointDao.selectEndpointMetrics(); - } - - @Override - public List queryPromServerInfo(Integer promserverId) { - return endpointDao.selectPromServerInfo(promserverId); - } - -} +package com.nis.service.impl; + +import com.nis.dao.EndpointDao; +import com.nis.entity.Endpoint; +import com.nis.entity.MetricsDto; +import com.nis.service.EndpointService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +@Service +public class EndpointServiceImpl implements EndpointService{ + @Autowired + private EndpointDao endpointDao; + + @Override + public List queryExporterInfos(Integer idcId) { + return endpointDao.selectExporterInfos(idcId); + } + + @Override + public List queryEndpointMetrics() { + return endpointDao.selectEndpointMetrics(); + } + + @Override + public List queryPromServerInfo(Integer promserverId) { + return endpointDao.selectPromServerInfo(promserverId); + } + +} diff --git a/src/main/java/com/nis/service/impl/SysConfigServiceImpl.java b/src/main/java/com/nis/service/impl/SysConfigServiceImpl.java index 404a558..e4cc8c9 100644 --- a/src/main/java/com/nis/service/impl/SysConfigServiceImpl.java +++ b/src/main/java/com/nis/service/impl/SysConfigServiceImpl.java @@ -1,27 +1,26 @@ -package com.nis.service.impl; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.nis.dao.SysConfigDao; -import com.nis.entity.SysConfig; -import com.nis.service.SysConfigService; - -@Service -public class SysConfigServiceImpl implements SysConfigService { - - @Autowired - private SysConfigDao sysConfigDao; - - @Override - public List queryList() { - return sysConfigDao.selectList(); - } - - @Override - public String queryValueByParamkey(String paramKey) { - return sysConfigDao.selectValueByParamkey(paramKey); - } -} +package com.nis.service.impl; + +import com.nis.dao.SysConfigDao; +import com.nis.entity.SysConfig; +import com.nis.service.SysConfigService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class SysConfigServiceImpl implements SysConfigService { + + @Autowired + private SysConfigDao sysConfigDao; + + @Override + public List queryList() { + return sysConfigDao.selectList(); + } + + @Override + public String queryValueByParamkey(String paramKey) { + return sysConfigDao.selectValueByParamkey(paramKey); + } +} diff --git a/src/main/java/com/nis/service/impl/TrafficServiceImpl.java b/src/main/java/com/nis/service/impl/TrafficServiceImpl.java index 27bdcee..976a721 100644 --- a/src/main/java/com/nis/service/impl/TrafficServiceImpl.java +++ b/src/main/java/com/nis/service/impl/TrafficServiceImpl.java @@ -8,7 +8,6 @@ import com.nis.entity.Traffic; import com.nis.service.TrafficService; import com.nis.util.Constant; import com.nis.util.SnmpUtil; -import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; diff --git a/src/main/java/com/nis/util/CommonUtils.java b/src/main/java/com/nis/util/CommonUtils.java index be52c28..dbd6ed8 100644 --- a/src/main/java/com/nis/util/CommonUtils.java +++ b/src/main/java/com/nis/util/CommonUtils.java @@ -3,7 +3,9 @@ package com.nis.util; import cn.hutool.core.util.StrUtil; import java.io.File; -import java.util.*; +import java.util.Collection; +import java.util.Iterator; +import java.util.Map; import java.util.regex.Pattern; /** @@ -82,18 +84,6 @@ public class CommonUtils { return false; } - /** - * 空判断 - * - * @param obj 要判断,处理的对象 - * @return Boolean - * @author Ben - * @see 与非空相反 - * @since 1.0 - */ - public static Boolean notEmpty(Object... obj) { - return !isEmpty(obj); - } public static Long toLong(Object val, Long defVal) { if (isEmpty(val)) { @@ -106,127 +96,11 @@ public class CommonUtils { } } - public static Long toLong(Object val) { - return toLong(val, null); - } - - public static Integer toInt(Object val, Integer defVal) { - if (isEmpty(val)) { - return defVal; - } - try { - return Integer.parseInt(val.toString()); - } catch (NumberFormatException e) { - return defVal; - } - } - - - public static float toFloat(Object val, float defVal) { - if (isEmpty(val)) { - return defVal; - } - try { - return Float.parseFloat(val.toString()); - } catch (NumberFormatException e) { - return defVal; - } - } - - public static Boolean toBoolean(String text, Boolean defVal) { - if (isEmpty(text)) { - return false; - } - try { - return Boolean.parseBoolean(text); - } catch (NumberFormatException e) { - return defVal; - } - } - - public static Boolean toBoolean(String text) { - return toBoolean(text, false); - } - - public static Integer toInt(Object val) { - return toInt(val, null); - } - - public static Float toFloat(Object val) { - return toFloat(val, 0f); - } - - - /** - * Check whether the given Collection contains the given element instance. - *

Enforces the given instance to be present, rather than returning - * true for an equal element as well. - * - * @param collection the Collection to check - * @param element the element to look for - * @return true if found, false else - */ - public static boolean containsInstance(Collection collection, Object element) { - if (collection != null) { - for (Object candidate : collection) { - if (candidate == element) { - return true; - } - } - } - return false; - } - - - public static A[] toArray(Enumeration enumeration, A[] array) { - ArrayList elements = new ArrayList(); - while (enumeration.hasMoreElements()) { - elements.add(enumeration.nextElement()); - } - return elements.toArray(array); - } - - /** - * Adapt an enumeration to an iterator. - * - * @param enumeration the enumeration - * @return the iterator - */ - public static Iterator toIterator(Enumeration enumeration) { - @SuppressWarnings("hiding") - class EnumerationIterator implements Iterator { - private Enumeration enumeration; - public EnumerationIterator(Enumeration enumeration) { - this.enumeration = enumeration; - } - @Override - public boolean hasNext() { - return this.enumeration.hasMoreElements(); - } - @Override - public E next() { - if (!this.hasNext()) { - throw new NoSuchElementException(); - } else { - return this.enumeration.nextElement(); - } - } - @Override - public void remove() throws UnsupportedOperationException { - throw new UnsupportedOperationException("Not supported"); - } - } - return new EnumerationIterator(enumeration); - } - //获取系统名字 - public static String getOsName() { - return OS; - } public static boolean isLinux(){ return OS.indexOf("linux")>=0; @@ -240,9 +114,6 @@ public class CommonUtils { return OS.indexOf("mac")>=0&&OS.indexOf("os")>0&&OS.indexOf("x")>0; } - public static boolean isWindows(){ - return OS.indexOf("windows")>=0; - } public static boolean isOS2(){ return OS.indexOf("os/2")>=0; @@ -296,114 +167,12 @@ public class CommonUtils { return OS.indexOf("openvms")>=0; } - public static boolean isUnix() { - boolean isUnix = isLinux(); - if (!isUnix) { - isUnix = isMacOS(); - } - if (!isUnix) { - isUnix = isMacOSX(); - } - if (!isUnix) { - isUnix = isLinux(); - } - if (!isUnix) { - isUnix = isDigitalUnix(); - } - if (!isUnix) { - isUnix = isAix(); - } - if (!isUnix) { - isUnix = isFreeBSD(); - } - if (!isUnix) { - isUnix = isHPUX(); - } - if (!isUnix) { - isUnix = isIrix(); - } - if (!isUnix) { - isUnix = isMPEiX(); - } - if (!isUnix) { - isUnix = isNetWare(); - } - if (!isUnix) { - isUnix = isOpenVMS(); - } - if (!isUnix) { - isUnix = isOS2(); - } - if (!isUnix) { - isUnix = isOS390(); - } - if (!isUnix) { - isUnix = isOSF1(); - } - if (!isUnix) { - isUnix = isSunOS(); - } - if (!isUnix) { - isUnix = isSolaris(); - } - return isUnix; - } - /** - * linux内核平台 1 - * window: 2 - * 其他平台 0 - */ - public static int getPlatform(){ - int platform = 0; - if (CommonUtils.isUnix()) { - platform = 1; - } - if (CommonUtils.isWindows()) { - platform = 2; - } - return platform; - } - - - public static > Map sortMapByValue(Map map) { - List> list = new LinkedList>(map.entrySet()); - Collections.sort(list, new Comparator>() { - @Override - public int compare(Map.Entry o1, Map.Entry o2) { - return (o1.getValue()).compareTo(o2.getValue()); - } - }); - Map result = new LinkedHashMap(); - for (Map.Entry entry : list) { - result.put(entry.getKey(), entry.getValue()); - } - return result; - } - public static String uuid() { - return UUID.randomUUID().toString().replaceAll("-", ""); - } - /** - * 生成指定长度的uuid - * - * @param len - * @return - */ - public static String uuid(int len) { - StringBuffer sb = new StringBuffer(); - while (sb.length() < len) { - sb.append(uuid()); - } - return sb.toString().substring(0, len); - } - public static String getSystemCharset(){ - return System.getProperty("file.encoding"); - } - + /** * 端口合法性校验 * @param port @@ -426,44 +195,6 @@ public class CommonUtils { return true; } - public static boolean checkDomain(String domain){ - boolean flag = Pattern.matches(DOMAIN_NAME_STR, domain); - return flag; - } - - /** - * 校验url - * - * @param url - * @return - */ - public static boolean checkUrl(String url) { - Pattern compile = Pattern.compile("(" - + "(" - + "(?:" + PROTOCOL + "(?:" + USER_INFO + ")?" + ")?" - + "(?:" + DOMAIN_NAME_STR + ")" - + "(?:" + PORT_NUMBER + ")?" - + ")" - + "(" + PATH_AND_QUERY + ")?" - + WORD_BOUNDARY - + ")"); - return compile.matcher(url).matches(); - } - - public static boolean checkUrlInModel(String url) { - Pattern compile = Pattern.compile("(" - + "(" - + "(?:" + PROTOCOL + "(?:" + USER_INFO + ")?" + ")?" - + "(?:" + DOMAIN_NAME_IN_MODEL + ")" - + "(?:" + PORT_NUMBER + ")?" - + ")" - + "(" + PATH_AND_QUERY + ")?" - + WORD_BOUNDARY - + ")"); - return compile.matcher(url).matches(); - } - - private static final String DOMAIN_NAME_IN_MODEL = "(" + "[a-zA-Z0-9.]*" + ")"; private static final String IP_ADDRESS_STRING = "((25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9])\\.(25[0-5]|2[0-4]" diff --git a/src/main/java/com/nis/util/ConfagentConfig.java b/src/main/java/com/nis/util/ConfagentConfig.java index c074ac4..ea0bd9b 100644 --- a/src/main/java/com/nis/util/ConfagentConfig.java +++ b/src/main/java/com/nis/util/ConfagentConfig.java @@ -13,6 +13,7 @@ import org.apache.ibatis.mapping.VendorDatabaseIdProvider; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + import java.util.Properties; /** diff --git a/src/main/java/com/nis/util/Constant.java b/src/main/java/com/nis/util/Constant.java index 5beb762..c63b1c6 100644 --- a/src/main/java/com/nis/util/Constant.java +++ b/src/main/java/com/nis/util/Constant.java @@ -8,12 +8,11 @@ package com.nis.util; +import cn.hutool.log.Log; import org.apache.ibatis.mapping.DatabaseIdProvider; import javax.sql.DataSource; -import java.io.File; import java.sql.SQLException; -import java.util.*; /** * 常量 @@ -21,6 +20,7 @@ import java.util.*; */ public class Constant { + private static final Log logger = Log.get(); /** redis 存储promserver信息 hash key */ public static final String ENDPOINT_PROM="endpoint_prom"; /** 超级管理员ID */ @@ -98,7 +98,7 @@ public class Constant { try { databaseId = databaseIdProvider.getDatabaseId(dataSource); } catch (SQLException e) { - logger.debug(LogPrintUtil.print(e)); + logger.debug(e); } DB_TYPE = databaseId; } diff --git a/src/main/java/com/nis/util/DateUtil.java b/src/main/java/com/nis/util/DateUtil.java index f901f59..429121d 100644 --- a/src/main/java/com/nis/util/DateUtil.java +++ b/src/main/java/com/nis/util/DateUtil.java @@ -16,6 +16,7 @@ package com.nis.util; import cn.hutool.log.Log; + import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -23,7 +24,6 @@ import java.util.*; public class DateUtil { private final static Log logger = Log.get(); - private static final Object lock = new Object(); private static final Map> pool = new HashMap>(); diff --git a/src/main/java/com/nis/util/MybatisPlusConfig.java b/src/main/java/com/nis/util/MybatisPlusConfig.java index b3e1a56..5853006 100644 --- a/src/main/java/com/nis/util/MybatisPlusConfig.java +++ b/src/main/java/com/nis/util/MybatisPlusConfig.java @@ -1,19 +1,17 @@ package com.nis.util; -import java.sql.SQLException; - -import javax.sql.DataSource; - +import cn.hutool.log.Log; +import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator; +import com.baomidou.mybatisplus.core.injector.ISqlInjector; +import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector; +import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import org.apache.ibatis.mapping.DatabaseIdProvider; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator; -import com.baomidou.mybatisplus.core.injector.ISqlInjector; -import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector; -import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; -import com.nis.util.Constant; +import javax.sql.DataSource; +import java.sql.SQLException; /** * mybatis-plus配置 @@ -22,7 +20,7 @@ import com.nis.util.Constant; */ @Configuration public class MybatisPlusConfig { - + private static final Log logger = Log.get(); /** * 分页插件 */ diff --git a/src/main/java/com/nis/util/PropertyPlaceholder.java b/src/main/java/com/nis/util/PropertyPlaceholder.java index 2404caa..ad000f9 100644 --- a/src/main/java/com/nis/util/PropertyPlaceholder.java +++ b/src/main/java/com/nis/util/PropertyPlaceholder.java @@ -1,31 +1,27 @@ -package com.nis.util; - -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; -import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; - -public class PropertyPlaceholder extends PropertyPlaceholderConfigurer { - - private static Map propertyMap; - - @Override - protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException { - super.processProperties(beanFactoryToProcess, props); - propertyMap = new HashMap(); - for (Object key : props.keySet()) { - String keyStr = key.toString(); - String value = props.getProperty(keyStr); - propertyMap.put(keyStr, value); - } - } - - //static method for accessing context properties - public static Object getProperty(String name) { - return propertyMap.get(name); - } - } - +package com.nis.util; + +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; +import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; + +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +public class PropertyPlaceholder extends PropertyPlaceholderConfigurer { + + private static Map propertyMap; + + @Override + protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException { + super.processProperties(beanFactoryToProcess, props); + propertyMap = new HashMap(); + for (Object key : props.keySet()) { + String keyStr = key.toString(); + String value = props.getProperty(keyStr); + propertyMap.put(keyStr, value); + } + } + + } + diff --git a/src/main/java/com/nis/util/RedisConfig.java b/src/main/java/com/nis/util/RedisConfig.java index 0e6046f..de1b9d4 100644 --- a/src/main/java/com/nis/util/RedisConfig.java +++ b/src/main/java/com/nis/util/RedisConfig.java @@ -1,44 +1,43 @@ -package com.nis.util; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; -import org.springframework.data.redis.serializer.StringRedisSerializer; - -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.PropertyAccessor; -import com.fasterxml.jackson.databind.ObjectMapper; - -@Configuration -public class RedisConfig { - - /** - * redisTemplate 序列化使用的jdkSerializeable, 存储二进制字节码, 所以自定义序列化类 - * @param redisConnectionFactory - * @return - */ - @Bean - public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) { - RedisTemplate redisTemplate = new RedisTemplate<>(); - redisTemplate.setConnectionFactory(redisConnectionFactory); - - // 使用Jackson2JsonRedisSerialize 替换默认序列化 - Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); - - ObjectMapper objectMapper = new ObjectMapper(); - objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); - objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); - - jackson2JsonRedisSerializer.setObjectMapper(objectMapper); - - // 设置value的序列化规则和 key的序列化规则 - redisTemplate.setKeySerializer(new StringRedisSerializer()); - redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); - redisTemplate.setHashKeySerializer(new StringRedisSerializer()); - redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); - redisTemplate.afterPropertiesSet(); - return redisTemplate; - } -} +package com.nis.util; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +@Configuration +public class RedisConfig { + + /** + * redisTemplate 序列化使用的jdkSerializeable, 存储二进制字节码, 所以自定义序列化类 + * @param redisConnectionFactory + * @return + */ + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) { + RedisTemplate redisTemplate = new RedisTemplate<>(); + redisTemplate.setConnectionFactory(redisConnectionFactory); + + // 使用Jackson2JsonRedisSerialize 替换默认序列化 + Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); + + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); + + jackson2JsonRedisSerializer.setObjectMapper(objectMapper); + + // 设置value的序列化规则和 key的序列化规则 + redisTemplate.setKeySerializer(new StringRedisSerializer()); + redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); + redisTemplate.setHashKeySerializer(new StringRedisSerializer()); + redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); + redisTemplate.afterPropertiesSet(); + return redisTemplate; + } +} diff --git a/src/main/java/com/nis/util/RuntimeUtil.java b/src/main/java/com/nis/util/RuntimeUtil.java index ce52238..e1dd4ac 100644 --- a/src/main/java/com/nis/util/RuntimeUtil.java +++ b/src/main/java/com/nis/util/RuntimeUtil.java @@ -1,22 +1,13 @@ package com.nis.util; -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.io.BufferedReader; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.io.StringReader; -import java.util.*; -import java.util.concurrent.TimeUnit; - import cn.hutool.core.util.StrUtil; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import java.io.*; +import java.util.UUID; + /** * Runtime工具类,用于本机执行某些命令 * @@ -33,35 +24,6 @@ public class RuntimeUtil { private RuntimeUtil() { } - /** - * 以非阻塞模式执行命令 - * - * @param callback - * 回调类,当命令全部执行完成后会执行其onExit方法,null表示不进行回调 - * @param envp - * 运行的上下文环境变量,每项都应该写成name=value的格式;null表示直接继承当前Java进程的全部环境变量 - * @param dir - * 命令执行的工作目录;null表示继承当前Java进程的工作目录 - * @param startCommand - * 起始命令 - * @param commands - * 其他后续命令,如果有设置,会使用管道来关联前后命令的标准输出流和标准输入流 - */ - public static void runAsUnblocking(final RuntimeCallback callback, final String[] envp, final File dir, - final String[] startCommand, final String[]... commands) { - // 非阻塞的实现就是交给其他函数执行 - new Thread(new Runnable() { - @Override - public void run() { - StringReader result = RuntimeUtil.run(envp, dir, startCommand, commands); - - // 如果需要回调的话,调用回调函数 - if (callback != null) { - callback.onExit(result, envp, dir, startCommand, commands); - } - } - }).start(); - } /** * 以阻塞模式执行命令 diff --git a/src/main/java/com/nis/util/SnmpUtil.java b/src/main/java/com/nis/util/SnmpUtil.java index 4cee03e..561ea35 100644 --- a/src/main/java/com/nis/util/SnmpUtil.java +++ b/src/main/java/com/nis/util/SnmpUtil.java @@ -2,7 +2,6 @@ package com.nis.util; import cn.hutool.core.util.StrUtil; import cn.hutool.log.Log; -import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.snmp4j.*; import org.snmp4j.event.ResponseEvent; @@ -29,7 +28,6 @@ public class SnmpUtil { // 默认版本 v2 - private final int DEFAULT_VERSION = SnmpConstants.version2c; private final String DEFAULT_PROTOCOL = "udp"; // 默认团体名 private final String DEFAULT_COMMUNITY = "public"; diff --git a/src/main/java/com/nis/util/SpringContextUtils.java b/src/main/java/com/nis/util/SpringContextUtils.java index 8680dcf..798bf5a 100644 --- a/src/main/java/com/nis/util/SpringContextUtils.java +++ b/src/main/java/com/nis/util/SpringContextUtils.java @@ -28,24 +28,8 @@ public class SpringContextUtils implements ApplicationContextAware { SpringContextUtils.applicationContext = applicationContext; } - public static Object getBean(String name) { - return applicationContext.getBean(name); - } public static T getBean(String name, Class requiredType) { return applicationContext.getBean(name, requiredType); } - - public static boolean containsBean(String name) { - return applicationContext.containsBean(name); - } - - public static boolean isSingleton(String name) { - return applicationContext.isSingleton(name); - } - - public static Class getType(String name) { - return applicationContext.getType(name); - } - } \ No newline at end of file diff --git a/src/main/java/com/nis/util/YamlUtil.java b/src/main/java/com/nis/util/YamlUtil.java index 6f5d3f1..ec6a739 100644 --- a/src/main/java/com/nis/util/YamlUtil.java +++ b/src/main/java/com/nis/util/YamlUtil.java @@ -6,18 +6,13 @@ import cn.hutool.core.util.RuntimeUtil; import cn.hutool.log.Log; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; - -import com.jcraft.jsch.IO; import org.apache.commons.io.IOUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.yaml.snakeyaml.DumperOptions; import org.yaml.snakeyaml.Yaml; import java.io.*; import java.util.HashMap; import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; import java.util.Set; -- cgit v1.2.3