summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfangshunjian <[email protected]>2019-02-20 09:29:01 +0800
committerfangshunjian <[email protected]>2019-02-20 09:29:01 +0800
commit4bae6a3299176b77fb344240862a5e890976c1fc (patch)
tree0b2f7702f2d079af0a33c2aa4101cb214b7768a6
parent74cf857876f3f50c28ff874f8a68082eab13fe6a (diff)
1、新增串联设备端口状态与配置不一致告警推送接口
-rw-r--r--src/com/nms/thread/NmsPortThread.java39
-rw-r--r--src/com/nms/thread/service/NmsReportService.java29
-rw-r--r--src/conf/myconfig.properties1
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<Map<String, String>> nmsPortInfo = service.getNmsPortInfo(nowLong, nowLong-interval*1000);
if (nmsPortInfo != null && nmsPortInfo.size() > 0) {
+ ArrayList<Map<String,String>> portStatusInfo = service.getPortStatusInfo();//串联设备端口配置状态
+ Map<String,String> portStatusInfoMap = new HashMap<String,String>();
+ for(Map<String,String> map : portStatusInfo){
+ portStatusInfoMap.put(map.get("seqid")+map.get("name_flag"), map.get("port_set_state"));
+ }
logger.debug(String.format("查询数量:%s", nmsPortInfo.size()));
Map<String, List<Map<String, String>>> data = new HashMap<String, List<Map<String, String>>>();
List<Map<String, String>> results = new ArrayList<Map<String, String>>();
-
+ List<Map<String, String>> portStatusWarn = new ArrayList<Map<String, String>>();
for (Map<String, String> info : nmsPortInfo) {
Map<String, String> result = new HashMap<String, String>();
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<String,String> sw = new HashMap<String,String>();
+ 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<Map<String, String>> dbSelect = dao.dbSelect(sql, fields);
@@ -113,4 +116,30 @@ public class NmsReportService {
return null;
}
}
+
+
+ /**
+ * 获取 端口状态配置信息
+ * @return
+ */
+ public ArrayList<Map<String, String>> 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<String> fields = new ArrayList<String>();
+ fields.add("seqid");
+ fields.add("name_flag");
+ fields.add("state");
+ try {
+ ArrayList<Map<String, String>> 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