diff options
Diffstat (limited to 'src/main/java/com')
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<MeterRegistry> 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<MeterRegistry> 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<String, Object> map =new HashMap<String,Object>();
- 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<String, Object> map =new HashMap<String,Object>(); + 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<AlertRule> selectList();
-
- List<AlertRule> 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<AlertRule> selectList(); + + List<AlertRule> 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<Endpoint> selectExporterInfos(Integer idcId);
-
- List<MetricsDto> selectEndpointMetrics();
-
- List<Endpoint> 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<Endpoint> selectExporterInfos(Integer idcId); + + List<MetricsDto> selectEndpointMetrics(); + + List<Endpoint> 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<Promserver> selectList();
-
- Promserver selectRoleByIpAndPort(@Param("ip") String ip, @Param("port") String port);
-
- List<Promserver> selectSubInfo(@Param("promserver")Promserver promserver);
-
- List<Promserver> selectSubInfosByType(Integer type);
-
- List<Promserver> queryPromServerInfosAndIdcName();
-
- List<Promserver> 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<Promserver> selectList(); + + Promserver selectRoleByIpAndPort(@Param("ip") String ip, @Param("port") String port); + + List<Promserver> selectSubInfo(@Param("promserver")Promserver promserver); + + List<Promserver> selectSubInfosByType(Integer type); + + List<Promserver> queryPromServerInfosAndIdcName(); + + List<Promserver> 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<SysConfig> 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<SysConfig> 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<String, Double> 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<MetricsDto> endpointMetrics = endpointService.queryEndpointMetrics();
- if(endpointMetrics!=null && endpointMetrics.size()>0) {
- for(int i=0;i<endpointMetrics.size();i++) {
- // 这里将统计值扔进map操作是避免弱引用 统计结果出现NaN
- map.put("endpointNums"+i, endpointMetrics.get(i).getTotal());
- String key="endpointNums"+i;
- Gauge.builder("nz_confagent_endpoint_nums", map, x -> 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<String, Double> 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<MetricsDto> endpointMetrics = endpointService.queryEndpointMetrics(); + if(endpointMetrics!=null && endpointMetrics.size()>0) { + for(int i=0;i<endpointMetrics.size();i++) { + // 这里将统计值扔进map操作是避免弱引用 统计结果出现NaN + map.put("endpointNums"+i, endpointMetrics.get(i).getTotal()); + String key="endpointNums"+i; + Gauge.builder("nz_confagent_endpoint_nums", map, x -> 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<Endpoint> endpoints) { - HashOperations opsForHash = redisTemplate.opsForHash(); - Set<Object> 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<AlertRule> queryList();
-
- public AlertRule queryBulidInRule();
-}
+package com.nis.service; + +import com.nis.entity.AlertRule; + +import java.util.List; + +public interface AlertRuleService { + + public List<AlertRule> 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<Endpoint> queryExporterInfos(Integer idcId);
-
- /**
- * 自定义指标当前采集endpoint个数
- */
- List<MetricsDto> queryEndpointMetrics();
-
- /**
- * 查询endpoint和promserver对应关系
- */
- List<Endpoint> 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<Endpoint> queryExporterInfos(Integer idcId); + + /** + * 自定义指标当前采集endpoint个数 + */ + List<MetricsDto> queryEndpointMetrics(); + + /** + * 查询endpoint和promserver对应关系 + */ + List<Endpoint> 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<Promserver> queryList();
-
- /**
- * 根据ip查询
- * @param ip
- * @param port
- * @return
- */
- public Promserver queryRoleByIpAndPort(String ip, String port);
-
- /**
- * 查询sub信息 根据idcid及type
- * @param promserver
- * @return
- */
- public List<Promserver> querySubInfos(Promserver promserver);
-
- /**
- * 查询所有sub信息
- */
- public List<Promserver> querySubInfosByType(Integer type);
-
- List<Promserver> 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<Promserver> queryList(); + + /** + * 根据ip查询 + * @param ip + * @param port + * @return + */ + public Promserver queryRoleByIpAndPort(String ip, String port); + + /** + * 查询sub信息 根据idcid及type + * @param promserver + * @return + */ + public List<Promserver> querySubInfos(Promserver promserver); + + /** + * 查询所有sub信息 + */ + public List<Promserver> querySubInfosByType(Integer type); + + List<Promserver> 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<SysConfig> queryList();
-
- public String queryValueByParamkey(String paramKey);
-}
+package com.nis.service; + +import com.nis.entity.SysConfig; + +import java.util.List; + +public interface SysConfigService { + + public List<SysConfig> 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<AlertRule> queryList() {
- return alertRuleDao.selectList();
- }
-
- @Override
- public AlertRule queryBulidInRule() {
- List<AlertRule> 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<AlertRule> queryList() { + return alertRuleDao.selectList(); + } + + @Override + public AlertRule queryBulidInRule() { + List<AlertRule> 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<Endpoint> queryExporterInfos(Integer idcId) {
- return endpointDao.selectExporterInfos(idcId);
- }
-
- @Override
- public List<MetricsDto> queryEndpointMetrics() {
- return endpointDao.selectEndpointMetrics();
- }
-
- @Override
- public List<Endpoint> 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<Endpoint> queryExporterInfos(Integer idcId) { + return endpointDao.selectExporterInfos(idcId); + } + + @Override + public List<MetricsDto> queryEndpointMetrics() { + return endpointDao.selectEndpointMetrics(); + } + + @Override + public List<Endpoint> 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<SysConfig> 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<SysConfig> 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 <a href="mailto:[email protected]">Ben</a> - * @see <b>与非空相反</b> - * @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. - * <p>Enforces the given instance to be present, rather than returning - * <code>true</code> for an equal element as well. - * - * @param collection the Collection to check - * @param element the element to look for - * @return <code>true</code> if found, <code>false</code> 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, E extends A> A[] toArray(Enumeration<E> enumeration, A[] array) { - ArrayList<A> elements = new ArrayList<A>(); - 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 <E> Iterator<E> toIterator(Enumeration<E> enumeration) { - @SuppressWarnings("hiding") - class EnumerationIterator<E> implements Iterator<E> { - private Enumeration<E> enumeration; - public EnumerationIterator(Enumeration<E> 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<E>(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 <K, V extends Comparable<? super V>> Map<K, V> sortMapByValue(Map<K, V> map) { - List<Map.Entry<K, V>> list = new LinkedList<Map.Entry<K, V>>(map.entrySet()); - Collections.sort(list, new Comparator<Map.Entry<K, V>>() { - @Override - public int compare(Map.Entry<K, V> o1, Map.Entry<K, V> o2) { - return (o1.getValue()).compareTo(o2.getValue()); - } - }); - Map<K, V> result = new LinkedHashMap<K, V>(); - for (Map.Entry<K, V> 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<String, ThreadLocal<SimpleDateFormat>> pool = new HashMap<String, ThreadLocal<SimpleDateFormat>>(); 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<String,String> propertyMap;
-
- @Override
- protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException {
- super.processProperties(beanFactoryToProcess, props);
- propertyMap = new HashMap<String, String>();
- 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<String,String> propertyMap; + + @Override + protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException { + super.processProperties(beanFactoryToProcess, props); + propertyMap = new HashMap<String, String>(); + 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<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
- RedisTemplate<Object, Object> 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<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { + RedisTemplate<Object, Object> 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> T getBean(String name, Class<T> 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<? extends Object> 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; |
