From 4bae6a3299176b77fb344240862a5e890976c1fc Mon Sep 17 00:00:00 2001 From: fangshunjian Date: Wed, 20 Feb 2019 09:29:01 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=96=B0=E5=A2=9E=E4=B8=B2=E8=81=94?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=AB=AF=E5=8F=A3=E7=8A=B6=E6=80=81=E4=B8=8E?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=B8=8D=E4=B8=80=E8=87=B4=E5=91=8A=E8=AD=A6?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/nms/thread/NmsPortThread.java | 39 +++++++++++++++---- .../nms/thread/service/NmsReportService.java | 29 ++++++++++++++ src/conf/myconfig.properties | 1 + 3 files changed, 61 insertions(+), 8 deletions(-) diff --git a/src/com/nms/thread/NmsPortThread.java b/src/com/nms/thread/NmsPortThread.java index 1faed81..7675988 100644 --- a/src/com/nms/thread/NmsPortThread.java +++ b/src/com/nms/thread/NmsPortThread.java @@ -6,17 +6,16 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import net.sf.json.JSONObject; -import nis.nms.util.BaseAction; -import nis.nms.util.ConnectionOracle; -import nis.nms.util.HttpClientUtil; - import org.apache.log4j.Logger; import org.nutz.json.Json; import org.nutz.json.JsonFormat; import com.nms.thread.service.NmsReportService; +import nis.nms.util.BaseAction; +import nis.nms.util.ConnectionOracle; +import nis.nms.util.HttpClientUtil; + public class NmsPortThread implements Runnable { private static Logger logger = Logger.getLogger(NmsPortThread.class); @@ -40,10 +39,15 @@ public class NmsPortThread implements Runnable { NmsReportService service = new NmsReportService(connection); ArrayList> nmsPortInfo = service.getNmsPortInfo(nowLong, nowLong-interval*1000); if (nmsPortInfo != null && nmsPortInfo.size() > 0) { + ArrayList> portStatusInfo = service.getPortStatusInfo();//串联设备端口配置状态 + Map portStatusInfoMap = new HashMap(); + for(Map map : portStatusInfo){ + portStatusInfoMap.put(map.get("seqid")+map.get("name_flag"), map.get("port_set_state")); + } logger.debug(String.format("查询数量:%s", nmsPortInfo.size())); Map>> data = new HashMap>>(); List> results = new ArrayList>(); - + List> portStatusWarn = new ArrayList>(); for (Map info : nmsPortInfo) { Map result = new HashMap(); result.put("port", info.get("ifindex") == null ? "" : info.get("ifindex")); @@ -60,12 +64,31 @@ public class NmsPortThread implements Runnable { result.put("recvTime", info.get("DATA_CHECK_TIME") == null ? "" : info.get("DATA_CHECK_TIME")); result.put("entranceId", info.get("ADDR") == null ? "" : info.get("ADDR")); results.add(result); + //整理端口状态告警推送 + String seqId = info.get("seq_id"); + String portName = info.get("IFDESCR"); + String adminStatus = info.get("IFADMINSTATUS"); + String setStatus = portStatusInfoMap.get(seqId + portName);//配置状态 + if(setStatus != null && !setStatus.equals(adminStatus)){ + Map sw = new HashMap(); + sw.put("area", info.get("ADDR")); + sw.put("port", portName); + sw.put("status", adminStatus); + sw.put("commitTime", info.get("DATA_CHECK_TIME")); + portStatusWarn.add(sw); + } } data.put("trafficNetflowPortInfoList", results); HttpClientUtil httpUtil = new HttpClientUtil(); String dataStr = Json.toJson(data,JsonFormat.tidy()); - logger.debug("url:" +BaseAction.rb.getString("nms.port.url") + ",data :" + dataStr); - httpUtil.post(BaseAction.rb.getString("nms.port.url"), dataStr); + String url = BaseAction.rb.getString("nms.port.url"); + httpUtil.post(url, dataStr); + //推送端口状态告警 + data.clear(); + data.put("trafficSeriesDevicePortInfoList", portStatusWarn); + dataStr = Json.toJson(data,JsonFormat.tidy()); + url = BaseAction.rb.getString("nms.port.warn.url"); + httpUtil.post(url, dataStr); logger.info("port上报完毕"); } else { logger.info("暂无可上报的port数据"); diff --git a/src/com/nms/thread/service/NmsReportService.java b/src/com/nms/thread/service/NmsReportService.java index dca060b..286d339 100644 --- a/src/com/nms/thread/service/NmsReportService.java +++ b/src/com/nms/thread/service/NmsReportService.java @@ -86,6 +86,7 @@ public class NmsReportService { //end=1539073220004l,start=1539064699984l //只查询 网元类型为 特种设备:1的端口信息 String sql = "SELECT DISTINCT nt.node_ip, nt.node_name, ds.ifindex, ds.IFDESCR, ds.IFSPEED, ds.IFINOCTETS, ds.IFOUTOCTETS,ds.INOCTETSSPEED,ds.INPKTSSPEED,ds.OUTOCTETSSPEED, ds.OUTPKTSSPEED, ds.DATA_CHECK_TIME,st.ADDR " + + " ds.IFADMINSTATUS ,nt.seq_id" + "FROM di_switchport ds " + "LEFT JOIN node_table nt ON nt.seq_id=ds.seq_id " + " left join system_table st on st.system_id = nt.system_id " @@ -104,6 +105,8 @@ public class NmsReportService { fields.add("OUTPKTSSPEED"); fields.add("DATA_CHECK_TIME"); fields.add("ADDR"); + fields.add("IFADMINSTATUS"); + fields.add("seq_id"); try { ArrayList> dbSelect = dao.dbSelect(sql, fields); @@ -113,4 +116,30 @@ public class NmsReportService { return null; } } + + + /** + * 获取 端口状态配置信息 + * @return + */ + public ArrayList> getPortStatusInfo() { + //end=1539073220004l,start=1539064699984l + //只查询 网元类型为 特种设备:1的端口信息 + StringBuffer sql = new StringBuffer(); + sql.append(" select t.seqid, t.name_flag,(case when port_set_state is null then 1 else port_set_state end) state from node_figure_info t "); + sql.append(" where "); + sql.append(" t.name_flag is not null and t.is_leaf = 1 "); + ArrayList fields = new ArrayList(); + fields.add("seqid"); + fields.add("name_flag"); + fields.add("state"); + try { + ArrayList> dbSelect = dao.dbSelect(sql.toString(), fields); + return dbSelect; + } catch (Exception e) { + logger.error(e); + return null; + } + } + } diff --git a/src/conf/myconfig.properties b/src/conf/myconfig.properties index a85b343..d9a4f55 100644 --- a/src/conf/myconfig.properties +++ b/src/conf/myconfig.properties @@ -104,6 +104,7 @@ nms.status.setId=7 nms.status.url=http://10.0.7.21/galaxy-service//service/nms/v1/saveServerStatus nms.port.url=http://10.0.7.21/galaxy-service/service/nms/v1/trafficNetflowPortInfo nms.rule.url=http://10.0.7.21/galaxy-service/service/nms/v1/saveNmsDiRule +nms.port.warn.url=http://192.168.11.209:8080/galaxy-service/service/nms/v1/trafficSeriesDevicePortInfo #默认节点组id default.nodeGroupId=100000 prefabricate.view=100000,100003,100004,100005,100006,100007,100033,100035,100037