diff --git a/pom.xml b/pom.xml index 5628354..55dd9ec 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.zdjizhi flink-dos-detection - 24-04-19 + 24-07-25 flink-dos-detection http://www.example.com @@ -80,7 +80,7 @@ - flink-dos-detection-24-04-19 + flink-dos-detection-24-07-25 org.apache.http diff --git a/src/main/java/com/zdjizhi/function/FlatSketchFunction.java b/src/main/java/com/zdjizhi/function/FlatSketchFunction.java index f21944b..6e14ce8 100644 --- a/src/main/java/com/zdjizhi/function/FlatSketchFunction.java +++ b/src/main/java/com/zdjizhi/function/FlatSketchFunction.java @@ -21,52 +21,29 @@ public class FlatSketchFunction implements FlatMapFunction try { if (StringUtil.isNotBlank(value)) { - DosSketchLog dosSketchLog = new DosSketchLog(); + DosSketchLog dosSketchLog = JSONObject.parseObject(value, DosSketchLog.class); dosSketchLog.setRecv_time(System.currentTimeMillis()/1000); - DosSketchMetricsLog dosSketchMetricsLog = JSONObject.parseObject(value, DosSketchMetricsLog.class); - dosSketchLog.setVsys_id(Integer.parseInt(dosSketchMetricsLog.getTags().getOrDefault("vsys_id", "1"))); - dosSketchLog.setServer_ip(dosSketchMetricsLog.getTags().getOrDefault("server_ip", "").trim()); - dosSketchLog.setDecoded_as(dosSketchMetricsLog.getTags().getOrDefault("decoded_as", "").trim()); - dosSketchLog.setDuration(Long.parseLong(dosSketchMetricsLog.getTags().getOrDefault("duration","60000"))); - dosSketchLog.setTimestamp_ms(dosSketchMetricsLog.getTimestamp_ms()); - dosSketchLog.setStart_timestamp_ms(dosSketchMetricsLog.getTimestamp_ms()); - dosSketchLog.setEnd_timestamp_ms(dosSketchMetricsLog.getTimestamp_ms() + dosSketchLog.getDuration()); - dosSketchLog.setClient_ip(dosSketchMetricsLog.getTags().getOrDefault("client_ip", "").trim()); - dosSketchLog.setData_center(dosSketchMetricsLog.getTags().getOrDefault("data_center", "").trim()); - dosSketchLog.setDevice_id(dosSketchMetricsLog.getTags().getOrDefault("device_id", "").trim()); - dosSketchLog.setDevice_group(dosSketchMetricsLog.getTags().getOrDefault("device_group", "").trim()); - dosSketchLog.setServer_country(dosSketchMetricsLog.getTags().getOrDefault("server_country", "").trim()); - dosSketchLog.setClient_country(dosSketchMetricsLog.getTags().getOrDefault("client_country", "").trim()); - dosSketchLog.setRule_id(Integer.parseInt(dosSketchMetricsLog.getTags().getOrDefault("rule_id", "0"))); - dosSketchLog.setName(dosSketchMetricsLog.getTags().getOrDefault("name", "")); - + dosSketchLog.setStart_timestamp_ms(dosSketchLog.getTimestamp_ms()); + dosSketchLog.setEnd_timestamp_ms(dosSketchLog.getTimestamp_ms() + dosSketchLog.getDuration()); HashSet client_ips = new HashSet<>(); HashSet client_countrys = new HashSet<>(); dosSketchLog.setClient_ips(client_ips); dosSketchLog.setClient_countrys(client_countrys); - if("top_client_and_server_ip".equals(dosSketchMetricsLog.getName())){ - dosSketchLog.setPkts(dosSketchMetricsLog.getFields().getOrDefault("pkts",0L)); - dosSketchLog.setBytes(dosSketchMetricsLog.getFields().getOrDefault("bytes",0L)); - dosSketchLog.setSessions(dosSketchMetricsLog.getFields().getOrDefault("sessions",0L)); + if("top_client_and_server_ip".equals(dosSketchLog.getName())){ client_ips.add(dosSketchLog.getClient_ip()); - if(!dosSketchLog.getClient_country().isEmpty()) { + if(dosSketchLog.getClient_country()!=null && !dosSketchLog.getClient_country().isEmpty()) { client_countrys.add(dosSketchLog.getClient_country()); } } - else if("top_client_ip_and_server_ip".equals(dosSketchMetricsLog.getName())){ + else if("top_client_ip_and_server_ip".equals(dosSketchLog.getName())){ dosSketchLog.setPkts(0); dosSketchLog.setBytes(0); dosSketchLog.setSessions(0); client_ips.add(dosSketchLog.getClient_ip()); - if(!dosSketchLog.getClient_country().isEmpty()) { + if(dosSketchLog.getClient_country()!=null && !dosSketchLog.getClient_country().isEmpty()) { client_countrys.add(dosSketchLog.getClient_country()); } } - else { - dosSketchLog.setPkts(dosSketchMetricsLog.getFields().getOrDefault("pkts",0L)); - dosSketchLog.setBytes(dosSketchMetricsLog.getFields().getOrDefault("bytes",0L)); - dosSketchLog.setSessions(dosSketchMetricsLog.getFields().getOrDefault("sessions",0L)); - } out.collect(dosSketchLog); } } catch (Exception e) {