Authored by 王凤

合并分支 'gz_agent_zmm' 到 'master'

宕机监控相关代码

宕机监控相关代码

查看合并请求 !1
@@ -59,5 +59,8 @@ @@ -59,5 +59,8 @@
59 <sqlMap resource="com/sitech/topo/db/maps/TbTopoHostProcessListenMap.xml" /> 59 <sqlMap resource="com/sitech/topo/db/maps/TbTopoHostProcessListenMap.xml" />
60 <sqlMap resource="com/sitech/topo/db/maps/TbTopoHostProcessMap.xml" /> 60 <sqlMap resource="com/sitech/topo/db/maps/TbTopoHostProcessMap.xml" />
61 <sqlMap resource="com/sitech/topo/db/maps/TbTopoHostProcessLinkMap.xml" /> 61 <sqlMap resource="com/sitech/topo/db/maps/TbTopoHostProcessLinkMap.xml" />
  62 + <sqlMap resource="com/sitech/database/maps/TbTopoPhysicalDeviceMap.xml" />
  63 + <sqlMap resource="com/sitech/database/maps/DowntimeMap.xml" />
  64 + <sqlMap resource="com/sitech/database/maps/DowntimeMapHistory.xml" />
62 65
63 </sqlMapConfig> 66 </sqlMapConfig>
@@ -31,6 +31,9 @@ CREATE MEMORY TABLE TB_TMP_INTERFACE(IP_ADDR VARCHAR(64),IF_INDEX VARCHAR(32),IF @@ -31,6 +31,9 @@ CREATE MEMORY TABLE TB_TMP_INTERFACE(IP_ADDR VARCHAR(64),IF_INDEX VARCHAR(32),IF
31 CREATE MEMORY TABLE TB_CFG_SNMP_PRI_KPI_CONVERT(KPI_ID VARCHAR(20) NOT NULL,SYS_OBJECT_ID VARCHAR(512) NOT NULL,EXPRESSION VARCHAR(128) NOT NULL) 31 CREATE MEMORY TABLE TB_CFG_SNMP_PRI_KPI_CONVERT(KPI_ID VARCHAR(20) NOT NULL,SYS_OBJECT_ID VARCHAR(512) NOT NULL,EXPRESSION VARCHAR(128) NOT NULL)
32 CREATE MEMORY TABLE TB_CFG_SNMP_PRI_OID(SYS_OBJECT_ID VARCHAR(512),NAME VARCHAR(32),OID VARCHAR(512)) 32 CREATE MEMORY TABLE TB_CFG_SNMP_PRI_OID(SYS_OBJECT_ID VARCHAR(512),NAME VARCHAR(32),OID VARCHAR(512))
33 CREATE MEMORY TABLE TB_CFG_OID_MIB(GUID VARCHAR(37) NOT NULL PRIMARY KEY,KPI_ID VARCHAR(20) NOT NULL,UNIT_ID VARCHAR(255),OID VARCHAR(100)) 33 CREATE MEMORY TABLE TB_CFG_OID_MIB(GUID VARCHAR(37) NOT NULL PRIMARY KEY,KPI_ID VARCHAR(20) NOT NULL,UNIT_ID VARCHAR(255),OID VARCHAR(100))
  34 +CREATE MEMORY TABLE TB_TOPO_PHYSICAL_DEVICE(DEVICE_ID VARCHAR(50),DEVICE_IP VARCHAR(30),DEVICE_ALIAS VARCHAR(100),DEVICE_CATALOG VARCHAR(100),DEVICE_CNAME VARCHAR(100),KBP_CLASS VARCHAR(100),DEVICE_DESC VARCHAR(500),DEVICE_ROOM VARCHAR(100),DEVICE_RACK VARCHAR(100),CREATE_DATE TIMESTAMP)
  35 +CREATE MEMORY TABLE TB_DOWNTIME_HOST(DEVICE_ID VARCHAR(50),DEVICE_IP VARCHAR(30),DEVICE_ALIAS VARCHAR(100),KBP_CLASS VARCHAR(100),PROTOCOL VARCHAR(10),PROTOCOL_PORT VARCHAR(10),USER_NAME VARCHAR(50),PASSWORD VARCHAR(100),CREATE_DATE TIMESTAMP)
  36 +CREATE MEMORY TABLE TB_DOWNTIME_HOST_HISTORY(DEVICE_ID VARCHAR(50),DEVICE_IP VARCHAR(30),CREATE_DATE VARCHAR(10))
34 CREATE USER SA PASSWORD "" 37 CREATE USER SA PASSWORD ""
35 GRANT DBA TO SA 38 GRANT DBA TO SA
36 SET WRITE_DELAY 20 39 SET WRITE_DELAY 20
@@ -67,6 +70,50 @@ INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.20 @@ -67,6 +70,50 @@ INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.20
67 INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.2011.2.77','(Double.parseDouble(MEM_TOTAL)-Double.parseDouble(MEM_FREE))/Double.parseDouble(MEM_TOTAL)*100') 70 INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.2011.2.77','(Double.parseDouble(MEM_TOTAL)-Double.parseDouble(MEM_FREE))/Double.parseDouble(MEM_TOTAL)*100')
68 INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.2011.2.23.98','Double.parseDouble(CPU_USAGE)') 71 INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.2011.2.23.98','Double.parseDouble(CPU_USAGE)')
69 INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.2011.2.23.98','(Double.parseDouble(MEM_TOTAL)-Double.parseDouble(MEM_FREE))/Double.parseDouble(MEM_TOTAL)*100') 72 INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.2011.2.23.98','(Double.parseDouble(MEM_TOTAL)-Double.parseDouble(MEM_FREE))/Double.parseDouble(MEM_TOTAL)*100')
  73 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.923','Double.parseDouble(CPU_USAGE)')
  74 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.923','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))*100')
  75 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.340','Double.parseDouble(CPU_USAGE)')
  76 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.340','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))*100')
  77 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.864','Double.parseDouble(CPU_USAGE)')
  78 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.864','(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_USED2))/(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_FREE1)+Double.parseDouble(MEM_USED2)+Double.parseDouble(MEM_FREE2))')
  79 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.516','Double.parseDouble(CPU_USAGE)')
  80 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.516','(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_USED2))/(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_FREE1)+Double.parseDouble(MEM_USED2)+Double.parseDouble(MEM_FREE2))')
  81 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.876','Double.parseDouble(CPU_USAGE)')
  82 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.876','Double.parseDouble(MEM_USED1)/(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_FREE1))')
  83 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.2011.2.45','Double.parseDouble(CPU_USAGE)')
  84 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.2011.2.45','Double.parseDouble(MEM_USED1)/(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_FREE1))')
  85 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.914','(Double.parseDouble(CPU_USAGE1)+Double.parseDouble(CPU_USAGE2)+Double.parseDouble(CPU_USAGE3)+Double.parseDouble(CPU_USAGE4)+Double.parseDouble(CPU_USAGE5)+Double.parseDouble(CPU_USAGE6))/6')
  86 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.914','(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_USED2)+Double.parseDouble(MEM_USED3)+Double.parseDouble(MEM_USED4))/(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_FREE1)+Double.parseDouble(MEM_USED2)+Double.parseDouble(MEM_FREE2)+Double.parseDouble(MEM_USED3)+Double.parseDouble(MEM_FREE3)+Double.parseDouble(MEM_USED4)+Double.parseDouble(MEM_FREE4))')
  87 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.1198','(Double.parseDouble(CPU_USAGE1)+Double.parseDouble(CPU_USAGE2)+Double.parseDouble(CPU_USAGE3)+Double.parseDouble(CPU_USAGE4)+Double.parseDouble(CPU_USAGE5)+Double.parseDouble(CPU_USAGE6))/6')
  88 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.1198','(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_USED2)+Double.parseDouble(MEM_USED3)+Double.parseDouble(MEM_USED4))/(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_FREE1)+Double.parseDouble(MEM_USED2)+Double.parseDouble(MEM_FREE2)+Double.parseDouble(MEM_USED3)+Double.parseDouble(MEM_FREE3)+Double.parseDouble(MEM_USED4)+Double.parseDouble(MEM_FREE4))')
  89 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.3224.1.16','Double.parseDouble(CPU_USAGE)')
  90 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.3224.1.16','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))')
  91 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.3224.1.9','Double.parseDouble(CPU_USAGE)')
  92 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.3224.1.9','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))')
  93 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.3375.2.1.3.4.6','(Double.parseDouble(CPU_SYSTEM)+Double.parseDouble(CPU_USER))/2')
  94 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.3375.2.1.3.4.6','((Double.parseDouble(MEM_TOTAL)-Double.parseDouble(MEM_FREE))/Double.parseDouble(MEM_TOTAL))*100')
  95 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.2011.2.170.3','Double.parseDouble(CPU_USAGE)')
  96 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.2011.2.170.3','(Double.parseDouble(MEM_TOTAL)-Double.parseDouble(MEM_FREE))/Double.parseDouble(MEM_TOTAL)*100')
  97 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.2011.2.170.1','Double.parseDouble(CPU_USAGE)')
  98 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.2011.2.170.1','(Double.parseDouble(MEM_TOTAL)-Double.parseDouble(MEM_FREE))/Double.parseDouble(MEM_TOTAL)*100')
  99 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.2011.2.170.2','Double.parseDouble(CPU_USAGE)')
  100 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.2011.2.170.2','(Double.parseDouble(MEM_TOTAL)-Double.parseDouble(MEM_FREE))/Double.parseDouble(MEM_TOTAL)*100')
  101 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.310','Double.parseDouble(CPU_USAGE)')
  102 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.310','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))*100')
  103 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.400','Double.parseDouble(CPU_USAGE)')
  104 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.400','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))*100')
  105 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.283','Double.parseDouble(CPU_USAGE)')
  106 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.283','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))*100')
  107 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.501','Double.parseDouble(CPU_USAGE)')
  108 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.501','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))*100')
  109 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.925','Double.parseDouble(CPU_USAGE)')
  110 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.925','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))*100')
  111 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.25506.1.391','Double.parseDouble(CPU_USAGE)')
  112 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.25506.1.391','Double.parseDouble(MEM_USED)/Double.parseDouble(MEM_TOTAL)*100')
  113 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.2011.2.23.39','Double.parseDouble(CPU_USAGE)')
  114 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.2011.2.23.39','Double.parseDouble(MEM_USAGE)')
  115 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.968','Double.parseDouble(CPU_USAGE)')
  116 +INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.968','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))*100')
70 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.110','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0') 117 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.110','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0')
71 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.110','MEM_FREE','WALK:1.3.6.1.4.1.9.9.48.1.1.1.6') 118 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.110','MEM_FREE','WALK:1.3.6.1.4.1.9.9.48.1.1.1.6')
72 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.110','MEM_USED','WALK:1.3.6.1.4.1.9.9.48.1.1.1.5') 119 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.110','MEM_USED','WALK:1.3.6.1.4.1.9.9.48.1.1.1.5')
@@ -118,134 +165,90 @@ INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.77','MEM_TOTAL','WALK @@ -118,134 +165,90 @@ INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.77','MEM_TOTAL','WALK
118 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.923','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0') 165 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.923','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0')
119 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.923','MEM_FREE','WALK:1.3.6.1.4.1.9.9.48.1.1.1.6') 166 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.923','MEM_FREE','WALK:1.3.6.1.4.1.9.9.48.1.1.1.6')
120 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.923','MEM_USED','WALK:1.3.6.1.4.1.9.9.48.1.1.1.5') 167 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.923','MEM_USED','WALK:1.3.6.1.4.1.9.9.48.1.1.1.5')
121 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.923','Double.parseDouble(CPU_USAGE)')  
122 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.923','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))*100')  
123 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.340','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0') 168 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.340','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0')
124 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.340','MEM_FREE','WALK:1.3.6.1.4.1.9.9.48.1.1.1.6') 169 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.340','MEM_FREE','WALK:1.3.6.1.4.1.9.9.48.1.1.1.6')
125 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.340','MEM_USED','WALK:1.3.6.1.4.1.9.9.48.1.1.1.5') 170 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.340','MEM_USED','WALK:1.3.6.1.4.1.9.9.48.1.1.1.5')
126 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.340','Double.parseDouble(CPU_USAGE)')  
127 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.340','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))*100')  
128 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.864','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0')  
129 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.864','MEM_USED1','1.3.6.1.4.1.9.9.48.1.1.1.5.1')  
130 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.864','MEM_FREE1','1.3.6.1.4.1.9.9.48.1.1.1.6.1')  
131 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.864','MEM_USED2','1.3.6.1.4.1.9.9.48.1.1.1.5.2')  
132 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.864','MEM_FREE2','1.3.6.1.4.1.9.9.48.1.1.1.6.2')  
133 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.516','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0')  
134 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.516','MEM_USED1','1.3.6.1.4.1.9.9.48.1.1.1.5.1')  
135 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.516','MEM_FREE1','1.3.6.1.4.1.9.9.48.1.1.1.6.1')  
136 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.516','MEM_USED2','1.3.6.1.4.1.9.9.48.1.1.1.5.2')  
137 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.516','MEM_FREE2','1.3.6.1.4.1.9.9.48.1.1.1.6.2')  
138 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.876','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0')  
139 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.876','MEM_USED1','1.3.6.1.4.1.9.9.48.1.1.1.5.1')  
140 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.876','MEM_FREE1','1.3.6.1.4.1.9.9.48.1.1.1.6.1')  
141 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.2011.2.45','MEM_FREE1','1.3.6.1.4.1.2011.2.2.5.2.0')  
142 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.2011.2.45','MEM_USED1','1.3.6.1.4.1.2011.2.2.5.1.0')  
143 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.2011.2.45','CPU_USAGE','1.3.6.1.4.1.2011.2.2.4.12.0')  
144 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.3224.1.16','MEM_FREE','.1.3.6.1.4.1.3224.16.2.2.0')  
145 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.3224.1.16','MEM_USED','1.3.6.1.4.1.3224.16.2.1.0')  
146 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.3224.1.16','CPU_USAGE','1.3.6.1.4.1.3224.16.1.1.0')  
147 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.3224.1.9','MEM_FREE','.1.3.6.1.4.1.3224.16.2.2.0')  
148 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.3224.1.9','MEM_USED','1.3.6.1.4.1.3224.16.2.1.0')  
149 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.3224.1.9','CPU_USAGE','1.3.6.1.4.1.3224.16.1.1.0')  
150 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.914','MEM_USED1','1.3.6.1.4.1.9.9.48.1.1.1.5.1')  
151 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.914','MEM_USED2','1.3.6.1.4.1.9.9.48.1.1.1.5.6')  
152 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.914','MEM_USED3','1.3.6.1.4.1.9.9.48.1.1.1.5.7')  
153 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.914','MEM_USED4','1.3.6.1.4.1.9.9.48.1.1.1.5.8')  
154 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.914','MEM_FREE1','1.3.6.1.4.1.9.9.48.1.1.1.6.1')  
155 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.914','MEM_FREE2','1.3.6.1.4.1.9.9.48.1.1.1.6.6')  
156 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.914','MEM_FREE3','1.3.6.1.4.1.9.9.48.1.1.1.6.7')  
157 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.914','MEM_FREE4','1.3.6.1.4.1.9.9.48.1.1.1.6.8')  
158 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.914','CPU_USAGE1','1.3.6.1.4.1.9.9.109.1.1.1.1.4.1')  
159 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.914','CPU_USAGE2','1.3.6.1.4.1.9.9.109.1.1.1.1.4.2')  
160 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.914','CPU_USAGE3','1.3.6.1.4.1.9.9.109.1.1.1.1.4.3')  
161 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.914','CPU_USAGE4','1.3.6.1.4.1.9.9.109.1.1.1.1.4.4')  
162 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.914','CPU_USAGE5','1.3.6.1.4.1.9.9.109.1.1.1.1.4.5')  
163 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.914','CPU_USAGE6','1.3.6.1.4.1.9.9.109.1.1.1.1.4.6')  
164 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.1198','MEM_USED1','1.3.6.1.4.1.9.9.48.1.1.1.5.1')  
165 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.1198','MEM_USED2','1.3.6.1.4.1.9.9.48.1.1.1.5.6')  
166 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.1198','MEM_USED3','1.3.6.1.4.1.9.9.48.1.1.1.5.7')  
167 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.1198','MEM_FREE1','1.3.6.1.4.1.9.9.48.1.1.1.6.1')  
168 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.1198','MEM_FREE2','1.3.6.1.4.1.9.9.48.1.1.1.6.6')  
169 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.1198','MEM_FREE3','1.3.6.1.4.1.9.9.48.1.1.1.6.7')  
170 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.1198','CPU_USAGE1','1.3.6.1.4.1.9.9.109.1.1.1.1.4.1')  
171 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.1198','CPU_USAGE5','1.3.6.1.4.1.9.9.109.1.1.1.1.4.5')  
172 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.9.1.1198','CPU_USAGE6','1.3.6.1.4.1.9.9.109.1.1.1.1.4.6')  
173 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.3375.2.1.3.4.6','MEM_TOTAL','.1.3.6.1.4.1.2021.4.5.0')  
174 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.3375.2.1.3.4.6','MEM_FREE','.1.3.6.1.4.1.2021.4.6.0')  
175 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.3375.2.1.3.4.6','CPU_SYSTEM','.1.3.6.1.4.1.2021.11.10.0')  
176 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.3375.2.1.3.4.6','CPU_USER','.1.3.6.1.4.1.2021.11.9.0')  
177 -insert into TB_CFG_SNMP_PRI_KPI_CONVERT values('PM-00-02-001-06','1.3.6.1.4.1.9.1.864','Double.parseDouble(CPU_USAGE)')  
178 -insert into TB_CFG_SNMP_PRI_KPI_CONVERT values('PM-00-02-001-07','1.3.6.1.4.1.9.1.864','(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_USED2))/(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_FREE1)+Double.parseDouble(MEM_USED2)+Double.parseDouble(MEM_FREE2))')  
179 -insert into TB_CFG_SNMP_PRI_KPI_CONVERT values('PM-00-02-001-06','1.3.6.1.4.1.9.1.516','Double.parseDouble(CPU_USAGE)')  
180 -insert into TB_CFG_SNMP_PRI_KPI_CONVERT values('PM-00-02-001-07','1.3.6.1.4.1.9.1.516','(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_USED2))/(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_FREE1)+Double.parseDouble(MEM_USED2)+Double.parseDouble(MEM_FREE2))')  
181 -insert into TB_CFG_SNMP_PRI_KPI_CONVERT values('PM-00-02-001-06','1.3.6.1.4.1.9.1.876','Double.parseDouble(CPU_USAGE)')  
182 -insert into TB_CFG_SNMP_PRI_KPI_CONVERT values('PM-00-02-001-07','1.3.6.1.4.1.9.1.876','Double.parseDouble(MEM_USED1)/(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_FREE1))')  
183 -insert into TB_CFG_SNMP_PRI_KPI_CONVERT values('PM-00-02-001-06','1.3.6.1.4.1.2011.2.45','Double.parseDouble(CPU_USAGE)')  
184 -insert into TB_CFG_SNMP_PRI_KPI_CONVERT values('PM-00-02-001-07','1.3.6.1.4.1.2011.2.45','Double.parseDouble(MEM_USED1)/(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_FREE1))')  
185 -insert into TB_CFG_SNMP_PRI_KPI_CONVERT values('PM-00-02-001-06','1.3.6.1.4.1.9.1.914','(Double.parseDouble(CPU_USAGE1)+Double.parseDouble(CPU_USAGE2)+Double.parseDouble(CPU_USAGE3)+Double.parseDouble(CPU_USAGE4)+Double.parseDouble(CPU_USAGE5)+Double.parseDouble(CPU_USAGE6))/6')  
186 -insert into TB_CFG_SNMP_PRI_KPI_CONVERT values('PM-00-02-001-07','1.3.6.1.4.1.9.1.914','(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_USED2)+Double.parseDouble(MEM_USED3)+Double.parseDouble(MEM_USED4))/(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_FREE1)+Double.parseDouble(MEM_USED2)+Double.parseDouble(MEM_FREE2)+Double.parseDouble(MEM_USED3)+Double.parseDouble(MEM_FREE3)+Double.parseDouble(MEM_USED4)+Double.parseDouble(MEM_FREE4))')  
187 -insert into TB_CFG_SNMP_PRI_KPI_CONVERT values('PM-00-02-001-06','1.3.6.1.4.1.9.1.1198','(Double.parseDouble(CPU_USAGE1)+Double.parseDouble(CPU_USAGE2)+Double.parseDouble(CPU_USAGE3)+Double.parseDouble(CPU_USAGE4)+Double.parseDouble(CPU_USAGE5)+Double.parseDouble(CPU_USAGE6))/6')  
188 -insert into TB_CFG_SNMP_PRI_KPI_CONVERT values('PM-00-02-001-07','1.3.6.1.4.1.9.1.1198','(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_USED2)+Double.parseDouble(MEM_USED3)+Double.parseDouble(MEM_USED4))/(Double.parseDouble(MEM_USED1)+Double.parseDouble(MEM_FREE1)+Double.parseDouble(MEM_USED2)+Double.parseDouble(MEM_FREE2)+Double.parseDouble(MEM_USED3)+Double.parseDouble(MEM_FREE3)+Double.parseDouble(MEM_USED4)+Double.parseDouble(MEM_FREE4))')  
189 -insert into TB_CFG_SNMP_PRI_KPI_CONVERT values('PM-00-02-001-06','1.3.6.1.4.1.3224.1.16','Double.parseDouble(CPU_USAGE)')  
190 -insert into TB_CFG_SNMP_PRI_KPI_CONVERT values('PM-00-02-001-07','1.3.6.1.4.1.3224.1.16','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))')  
191 -insert into TB_CFG_SNMP_PRI_KPI_CONVERT values('PM-00-02-001-06','1.3.6.1.4.1.3224.1.9','Double.parseDouble(CPU_USAGE)')  
192 -insert into TB_CFG_SNMP_PRI_KPI_CONVERT values('PM-00-02-001-07','1.3.6.1.4.1.3224.1.9','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))')  
193 -insert into TB_CFG_SNMP_PRI_KPI_CONVERT values('PM-00-02-001-06','1.3.6.1.4.1.3375.2.1.3.4.6','(Double.parseDouble(CPU_SYSTEM)+Double.parseDouble(CPU_USER))/2')  
194 -insert into TB_CFG_SNMP_PRI_KPI_CONVERT values('PM-00-02-001-07','1.3.6.1.4.1.3375.2.1.3.4.6','((Double.parseDouble(MEM_TOTAL)-Double.parseDouble(MEM_FREE))/Double.parseDouble(MEM_TOTAL))*100')  
195 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.2011.2.170.3','MEM_FREE','WALK:1.3.6.1.4.1.2011.6.3.5.1.1.3.0')  
196 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.2011.2.170.3','MEM_TOTAL','WALK:1.3.6.1.4.1.2011.6.3.5.1.1.2.0')  
197 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.2011.2.170.3','CPU_USAGE','WALK:1.3.6.1.4.1.2011.6.3.4.1.2.0')  
198 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.2011.2.170.3','Double.parseDouble(CPU_USAGE)')  
199 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.2011.2.170.3','(Double.parseDouble(MEM_TOTAL)-Double.parseDouble(MEM_FREE))/Double.parseDouble(MEM_TOTAL)*100')  
200 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.2011.2.170.1','MEM_FREE','WALK:1.3.6.1.4.1.2011.6.3.5.1.1.3.0')  
201 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.2011.2.170.1','MEM_TOTAL','WALK:1.3.6.1.4.1.2011.6.3.5.1.1.2.0')  
202 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.2011.2.170.1','CPU_USAGE','WALK:1.3.6.1.4.1.2011.6.3.4.1.2.0')  
203 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.2011.2.170.1','Double.parseDouble(CPU_USAGE)')  
204 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.2011.2.170.1','(Double.parseDouble(MEM_TOTAL)-Double.parseDouble(MEM_FREE))/Double.parseDouble(MEM_TOTAL)*100')  
205 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.2011.2.170.2','MEM_FREE','WALK:1.3.6.1.4.1.2011.6.3.5.1.1.3.0')  
206 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.2011.2.170.2','MEM_TOTAL','WALK:1.3.6.1.4.1.2011.6.3.5.1.1.2.0')  
207 -insert into TB_CFG_SNMP_PRI_OID values('1.3.6.1.4.1.2011.2.170.2','CPU_USAGE','WALK:1.3.6.1.4.1.2011.6.3.4.1.2.0')  
208 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.2011.2.170.2','Double.parseDouble(CPU_USAGE)')  
209 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.2011.2.170.2','(Double.parseDouble(MEM_TOTAL)-Double.parseDouble(MEM_FREE))/Double.parseDouble(MEM_TOTAL)*100') 171 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.864','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0')
  172 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.864','MEM_USED1','1.3.6.1.4.1.9.9.48.1.1.1.5.1')
  173 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.864','MEM_FREE1','1.3.6.1.4.1.9.9.48.1.1.1.6.1')
  174 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.864','MEM_USED2','1.3.6.1.4.1.9.9.48.1.1.1.5.2')
  175 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.864','MEM_FREE2','1.3.6.1.4.1.9.9.48.1.1.1.6.2')
  176 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.516','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0')
  177 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.516','MEM_USED1','1.3.6.1.4.1.9.9.48.1.1.1.5.1')
  178 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.516','MEM_FREE1','1.3.6.1.4.1.9.9.48.1.1.1.6.1')
  179 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.516','MEM_USED2','1.3.6.1.4.1.9.9.48.1.1.1.5.2')
  180 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.516','MEM_FREE2','1.3.6.1.4.1.9.9.48.1.1.1.6.2')
  181 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.876','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0')
  182 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.876','MEM_USED1','1.3.6.1.4.1.9.9.48.1.1.1.5.1')
  183 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.876','MEM_FREE1','1.3.6.1.4.1.9.9.48.1.1.1.6.1')
  184 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.45','MEM_FREE1','1.3.6.1.4.1.2011.2.2.5.2.0')
  185 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.45','MEM_USED1','1.3.6.1.4.1.2011.2.2.5.1.0')
  186 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.45','CPU_USAGE','1.3.6.1.4.1.2011.2.2.4.12.0')
  187 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.3224.1.16','MEM_FREE','.1.3.6.1.4.1.3224.16.2.2.0')
  188 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.3224.1.16','MEM_USED','1.3.6.1.4.1.3224.16.2.1.0')
  189 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.3224.1.16','CPU_USAGE','1.3.6.1.4.1.3224.16.1.1.0')
  190 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.3224.1.9','MEM_FREE','.1.3.6.1.4.1.3224.16.2.2.0')
  191 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.3224.1.9','MEM_USED','1.3.6.1.4.1.3224.16.2.1.0')
  192 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.3224.1.9','CPU_USAGE','1.3.6.1.4.1.3224.16.1.1.0')
  193 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.914','MEM_USED1','1.3.6.1.4.1.9.9.48.1.1.1.5.1')
  194 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.914','MEM_USED2','1.3.6.1.4.1.9.9.48.1.1.1.5.6')
  195 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.914','MEM_USED3','1.3.6.1.4.1.9.9.48.1.1.1.5.7')
  196 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.914','MEM_USED4','1.3.6.1.4.1.9.9.48.1.1.1.5.8')
  197 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.914','MEM_FREE1','1.3.6.1.4.1.9.9.48.1.1.1.6.1')
  198 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.914','MEM_FREE2','1.3.6.1.4.1.9.9.48.1.1.1.6.6')
  199 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.914','MEM_FREE3','1.3.6.1.4.1.9.9.48.1.1.1.6.7')
  200 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.914','MEM_FREE4','1.3.6.1.4.1.9.9.48.1.1.1.6.8')
  201 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.914','CPU_USAGE1','1.3.6.1.4.1.9.9.109.1.1.1.1.4.1')
  202 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.914','CPU_USAGE2','1.3.6.1.4.1.9.9.109.1.1.1.1.4.2')
  203 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.914','CPU_USAGE3','1.3.6.1.4.1.9.9.109.1.1.1.1.4.3')
  204 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.914','CPU_USAGE4','1.3.6.1.4.1.9.9.109.1.1.1.1.4.4')
  205 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.914','CPU_USAGE5','1.3.6.1.4.1.9.9.109.1.1.1.1.4.5')
  206 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.914','CPU_USAGE6','1.3.6.1.4.1.9.9.109.1.1.1.1.4.6')
  207 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.1198','MEM_USED1','1.3.6.1.4.1.9.9.48.1.1.1.5.1')
  208 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.1198','MEM_USED2','1.3.6.1.4.1.9.9.48.1.1.1.5.6')
  209 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.1198','MEM_USED3','1.3.6.1.4.1.9.9.48.1.1.1.5.7')
  210 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.1198','MEM_FREE1','1.3.6.1.4.1.9.9.48.1.1.1.6.1')
  211 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.1198','MEM_FREE2','1.3.6.1.4.1.9.9.48.1.1.1.6.6')
  212 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.1198','MEM_FREE3','1.3.6.1.4.1.9.9.48.1.1.1.6.7')
  213 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.1198','CPU_USAGE1','1.3.6.1.4.1.9.9.109.1.1.1.1.4.1')
  214 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.1198','CPU_USAGE5','1.3.6.1.4.1.9.9.109.1.1.1.1.4.5')
  215 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.1198','CPU_USAGE6','1.3.6.1.4.1.9.9.109.1.1.1.1.4.6')
  216 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.3375.2.1.3.4.6','MEM_TOTAL','.1.3.6.1.4.1.2021.4.5.0')
  217 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.3375.2.1.3.4.6','MEM_FREE','.1.3.6.1.4.1.2021.4.6.0')
  218 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.3375.2.1.3.4.6','CPU_SYSTEM','.1.3.6.1.4.1.2021.11.10.0')
  219 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.3375.2.1.3.4.6','CPU_USER','.1.3.6.1.4.1.2021.11.9.0')
  220 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.170.3','MEM_FREE','WALK:1.3.6.1.4.1.2011.6.3.5.1.1.3.0')
  221 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.170.3','MEM_TOTAL','WALK:1.3.6.1.4.1.2011.6.3.5.1.1.2.0')
  222 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.170.3','CPU_USAGE','WALK:1.3.6.1.4.1.2011.6.3.4.1.2.0')
  223 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.170.1','MEM_FREE','WALK:1.3.6.1.4.1.2011.6.3.5.1.1.3.0')
  224 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.170.1','MEM_TOTAL','WALK:1.3.6.1.4.1.2011.6.3.5.1.1.2.0')
  225 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.170.1','CPU_USAGE','WALK:1.3.6.1.4.1.2011.6.3.4.1.2.0')
  226 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.170.2','MEM_FREE','WALK:1.3.6.1.4.1.2011.6.3.5.1.1.3.0')
  227 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.170.2','MEM_TOTAL','WALK:1.3.6.1.4.1.2011.6.3.5.1.1.2.0')
  228 +INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.170.2','CPU_USAGE','WALK:1.3.6.1.4.1.2011.6.3.4.1.2.0')
210 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.310','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0') 229 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.310','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0')
211 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.310','MEM_FREE','WALK:1.3.6.1.4.1.9.9.48.1.1.1.6') 230 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.310','MEM_FREE','WALK:1.3.6.1.4.1.9.9.48.1.1.1.6')
212 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.310','MEM_USED','WALK:1.3.6.1.4.1.9.9.48.1.1.1.5') 231 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.310','MEM_USED','WALK:1.3.6.1.4.1.9.9.48.1.1.1.5')
213 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.310','Double.parseDouble(CPU_USAGE)')  
214 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.310','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))*100')  
215 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.400','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0') 232 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.400','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0')
216 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.400','MEM_FREE','WALK:1.3.6.1.4.1.9.9.48.1.1.1.6') 233 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.400','MEM_FREE','WALK:1.3.6.1.4.1.9.9.48.1.1.1.6')
217 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.400','MEM_USED','WALK:1.3.6.1.4.1.9.9.48.1.1.1.5') 234 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.400','MEM_USED','WALK:1.3.6.1.4.1.9.9.48.1.1.1.5')
218 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.400','Double.parseDouble(CPU_USAGE)')  
219 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.400','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))*100')  
220 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.283','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0') 235 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.283','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0')
221 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.283','MEM_FREE','WALK:1.3.6.1.4.1.9.9.48.1.1.1.6') 236 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.283','MEM_FREE','WALK:1.3.6.1.4.1.9.9.48.1.1.1.6')
222 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.283','MEM_USED','WALK:1.3.6.1.4.1.9.9.48.1.1.1.5') 237 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.283','MEM_USED','WALK:1.3.6.1.4.1.9.9.48.1.1.1.5')
223 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.283','Double.parseDouble(CPU_USAGE)')  
224 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.283','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))*100')  
225 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.501','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0') 238 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.501','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0')
226 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.501','MEM_FREE','WALK:1.3.6.1.4.1.9.9.48.1.1.1.6') 239 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.501','MEM_FREE','WALK:1.3.6.1.4.1.9.9.48.1.1.1.6')
227 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.501','MEM_USED','WALK:1.3.6.1.4.1.9.9.48.1.1.1.5') 240 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.501','MEM_USED','WALK:1.3.6.1.4.1.9.9.48.1.1.1.5')
228 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.23.98','CPU_USAGE','WALK:1.3.6.1.4.1.2011.6.3.4.1.2') 241 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.23.98','CPU_USAGE','WALK:1.3.6.1.4.1.2011.6.3.4.1.2')
229 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.23.98','MEM_FREE','WALK:1.3.6.1.4.1.2011.6.3.5.1.1.3') 242 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.23.98','MEM_FREE','WALK:1.3.6.1.4.1.2011.6.3.5.1.1.3')
230 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.23.98','MEM_TOTAL','WALK:1.3.6.1.4.1.2011.6.3.5.1.1.2') 243 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.23.98','MEM_TOTAL','WALK:1.3.6.1.4.1.2011.6.3.5.1.1.2')
231 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.501','Double.parseDouble(CPU_USAGE)')  
232 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.501','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))*100')  
233 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.925','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0') 244 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.925','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0')
234 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.925','MEM_FREE','WALK:1.3.6.1.4.1.9.9.48.1.1.1.6') 245 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.925','MEM_FREE','WALK:1.3.6.1.4.1.9.9.48.1.1.1.6')
235 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.925','MEM_USED','WALK:1.3.6.1.4.1.9.9.48.1.1.1.5') 246 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.925','MEM_USED','WALK:1.3.6.1.4.1.9.9.48.1.1.1.5')
236 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.925','Double.parseDouble(CPU_USAGE)')  
237 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.925','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))*100')  
238 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.25506.1.391','CPU_USAGE','WALK:1.3.6.1.4.1.25506.2.6.1.1.1.1.6') 247 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.25506.1.391','CPU_USAGE','WALK:1.3.6.1.4.1.25506.2.6.1.1.1.1.6')
239 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.25506.1.391','MEM_USED','WALK:1.3.6.1.4.1.25506.2.6.1.1.1.1.8') 248 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.25506.1.391','MEM_USED','WALK:1.3.6.1.4.1.25506.2.6.1.1.1.1.8')
240 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.25506.1.391','MEM_TOTAL','WALK:1.3.6.1.4.1.25506.2.6.1.1.1.1.10') 249 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.25506.1.391','MEM_TOTAL','WALK:1.3.6.1.4.1.25506.2.6.1.1.1.1.10')
241 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.25506.1.391','Double.parseDouble(CPU_USAGE)')  
242 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.25506.1.391','Double.parseDouble(MEM_USED)/Double.parseDouble(MEM_TOTAL)*100')INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.25506.1.391','MEM_USED','WALK:1.3.6.1.4.1.25506.2.6.1.1.1.1.8')  
243 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.23.39','CPU_USAGE','WALK:1.3.6.1.4.1.2011.6.7.1.2') 250 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.23.39','CPU_USAGE','WALK:1.3.6.1.4.1.2011.6.7.1.2')
244 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.23.39','MEM_USAGE','WALK:1.3.6.1.4.1.2011.6.1.1.1.2') 251 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.2011.2.23.39','MEM_USAGE','WALK:1.3.6.1.4.1.2011.6.1.1.1.2')
245 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.2011.2.23.39','Double.parseDouble(CPU_USAGE)')  
246 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.2011.2.23.39','Double.parseDouble(MEM_USAGE)')  
247 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.9.1.968','Double.parseDouble(CPU_USAGE)')  
248 -INSERT INTO TB_CFG_SNMP_PRI_KPI_CONVERT VALUES('PM-00-02-001-07','1.3.6.1.4.1.9.1.968','Double.parseDouble(MEM_USED)/(Double.parseDouble(MEM_USED)+Double.parseDouble(MEM_FREE))*100')  
249 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.968','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0') 252 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.968','CPU_USAGE','1.3.6.1.4.1.9.2.1.57.0')
250 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.968','MEM_FREE','WALK:1.3.6.1.4.1.9.9.48.1.1.1.6') 253 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.968','MEM_FREE','WALK:1.3.6.1.4.1.9.9.48.1.1.1.6')
251 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.968','MEM_USED','WALK:1.3.6.1.4.1.9.9.48.1.1.1.5') 254 INSERT INTO TB_CFG_SNMP_PRI_OID VALUES('1.3.6.1.4.1.9.1.968','MEM_USED','WALK:1.3.6.1.4.1.9.9.48.1.1.1.5')
No preview for this file type
  1 +<?xml version="1.0" encoding="UTF-8" ?>
  2 +
  3 +<!DOCTYPE sqlMap
  4 + PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
  5 + "http://www.ibatis.com/dtd/sql-map-2.dtd">
  6 +
  7 +<sqlMap namespace="TB_DOWNTIME_HOST">
  8 + <typeAlias alias="downtimeBean" type="com.sitech.ismp.check.downtime.DowntimeBean" />
  9 +
  10 + <select id="getDowntimeByIp" resultClass="downtimeBean" parameterClass="java.util.HashMap">
  11 + SELECT
  12 + DEVICE_ID,
  13 + DEVICE_IP,
  14 + DEVICE_ALIAS,
  15 + KBP_CLASS,
  16 + PROTOCOL,
  17 + PROTOCOL_PORT,
  18 + USER_NAME,
  19 + PASSWORD,
  20 + CREATE_DATE
  21 + FROM TB_DOWNTIME_HOST
  22 + <isNotEmpty property="DEVICE_IP">
  23 + WHERE DEVICE_IP IN #DEVICE_IP#
  24 + </isNotEmpty>
  25 +
  26 + </select>
  27 +
  28 + <insert id="addDowntimeHost" parameterClass="downtimeBean">
  29 + INSERT INTO TB_DOWNTIME_HOST (
  30 + DEVICE_ID,
  31 + DEVICE_IP,
  32 + DEVICE_ALIAS,
  33 + KBP_CLASS,
  34 + PROTOCOL,
  35 + PROTOCOL_PORT,
  36 + USER_NAME,
  37 + PASSWORD,
  38 + CREATE_DATE)
  39 + VALUES (
  40 + #DEVICE_ID#,
  41 + #DEVICE_IP#,
  42 + #DEVICE_ALIAS#,
  43 + #KBP_CLASS#,
  44 + #PROTOCOL#,
  45 + #PROTOCOL_PORT#,
  46 + #USER_NAME#,
  47 + #PASSWORD#,
  48 + #CREATE_DATE#);
  49 + </insert>
  50 +
  51 +
  52 + <delete id="deleteDowntimeHostByIp" parameterClass="java.lang.String">
  53 + DELETE FROM TB_DOWNTIME_HOST WHERE DEVICE_IP=#ip#
  54 + </delete>
  55 +
  56 + <update id="updateDowntimeHostByIp" parameterClass="downtimeBean">
  57 + UPDATE TB_DOWNTIME_HOST SET
  58 + <isNotEmpty property="PROTOCOL_PORT">
  59 + PROTOCOL_PORT = #PROTOCOL_PORT#,
  60 + </isNotEmpty>
  61 + <isNotEmpty property="USER_NAME">
  62 + USER_NAME = #USER_NAME#,
  63 + </isNotEmpty>
  64 + <isNotEmpty property="PASSWORD">
  65 + PASSWORD = #PASSWORD#,
  66 + </isNotEmpty>
  67 + DEVICE_ALIAS = #DEVICE_ALIAS#
  68 + WHERE DEVICE_IP = #DEVICE_IP#
  69 + </update>
  70 +
  71 +</sqlMap>
  1 +<?xml version="1.0" encoding="UTF-8" ?>
  2 +
  3 +<!DOCTYPE sqlMap
  4 + PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
  5 + "http://www.ibatis.com/dtd/sql-map-2.dtd">
  6 +
  7 +<sqlMap namespace="TB_DOWNTIME_HOST_HISTORY">
  8 + <typeAlias alias="downtimeHistoryBean" type="com.sitech.ismp.check.downtime.DowntimeHistoryBean" />
  9 +
  10 + <select id="getDowntimeHistoryByIp" resultClass="downtimeHistoryBean" parameterClass="java.util.HashMap">
  11 + SELECT
  12 + DEVICE_ID,DEVICE_IP,CREATE_DATE FROM
  13 + TB_DOWNTIME_HOST_HISTORY
  14 + WHERE DEVICE_IP = #DEVICE_IP# AND CREATE_DATE= #CREATE_DATE#
  15 +
  16 + </select>
  17 +
  18 + <insert id="addDowntimeHistory" parameterClass="downtimeHistoryBean">
  19 + INSERT INTO TB_DOWNTIME_HOST_HISTORY (
  20 + DEVICE_ID, DEVICE_IP, CREATE_DATE)
  21 + VALUES (#DEVICE_ID#, #DEVICE_IP#, #CREATE_DATE#);
  22 + </insert>
  23 +
  24 +
  25 + <delete id="deleteDowntimeHistory" parameterClass="java.lang.String">
  26 + DELETE FROM TB_DOWNTIME_HOST_HISTORY
  27 + </delete>
  28 +
  29 +</sqlMap>
  1 +<?xml version="1.0" encoding="UTF-8" ?>
  2 +
  3 +<!DOCTYPE sqlMap
  4 + PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
  5 + "http://www.ibatis.com/dtd/sql-map-2.dtd">
  6 +
  7 +<sqlMap namespace="TB_TOPO_PHYSICAL_DEVICE">
  8 + <typeAlias alias="tbTopoPhysicalDevice" type="com.sitech.snmptrap.TbTopoPhysicalDeviceBean" />
  9 +
  10 + <select id="queryTbTopoPhysicalDevice" resultClass="tbTopoPhysicalDevice" parameterClass="java.util.HashMap">
  11 + SELECT
  12 + DEVICE_ID,
  13 + DEVICE_IP,
  14 + DEVICE_ALIAS,
  15 + DEVICE_CATALOG,
  16 + DEVICE_CNAME,
  17 + KBP_CLASS,
  18 + DEVICE_DESC,
  19 + DEVICE_ROOM,
  20 + DEVICE_RACK,
  21 + CREATE_DATE
  22 + FROM TB_TOPO_PHYSICAL_DEVICE
  23 + <isNotEmpty property="DEVICE_IP">
  24 + WHERE DEVICE_IP IN #DEVICE_IP#
  25 + </isNotEmpty>
  26 +
  27 + </select>
  28 +
  29 + <insert id="addTbTopoPhysicalDevice" parameterClass="tbTopoPhysicalDevice">
  30 + INSERT INTO TB_TOPO_PHYSICAL_DEVICE (
  31 + DEVICE_ID,
  32 + DEVICE_IP,
  33 + DEVICE_ALIAS,
  34 + DEVICE_CATALOG,
  35 + DEVICE_CNAME,
  36 + KBP_CLASS,
  37 + DEVICE_DESC,
  38 + DEVICE_ROOM,
  39 + DEVICE_RACK,
  40 + CREATE_DATE)
  41 + VALUES (
  42 + #DEVICE_ID#,
  43 + #DEVICE_IP#,
  44 + #DEVICE_ALIAS#,
  45 + #DEVICE_CATALOG#,
  46 + #DEVICE_CNAME#,
  47 + #KBP_CLASS#,
  48 + #DEVICE_DESC#,
  49 + #DEVICE_ROOM#,
  50 + #DEVICE_RACK#,
  51 + #CREATE_DATE#);
  52 +
  53 + </insert>
  54 +
  55 +
  56 + <delete id="deleteTbTopoPhysicalDevice" parameterClass="java.lang.String">
  57 + delete from TB_TOPO_PHYSICAL_DEVICE WHERE DEVICE_ID=#deviceId#
  58 + </delete>
  59 + <delete id="deletePhysicalDeviceByIp" parameterClass="java.lang.String">
  60 + delete from TB_TOPO_PHYSICAL_DEVICE where DEVICE_IP=#ip#
  61 + </delete>
  62 +
  63 + <update id="updateTbTopoPhysicalDevice" parameterClass="tbTopoPhysicalDevice">
  64 + UPDATE TB_TOPO_PHYSICAL_DEVICE SET
  65 + <isNotEmpty property="DEVICE_DESC">
  66 + DEVICE_DESC = #DEVICE_DESC#,
  67 + </isNotEmpty>
  68 + <isNotEmpty property="DEVICE_ROOM">
  69 + DEVICE_ROOM = #DEVICE_ROOM#,
  70 + </isNotEmpty>
  71 + <isNotEmpty property="DEVICE_RACK">
  72 + DEVICE_RACK = #DEVICE_RACK#,
  73 + </isNotEmpty>
  74 + DEVICE_ALIAS = #DEVICE_ALIAS#,
  75 + DEVICE_CNAME = #DEVICE_CNAME#
  76 + WHERE DEVICE_IP = #DEVICE_IP#
  77 + </update>
  78 +
  79 +</sqlMap>
  1 +package com.sitech.ismp.check.downtime;
  2 +
  3 +import java.io.Serializable;
  4 +import java.util.Date;
  5 +
  6 +/**
  7 + * @author frank zmm@honggroup.com.cn
  8 + * @Description: 宕机表对应的bean。
  9 + * @Package com.sitech.ismp.check.downtime
  10 + * @ClassName: com.sitech.ismp.check.downtime.DowntimeBean
  11 + * @date 2017年04月16日 13:30
  12 + */
  13 +public class DowntimeBean implements Serializable{
  14 +
  15 + // 设备ID
  16 + private String DEVICE_ID;
  17 + // 设备IP地址
  18 + private String DEVICE_IP;
  19 + // 设备别名
  20 + private String DEVICE_ALIAS;
  21 + // kbp_class 设备的分类
  22 + private String KBP_CLASS;
  23 + // 连接协议(ssh/telnet)
  24 + private String PROTOCOL;
  25 + // 协议端口
  26 + private int PROTOCOL_PORT;
  27 + // 用户名
  28 + private String USER_NAME;
  29 + // 密码
  30 + private String PASSWORD;
  31 + // 创建日期
  32 + private Date CREATE_DATE;
  33 + // ping IP 后的结果
  34 + private boolean pingState;
  35 + // ping后进行ssh连接后的状态。
  36 + private boolean sshState;
  37 + // 告警级别 1 严重告警;2 重要告警
  38 + private int warningLevel;
  39 + // ping后进行ssh连接后的结果,即重要告警还是严重告警。
  40 + private String warningResult;
  41 +
  42 + private String unitId;
  43 +
  44 + public String getDEVICE_ID() {
  45 + return DEVICE_ID;
  46 + }
  47 +
  48 + public void setDEVICE_ID(String DEVICE_ID) {
  49 + this.DEVICE_ID = DEVICE_ID;
  50 + }
  51 +
  52 + public String getDEVICE_IP() {
  53 + return DEVICE_IP;
  54 + }
  55 +
  56 + public void setDEVICE_IP(String DEVICE_IP) {
  57 + this.DEVICE_IP = DEVICE_IP;
  58 + }
  59 +
  60 + public String getDEVICE_ALIAS() {
  61 + return DEVICE_ALIAS;
  62 + }
  63 +
  64 + public void setDEVICE_ALIAS(String DEVICE_ALIAS) {
  65 + this.DEVICE_ALIAS = DEVICE_ALIAS;
  66 + }
  67 +
  68 + public String getKBP_CLASS() {
  69 + return KBP_CLASS;
  70 + }
  71 +
  72 + public void setKBP_CLASS(String KBP_CLASS) {
  73 + this.KBP_CLASS = KBP_CLASS;
  74 + }
  75 +
  76 + public String getPROTOCOL() {
  77 + return PROTOCOL;
  78 + }
  79 +
  80 + public void setPROTOCOL(String PROTOCOL) {
  81 + this.PROTOCOL = PROTOCOL;
  82 + }
  83 +
  84 + public int getPROTOCOL_PORT() {
  85 + return PROTOCOL_PORT;
  86 + }
  87 +
  88 + public void setPROTOCOL_PORT(int PROTOCOL_PORT) {
  89 + this.PROTOCOL_PORT = PROTOCOL_PORT;
  90 + }
  91 +
  92 + public String getUSER_NAME() {
  93 + return USER_NAME;
  94 + }
  95 +
  96 + public void setUSER_NAME(String USER_NAME) {
  97 + this.USER_NAME = USER_NAME;
  98 + }
  99 +
  100 + public String getPASSWORD() {
  101 + return PASSWORD;
  102 + }
  103 +
  104 + public void setPASSWORD(String PASSWORD) {
  105 + this.PASSWORD = PASSWORD;
  106 + }
  107 +
  108 + public Date getCREATE_DATE() {
  109 + return CREATE_DATE;
  110 + }
  111 +
  112 + public void setCREATE_DATE(Date CREATE_DATE) {
  113 + this.CREATE_DATE = CREATE_DATE;
  114 + }
  115 +
  116 + public boolean isPingState() {
  117 + return pingState;
  118 + }
  119 +
  120 + public void setPingState(boolean pingState) {
  121 + this.pingState = pingState;
  122 + }
  123 +
  124 + public boolean isSshState() {
  125 + return sshState;
  126 + }
  127 +
  128 + public void setSshState(boolean sshState) {
  129 + this.sshState = sshState;
  130 + }
  131 +
  132 + public String getWarningResult() {
  133 + return warningResult;
  134 + }
  135 +
  136 + public void setWarningResult(String warningResult) {
  137 + this.warningResult = warningResult;
  138 + }
  139 +
  140 + public int getWarningLevel() {
  141 + return warningLevel;
  142 + }
  143 +
  144 + public void setWarningLevel(int warningLevel) {
  145 + this.warningLevel = warningLevel;
  146 + }
  147 +
  148 + public String getUnitId() {
  149 + return unitId;
  150 + }
  151 +
  152 + public void setUnitId(String unitId) {
  153 + this.unitId = unitId;
  154 + }
  155 +
  156 + @Override
  157 + public String toString() {
  158 + return "DowntimeBean{" +
  159 + " DEVICE_IP='" + DEVICE_IP + '\'' +
  160 + ", pingState=" + pingState +
  161 + ", sshState=" + sshState +
  162 + ", warningResult='" + warningResult + '\'' +
  163 + ", DEVICE_ALIAS='" + DEVICE_ALIAS + '\'' +
  164 + ", USER_NAME='" + USER_NAME + '\'' +
  165 + ", warningLevel=" + warningLevel +
  166 + '}';
  167 + }
  168 +
  169 +}
  1 +package com.sitech.ismp.check.downtime;
  2 +
  3 +import com.sitech.ismp.coll.basic.TblATO_KPIDETAIL;
  4 +import org.apache.log4j.Logger;
  5 +
  6 +import java.text.SimpleDateFormat;
  7 +import java.util.*;
  8 +
  9 +/**
  10 + * @author frank zmm@honggroup.com.cn
  11 + * @Description: 宕机检测MBean实现类
  12 + * @Package com.sitech.ismp.check.downtime
  13 + * @ClassName: com.sitech.ismp.check.downtime.Downtime
  14 + * @date 2017年04月15日 13:43
  15 + */
  16 +public class Downtime implements DowntimeMBean {
  17 +
  18 + private static Logger log= Logger.getLogger(Downtime.class);
  19 +
  20 +
  21 + DowntimeDao dao=new DowntimeDao();
  22 + DowntimeHistoryDao historyDao=new DowntimeHistoryDao();
  23 + SimpleDateFormat formaF=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  24 +
  25 + /**
  26 + * 检查主机的连接状态。如果连接异常,需要每隔30秒连续连接3次,如果3次连接都异常,则视为主机宕机,发送严重告警。
  27 + * 1 将需要监控的设备添加到内存数据库中。
  28 + * 2 对表中的主机进行ping操作。
  29 + * 3 对表中的主机进行SSH登录认证
  30 + * 4 发送告警信息
  31 + * @param params
  32 + * @return
  33 + */
  34 + @Override
  35 + public Vector<TblATO_KPIDETAIL> checkConnectState(HashMap<String,String> params){
  36 + dao.addDowntimeHost(params);
  37 + String ipAddr=params.get("DEVICE_IP");
  38 + boolean flag=isNeedExecuteCheckMethod(ipAddr);
  39 + if(flag){
  40 + log.info("*************"+ formaF.format(new Date()) +" execute method checkConnectState .................");
  41 + // 将需要监控的设备添加到内存数据库中。
  42 + DowntimeBean bean=dao.map2DowntimeBean(params);
  43 + DowntimeServer server=new DowntimeServer(bean);
  44 + // 包括 2-4 需要执行的内容。 如果监控的设备很多的时候,使用单线程可能一个监控周期都不能ping完所有的主机。
  45 + server.run();
  46 + log.info("@@@@@@@@@@@@@@@@@@@@@@***** finish run method *****@@@@@@@@@@@@@@@@@@@@@@@@@@@");
  47 + log.info(bean.toString());
  48 + }
  49 + Vector<TblATO_KPIDETAIL> bean = new Vector<TblATO_KPIDETAIL>();
  50 + return bean;
  51 + }
  52 +
  53 +
  54 +
  55 + /**
  56 + * 是否执行checkConnectState 方法。
  57 + * 判断当前IP是否发送过告警信息。每天一个主机只发送1条告警信息。
  58 + * @return
  59 + */
  60 + private boolean isNeedExecuteCheckMethod(String ipAddr){
  61 + boolean flag=true; // 是否该ipAddr已经发送过消息。
  62 + SimpleDateFormat formaF=new SimpleDateFormat("yyyy-MM-dd");
  63 + String currentDay=formaF.format(new Date());
  64 + List<DowntimeHistoryBean> list=historyDao.getDowntimeHistoryByIp(ipAddr,currentDay);
  65 + if(null !=list && list.size()>0){
  66 + flag=false;
  67 + }
  68 + return flag;
  69 + }
  70 +
  71 +
  72 +}
  1 +package com.sitech.ismp.check.downtime;
  2 +
  3 +import com.sitech.database.dao.BaseDao;
  4 +import org.apache.log4j.Logger;
  5 +
  6 +import java.sql.SQLException;
  7 +import java.util.*;
  8 +
  9 +/**
  10 + * @author frank zmm@honggroup.com.cn
  11 + * @Description: 宕机检测MBean对应dao类
  12 + * @Package com.sitech.ismp.check.downtime
  13 + * @ClassName: com.sitech.ismp.check.downtime.DowntimeDao
  14 + * @date 2017年04月16日 14:15
  15 + */
  16 +public class DowntimeDao extends BaseDao {
  17 +
  18 + private static Logger log=Logger.getLogger(DowntimeDao.class);
  19 +
  20 + /**
  21 + * 添加需要监控宕机情况的设备,如果该设备已经存在,则修改。
  22 + */
  23 + public void addDowntimeHost(HashMap<String,String> params){
  24 + DowntimeBean downtimeBean=map2DowntimeBean(params);
  25 + addDowntimeHost(downtimeBean);
  26 + }
  27 +
  28 + public void addDowntimeHost(DowntimeBean downtimeBean){
  29 + try {
  30 + int updateSum = sqlmapClient.update("updateDowntimeHostByIp",downtimeBean);
  31 + if(updateSum == 0){
  32 + sqlmapClient.insert("addDowntimeHost", downtimeBean);
  33 + }
  34 + } catch (Exception e) {
  35 + error.error("Exception while addDowntimeHost.", e);
  36 + }
  37 + }
  38 +
  39 +
  40 + /**
  41 + * 根据IP删除对应的记录。
  42 + * @param ip
  43 + * @return
  44 + */
  45 + public int deleteDowntimeHostByIp(String ip){
  46 + try {
  47 + return sqlmapClient.delete("deleteDowntimeHostByIp", ip);
  48 + } catch (Exception e) {
  49 + error.error("Exception while deleteDowntimeHostByIp.", e);
  50 + }
  51 + return -1;
  52 + }
  53 +
  54 + /**
  55 + * 根据IP查询对应的记录。
  56 + * @param deviceIp
  57 + * @return
  58 + */
  59 + public List<DowntimeBean> getDowntimeByIp(String deviceIp){
  60 + HashMap<String,String> param=new HashMap<String, String>();
  61 + param.put("DEVICE_IP",deviceIp);
  62 + List<DowntimeBean> beanList=new ArrayList<DowntimeBean>();
  63 + try {
  64 + beanList=sqlmapClient.queryForList("getDowntimeByIp", param);
  65 + } catch (SQLException e) {
  66 + e.printStackTrace();
  67 + }
  68 + return beanList;
  69 + }
  70 +
  71 + public DowntimeBean map2DowntimeBean(HashMap<String,String> params){
  72 + DowntimeBean bean=new DowntimeBean();
  73 + try {
  74 + bean.setDEVICE_ID(UUID.randomUUID().toString());
  75 + bean.setDEVICE_IP(params.get("DEVICE_IP"));
  76 + bean.setDEVICE_ALIAS(params.get("DEVICE_ALIAS"));
  77 + bean.setKBP_CLASS(params.get("KBP_CLASS") + "-99");
  78 + bean.setPROTOCOL(params.get("PROTOCOL"));
  79 + bean.setPROTOCOL_PORT(Integer.parseInt(params.get("PROTOCOL_PORT")));
  80 + bean.setUSER_NAME(params.get("USER_NAME"));
  81 + bean.setPASSWORD(params.get("PASSWORD"));
  82 + bean.setCREATE_DATE(new Date());
  83 + }catch (Exception e){
  84 + log.error("addDowntimeHost, write values to DowntimeBean has error!",e);
  85 + }
  86 + return bean;
  87 + }
  88 +
  89 +}
  1 +package com.sitech.ismp.check.downtime;
  2 +
  3 +/**
  4 + * @author frank zmm@honggroup.com.cn
  5 + * @Description: 发送告警的历史记录bean。
  6 + * @Package com.sitech.ismp.check.downtime
  7 + * @ClassName: com.sitech.ismp.check.downtime.DowntimeHistoryBean
  8 + * @date 2017年04月19日 14:04
  9 + */
  10 +public class DowntimeHistoryBean {
  11 + // 设备ID
  12 + private String DEVICE_ID;
  13 + // 设备IP地址
  14 + private String DEVICE_IP;
  15 + // 创建日期
  16 + private String CREATE_DATE;
  17 +
  18 + public String getDEVICE_ID() {
  19 + return DEVICE_ID;
  20 + }
  21 +
  22 + public void setDEVICE_ID(String DEVICE_ID) {
  23 + this.DEVICE_ID = DEVICE_ID;
  24 + }
  25 +
  26 + public String getDEVICE_IP() {
  27 + return DEVICE_IP;
  28 + }
  29 +
  30 + public void setDEVICE_IP(String DEVICE_IP) {
  31 + this.DEVICE_IP = DEVICE_IP;
  32 + }
  33 +
  34 + public String getCREATE_DATE() {
  35 + return CREATE_DATE;
  36 + }
  37 +
  38 + public void setCREATE_DATE(String CREATE_DATE) {
  39 + this.CREATE_DATE = CREATE_DATE;
  40 + }
  41 +
  42 + @Override
  43 + public String toString() {
  44 + return "DowntimeHistoryBean{" +
  45 + "DEVICE_ID='" + DEVICE_ID + '\'' +
  46 + ", DEVICE_IP='" + DEVICE_IP + '\'' +
  47 + ", CREATE_DATE='" + CREATE_DATE + '\'' +
  48 + '}';
  49 + }
  50 +}
  1 +package com.sitech.ismp.check.downtime;
  2 +
  3 +import com.sitech.database.dao.BaseDao;
  4 +import org.apache.log4j.Logger;
  5 +
  6 +import java.sql.SQLException;
  7 +import java.util.ArrayList;
  8 +import java.util.HashMap;
  9 +import java.util.List;
  10 +
  11 +/**
  12 + * @author frank zmm@honggroup.com.cn
  13 + * @Description: 告警历史dao
  14 + * @Package com.sitech.ismp.check.downtime
  15 + * @ClassName: com.sitech.ismp.check.downtime.DowntimeHistoryDao
  16 + * @date 2017年04月19日 14:06
  17 + */
  18 +public class DowntimeHistoryDao extends BaseDao {
  19 + private static Logger log=Logger.getLogger(DowntimeHistoryDao.class);
  20 +
  21 + /**
  22 + * 添加告警信息
  23 + * @param bean
  24 + */
  25 + public void addDowntimeHistory(DowntimeHistoryBean bean){
  26 + try {
  27 + sqlmapClient.insert("addDowntimeHistory", bean);
  28 + } catch (SQLException e) {
  29 + log.error("Exception while addDowntimeHistory.",e);
  30 + }
  31 + }
  32 +
  33 + /**
  34 + *
  35 + * @param deviceIp
  36 + * @param createDate
  37 + * @return
  38 + */
  39 + public List<DowntimeHistoryBean> getDowntimeHistoryByIp(String deviceIp,String createDate){
  40 + HashMap<String,String> param=new HashMap<String, String>();
  41 + param.put("DEVICE_IP",deviceIp);
  42 + param.put("CREATE_DATE",createDate);
  43 + List<DowntimeHistoryBean> beanList=new ArrayList<DowntimeHistoryBean>();
  44 + try {
  45 + beanList=sqlmapClient.queryForList("getDowntimeHistoryByIp", param);
  46 + } catch (SQLException e) {
  47 + e.printStackTrace();
  48 + }
  49 + return beanList;
  50 + }
  51 +
  52 + /**
  53 + * 删除表中的所有数据。
  54 + * @return
  55 + */
  56 + public int deleteDowntimeHistory(){
  57 + try {
  58 + return sqlmapClient.delete("deleteDowntimeHistory", null);
  59 + } catch (Exception e) {
  60 + error.error("Exception while deleteDowntimeHistory.", e);
  61 + }
  62 + return -1;
  63 + }
  64 +
  65 +}
  1 +package com.sitech.ismp.check.downtime;
  2 +
  3 +import com.sitech.ismp.coll.basic.TblATO_KPIDETAIL;
  4 +
  5 +import java.util.HashMap;
  6 +import java.util.Vector;
  7 +
  8 +/**
  9 + * @author frank zmm@honggroup.com.cn
  10 + * @Description: 宕机检测MBean接口
  11 + * @Package com.sitech.ismp.check.downtime
  12 + * @ClassName: com.sitech.ismp.check.downtime.DowntimeMBean
  13 + * @date 2017年04月15日 13:42
  14 + */
  15 +public interface DowntimeMBean {
  16 + /**
  17 + * 检查主机的连接状态。如果连接异常,需要每隔30秒连续连接3次,如果3次连接都异常,则视为主机宕机,发送严重告警。
  18 + * @param params
  19 + * @return
  20 + */
  21 + public Vector<TblATO_KPIDETAIL> checkConnectState(HashMap<String,String> params);
  22 +
  23 +
  24 +}
  1 +package com.sitech.ismp.check.downtime;
  2 +
  3 +import com.sitech.ismp.app.event.KPI2Event;
  4 +import com.sitech.ismp.coll.basic.TblATO_EVENT;
  5 +import com.sitech.util.Base62Util;
  6 +import com.sitech.util.RandomGUID;
  7 +import com.sitech.util.upload.RomoteController;
  8 +import com.sitech.util.upload.SSHThread;
  9 +import com.sitech.util.upload.TelnetThread;
  10 +import org.apache.commons.lang.StringUtils;
  11 +import org.apache.log4j.Logger;
  12 +
  13 +import java.io.BufferedReader;
  14 +import java.io.IOException;
  15 +import java.io.InputStreamReader;
  16 +import java.text.ParseException;
  17 +import java.text.SimpleDateFormat;
  18 +import java.util.Date;
  19 +import java.util.Random;
  20 +
  21 +/**
  22 + * @author frank zmm@honggroup.com.cn
  23 + * @Description: 宕机检测MBean对应Server类。
  24 + * ping的布尔结果 true:能ping通, false:ping不通
  25 + * ssh连接的布尔结果 true:能ssh连接, false:ssh连接异常
  26 + * @Package com.sitech.ismp.check.downtime
  27 + * @ClassName: com.sitech.ismp.check.downtime.DowntimeServer
  28 + * @date 2017年04月12日 16:22
  29 + */
  30 +public class DowntimeServer implements Runnable{
  31 +
  32 + private static Logger log=Logger.getLogger(DowntimeServer.class);
  33 + private DowntimeBean bean;
  34 + DowntimeHistoryDao historyDao=new DowntimeHistoryDao();
  35 +
  36 + public DowntimeServer(DowntimeBean bean){
  37 + this.bean=bean;
  38 + }
  39 +
  40 + /**
  41 + * 1 对表中的主机进行ping操作。
  42 + * 2 对表中的主机进行SSH登录认证。
  43 + * 3 发送告警信息。
  44 + */
  45 + @Override
  46 + public void run(){
  47 + getPingResult(bean);
  48 + getSshResult(bean);
  49 + sendEvent2Workstation(bean);
  50 + }
  51 +
  52 + /**
  53 + * 将每个IP ping后的结果设置到pingState属性上。
  54 + * @param bean
  55 + * @return
  56 + */
  57 + public void getPingResult(DowntimeBean bean){
  58 + String ipAddr=null;
  59 + log.info("============================== ping all parames ======================");
  60 + log.info(bean.toString());
  61 + ipAddr=bean.getDEVICE_IP();
  62 + boolean temp=pingIpAddress(ipAddr);
  63 + bean.setPingState(temp);
  64 +
  65 + }
  66 +
  67 + /**
  68 + * 进行SSH连接,并设置对应告警的内容。
  69 + * @param bean
  70 + * @return
  71 + */
  72 + public void getSshResult(DowntimeBean bean){
  73 + boolean pingState=bean.isPingState(); // true:能ping通, false:ping不通
  74 + log.info("========== pingState=== "+pingState+"==========");
  75 + boolean sshState=contentWithSsh(bean);
  76 + log.info("========== sshState=== "+sshState+"==========");
  77 + if(!pingState){ // ping 不通 false
  78 + if(!sshState){ // ssh 不能连接 严重告警
  79 + bean.setWarningLevel(1);
  80 + bean.setWarningResult(bean.getDEVICE_IP()+" 的主机连接异常,请检查网络是否正常或主机宕机!");
  81 + log.info("========== bean.setWarningResult sshState ="+sshState+",=ip is ["+bean.getDEVICE_IP()+"] host connect error");
  82 + }
  83 + }else{ //能ping 通
  84 + if(!sshState){ // ssh 不能连接 重要告警
  85 + bean.setWarningLevel(2);
  86 + bean.setWarningResult(bean.getDEVICE_IP()+" 的主机不能进行登录,请检查用户名或密码!!");
  87 + log.info("========== bean.setWarningResult sshState ="+sshState+",=ip is["+bean.getDEVICE_IP()+"] host login error");
  88 + }
  89 + }
  90 + }
  91 +
  92 + /**
  93 + * 将告警信息发送到Workstation。
  94 + * 当ping的结果为false的时候才发送。
  95 + * @param bean
  96 + */
  97 + private void sendEvent2Workstation(DowntimeBean bean){
  98 + log.info("******************************************************");
  99 + log.info("*************** sendEvent2Workstation ****************");
  100 + log.info("******************************************************");
  101 + log.info(bean.toString());
  102 + if(!bean.isSshState()){
  103 + KPI2Event event=new KPI2Event();
  104 + TblATO_EVENT tblato_event = new TblATO_EVENT();
  105 + String eventId= RandomGUID.getRandomGUID();
  106 + try {
  107 + tblato_event.setEVENT_ID(eventId); // 随即生成一个GUID作为唯一键
  108 + tblato_event.setUNIT_ID(bean.getUnitId()); // UNIT_ID在页面显示的为平台类型。
  109 + tblato_event.setKPI_ID("FM-00-01-001-999");
  110 + tblato_event.setKPI_VALUE(bean.getWarningResult());
  111 + tblato_event.setEVENT_TITLE(bean.getWarningResult());
  112 + tblato_event.setEVENT_CLASS(bean.getWarningLevel()); // 告警级别
  113 + tblato_event.setCLL_TIME(new java.util.Date());
  114 + tblato_event.setGENERANT_TIME(new java.util.Date());
  115 + tblato_event.setCFG_GUID(RandomGUID.getRandomGUID());
  116 + log.info("hava finish set values to TblATO_EVENT!");
  117 + } catch (ParseException e) {
  118 + log.error("set values to TblATO_EVENT hava error!",e);
  119 + }
  120 + try {
  121 + event.sendEvent2Workstation(tblato_event);
  122 + addDowntimeHistory(bean);
  123 + log.info("have write object(TblATO_EVENT) to Workstation!");
  124 + } catch (Exception e) {
  125 + log.error("have write object(TblATO_EVENT) to Workstation have error!",e);
  126 + }
  127 + }
  128 + }
  129 +
  130 +
  131 + private void addDowntimeHistory(DowntimeBean bean){
  132 + DowntimeHistoryBean historyBean=new DowntimeHistoryBean();
  133 + historyBean.setDEVICE_ID(bean.getDEVICE_ID());
  134 + historyBean.setDEVICE_IP(bean.getDEVICE_IP());
  135 + SimpleDateFormat formaF=new SimpleDateFormat("yyyy-MM-dd");
  136 + String date=formaF.format(new Date())+"";
  137 + date=date.substring(0,10);
  138 + historyBean.setCREATE_DATE(date);
  139 + historyDao.addDowntimeHistory(historyBean);
  140 + }
  141 +
  142 +
  143 + /**
  144 + * 获取ping 后的结果,是否可以平通指定的IP。
  145 + * @param ipAddr
  146 + * @return
  147 + */
  148 + private boolean pingIpAddress(String ipAddr){
  149 + int pingErrorCount=0; // ping 不通的次数,ping3次。
  150 + int interval=8; // 时间间隔8秒。
  151 + boolean flag=false;
  152 + boolean temp=false;
  153 + for(int i=0;i<3;i++){
  154 + temp=executeCommand(ipAddr); // ping不通返回false。
  155 + log.info("["+ipAddr+"]ping result is ["+temp+"],(true:can connect;false:can't connect)");
  156 + if(!temp){
  157 + pingErrorCount++;
  158 + }
  159 + try {
  160 + Thread.sleep(interval*1000);
  161 + log.info("ping ["+ipAddr+"] trread sleep "+interval+" secound........");
  162 + } catch (InterruptedException e) {
  163 + e.printStackTrace();
  164 + }
  165 + }
  166 + if(pingErrorCount == 3){
  167 + log.info("["+ipAddr+"] can't connect 3 times.");
  168 + }else{
  169 + flag=true;
  170 + log.info("["+ipAddr+"] can connect.");
  171 + }
  172 + return flag;
  173 + }
  174 +
  175 +
  176 + /**
  177 + * 进行ssh连接,判断是否可以连接成功。
  178 + * windows操作系统使用 TelnetThread类连接。 Windows的客户端需要配置并开启Telnet相关的服务。
  179 + * @return
  180 + */
  181 + private boolean contentWithSsh(DowntimeBean bean){
  182 + String protocol=bean.getPROTOCOL();
  183 + String ipAddr=bean.getDEVICE_IP();
  184 + String deviceAlias=bean.getDEVICE_ALIAS();
  185 + int protocolPort=bean.getPROTOCOL_PORT();
  186 + String userName=bean.getUSER_NAME();
  187 + String password=bean.getPASSWORD();
  188 + bean.setUnitId(getUnitId(deviceAlias));
  189 + log.info("execute contentWithSsh method ......");
  190 + boolean temp=false;
  191 + RomoteController tt = null;
  192 + log.info("host params is: ipAddr="+ipAddr+",protocol="+protocol+",protocolPort="+protocolPort+",userName="+userName);
  193 + if(loginParamterIsOk(protocol,ipAddr,protocolPort,userName,password,deviceAlias)){
  194 + try {
  195 + if (protocol != null && protocol.equalsIgnoreCase("telnet")) {
  196 + tt = new TelnetThread(ipAddr, protocolPort, userName, password);
  197 + } else if (protocol != null && protocol.equalsIgnoreCase("ssh")) {
  198 + tt = new SSHThread(ipAddr, protocolPort, userName, password);
  199 + }else{
  200 + log.error("===================== unknown protocol =====================");
  201 + }
  202 + }catch (Exception e){
  203 + log.error(protocol+"connect have exception!");
  204 + }
  205 + tt.initial();
  206 + boolean flag=tt.isAuthorized();
  207 + log.info("******************* tt.isAuthorized() result is "+flag);
  208 + if (flag){ // 认证通过
  209 + log.info(ipAddr+" SSH connect,Authorized result is true authorized success!");
  210 + temp=true;
  211 + bean.setSshState(true);
  212 + }else{
  213 + log.info(ipAddr+" SSH connect,Authorized result is false authorized fail!!");
  214 + bean.setSshState(false);
  215 + }
  216 + }
  217 + return temp;
  218 + }
  219 +
  220 +
  221 + /**
  222 + * 判断所有的参数是否为空。
  223 + * @param protocol 协议类型
  224 + * @param ipAddr IP地址
  225 + * @param protocolPort 协议端口
  226 + * @param userName 用户名
  227 + * @param password 密码
  228 + * @param deviceAlias 主机别名
  229 + * @return
  230 + */
  231 + private boolean loginParamterIsOk(String protocol,String ipAddr,int protocolPort,String userName,
  232 + String password,String deviceAlias){
  233 + boolean flag=true;
  234 + if(StringUtils.isEmpty(protocol)){
  235 + flag=false;
  236 + }
  237 + if(StringUtils.isEmpty(ipAddr)){
  238 + flag=false;
  239 + }
  240 + if(StringUtils.isEmpty(protocolPort+"")){
  241 + flag=false;
  242 + }
  243 + if(StringUtils.isEmpty(userName)){
  244 + flag=false;
  245 + }
  246 + if(StringUtils.isEmpty(password)){
  247 + flag=false;
  248 + }
  249 + if(StringUtils.isEmpty(deviceAlias)){
  250 + flag=false;
  251 + }
  252 + return flag;
  253 + }
  254 +
  255 +
  256 + private String getUnitId(String deviceAlias){
  257 + StringBuffer bf=new StringBuffer("10-10-99-98:");
  258 + bf.append(deviceAlias).append("_").append(getEncryptStr());
  259 + return bf.toString();
  260 + }
  261 +
  262 + /**
  263 + * 返回加密后的一个唯一字符串。
  264 + * @return
  265 + */
  266 + private String getEncryptStr(){
  267 + SimpleDateFormat forma=new SimpleDateFormat("yyMMddHHmmss");
  268 + Random rr= new Random();
  269 + String str=rr.nextInt(999)+forma.format(new Date())+rr.nextInt(999);
  270 + return Base62Util.encode(Long.parseLong(str));
  271 + }
  272 +
  273 +
  274 + /**
  275 + * 返回ping后的结果。
  276 + * @param ipAddr ip 地址。
  277 + * @return
  278 + */
  279 + private boolean executeCommand(String ipAddr){
  280 + String command = "/bin/ping -c 3 -w 3 " + ipAddr;;
  281 + // 执行command 命令。
  282 + boolean flag=false;
  283 + String line = null;
  284 + StringBuilder sb = new StringBuilder();
  285 + Runtime runtime = Runtime.getRuntime();
  286 + Process process = null;
  287 + long startTime = new Date().getTime();
  288 + try {
  289 + process = runtime.exec(command);
  290 + } catch (IOException e) {
  291 + log.error("execute command ["+command+"] has some error!");
  292 + }
  293 + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
  294 + try {
  295 + while ((line = bufferedReader.readLine()) != null) {
  296 + sb.append(line + "\n");
  297 + }
  298 + } catch (IOException e) {
  299 + log.error("======== bufferedReader.readLine() has some error!");
  300 + }
  301 +
  302 + String pingResult=sb.toString();
  303 + /**
  304 + * 当执行结果出现下面字符说明已经执行完成。
  305 + * ping 通的时候 结果包含【min/avg/max/mdev】
  306 + * ping 不通的时候 结果包含【100% packet loss】
  307 + */
  308 + if(pingResult.contains("100% packet loss") || (pingResult.contains("min/avg/max/mdev"))){
  309 + process.destroy();
  310 + log.info("execute command ["+command+"] finish!");
  311 + }
  312 +
  313 +
  314 + String os = System.getProperty("os.name").toLowerCase();
  315 + log.info("------------ operator system is :" + os);
  316 +
  317 + // 解析command命令结果,包含【100% packet loss】 意味着ping不通,返回 false。
  318 + if(os.indexOf("linux") >= 0){
  319 + if (!StringUtils.isEmpty(pingResult)) {
  320 + if(!pingResult.contains("100% packet loss")){
  321 + flag = true;
  322 + }
  323 + }
  324 + }
  325 + return flag;
  326 + }
  327 +
  328 +
  329 + /**
  330 + * 添加已经发送的告警信息。
  331 + * @param bean,取出对象中的ID与IP,外加时间(年月日)
  332 + */
  333 + public void addSendedEvent(DowntimeBean bean){
  334 +
  335 + }
  336 +
  337 +}
1 package com.sitech.jmx.mbean; 1 package com.sitech.jmx.mbean;
2 2
3 -import java.util.Date;  
4 -import java.util.HashMap;  
5 -import java.util.List;  
6 -import java.util.Map;  
7 -  
8 -import org.apache.log4j.Logger;  
9 -  
10 import com.sitech.base.AgentProperties; 3 import com.sitech.base.AgentProperties;
  4 +import com.sitech.database.dao.TbAtoDynamicThresholdDao;
11 import com.sitech.database.dao.TbCfgEventDao; 5 import com.sitech.database.dao.TbCfgEventDao;
12 import com.sitech.database.dao.TbCfgOidMibDao; 6 import com.sitech.database.dao.TbCfgOidMibDao;
13 import com.sitech.database.domain.TbCfgEvent; 7 import com.sitech.database.domain.TbCfgEvent;
14 import com.sitech.database.domain.TbCfgOidMib; 8 import com.sitech.database.domain.TbCfgOidMib;
  9 +import com.sitech.ismp.check.downtime.DowntimeDao;
15 import com.sitech.ismp.coll.cron.CronConstants; 10 import com.sitech.ismp.coll.cron.CronConstants;
16 -import com.sitech.ismp.messageObject.AgentSyncObject;  
17 -import com.sitech.ismp.messageObject.AlarmEventConfig;  
18 -import com.sitech.ismp.messageObject.AlarmEventConfigSyncObject;  
19 -import com.sitech.ismp.messageObject.MibConfig;  
20 -import com.sitech.ismp.messageObject.MibConfigSyncObject;  
21 -import com.sitech.ismp.messageObject.ScheduleLog; 11 +import com.sitech.ismp.messageObject.*;
22 import com.sitech.jmx.manage.CollScheduleManager; 12 import com.sitech.jmx.manage.CollScheduleManager;
23 import com.sitech.jmx.manage.MBeanManager; 13 import com.sitech.jmx.manage.MBeanManager;
24 import com.sitech.schedule.ScheduleCache; 14 import com.sitech.schedule.ScheduleCache;
25 import com.sitech.schedule.Scheduler; 15 import com.sitech.schedule.Scheduler;
  16 +import com.sitech.snmptrap.TbTopoPhysicalDeviceDao;
26 import com.sitech.util.Formater; 17 import com.sitech.util.Formater;
27 import com.sitech.util.mq.MQConstants; 18 import com.sitech.util.mq.MQConstants;
28 import com.sitech.util.mq.TunnelFactory; 19 import com.sitech.util.mq.TunnelFactory;
  20 +import org.apache.log4j.Logger;
  21 +
  22 +import java.util.Date;
  23 +import java.util.HashMap;
  24 +import java.util.List;
  25 +import java.util.Map;
29 26
30 /** 27 /**
31 * 采集/告警配置同步 28 * 采集/告警配置同步
@@ -71,6 +68,9 @@ public class ConfigSync implements ConfigSyncMBean { @@ -71,6 +68,9 @@ public class ConfigSync implements ConfigSyncMBean {
71 String scheduleOperate = obj.getParams().get("SCHEDULE_OPERATE"); 68 String scheduleOperate = obj.getParams().get("SCHEDULE_OPERATE");
72 extInfo.put("SCHEDULE_OPERATE",scheduleOperate); 69 extInfo.put("SCHEDULE_OPERATE",scheduleOperate);
73 removeCollSchedule(obj); 70 removeCollSchedule(obj);
  71 +// removeMemDbCfgData(obj);
  72 + removeDowntimeMBean(obj);
  73 + // 删除内存数据库中相关的配置数据
74 scheStatus = "0"; 74 scheStatus = "0";
75 if("1".equals(scheduleOperate)){ 75 if("1".equals(scheduleOperate)){
76 logInfo = "agent删除调度任务成功"; 76 logInfo = "agent删除调度任务成功";
@@ -154,6 +154,54 @@ public class ConfigSync implements ConfigSyncMBean { @@ -154,6 +154,54 @@ public class ConfigSync implements ConfigSyncMBean {
154 logger.info("End refresh table[TB_CFG_EVENT], delete ["+configList.size()+"] config"); 154 logger.info("End refresh table[TB_CFG_EVENT], delete ["+configList.size()+"] config");
155 } 155 }
156 156
  157 + /**
  158 + * 删除添加主机的MBean。
  159 + * @param obj
  160 + */
  161 + private void removeMemDbCfgData(AgentSyncObject obj){
  162 + if(obj.getClassName().equals("com.sitech.snmptrap.TbTopoPhysicalDevice")){
  163 + TbTopoPhysicalDeviceDao physicalDeviceDao = new TbTopoPhysicalDeviceDao();
  164 + physicalDeviceDao.deletePhysicalDeviceByIp(obj.getParams().get("DEVICE_IP"));
  165 + }
  166 + }
  167 +
  168 + /**
  169 + * 删除需要监控宕机的主机。
  170 + * @param obj
  171 + */
  172 + private void removeDowntimeMBean(AgentSyncObject obj){
  173 + if(obj.getClassName().equals("com.sitech.ismp.check.downtime.Downtime")){
  174 + DowntimeDao dao = new DowntimeDao();
  175 + dao.deleteDowntimeHostByIp(obj.getParams().get("DEVICE_IP"));
  176 + }
  177 + }
  178 +
  179 +
  180 + /**
  181 + * 添加监控宕机的MBean。
  182 + * 监控主机连接状态,有异常的时候,产生告警。
  183 + * frank 2017-04-11
  184 + */
  185 + /*private void regeditDowntimeMBean(AgentSyncObject obj,String scheduleId){
  186 + boolean isExist=CollScheduleManager.getInstance().scheduleExist(scheduleId);
  187 + if(!isExist){
  188 + DowntimeServer server=new DowntimeServer();
  189 + if(obj.getClassName().equals("com.sitech.snmptrap.TbTopoPhysicalDevice")){
  190 + AgentSyncObject downtimeAgentSyncObject= server.getAgentSyncObject(obj,scheduleId);
  191 + log.info("get DowntimeMBean,className ====== "+downtimeAgentSyncObject.getClassName());
  192 + try {
  193 + addCollSchedule(downtimeAgentSyncObject);
  194 + log.info("******************************************************************");
  195 + log.info("************* 注册DowntimeMBean完成,开始监听宕机情况 **************");
  196 + log.info("******************************************************************");
  197 + } catch (Exception e) {
  198 + log.error("regedit DowntimeMBean has wrong",e);
  199 + e.printStackTrace();
  200 + }
  201 + }
  202 + }
  203 + }*/
  204 +
157 private void updateEventCfg(List<AlarmEventConfig> configList) { 205 private void updateEventCfg(List<AlarmEventConfig> configList) {
158 String[] guid = new String[configList.size()]; 206 String[] guid = new String[configList.size()];
159 for (int i = 0; i < configList.size(); i++) { 207 for (int i = 0; i < configList.size(); i++) {
@@ -361,4 +409,91 @@ public class ConfigSync implements ConfigSyncMBean { @@ -361,4 +409,91 @@ public class ConfigSync implements ConfigSyncMBean {
361 TunnelFactory.getTunnel(MQConstants.Q_ROPORT_FROM_AGENT).writeData(log); 409 TunnelFactory.getTunnel(MQConstants.Q_ROPORT_FROM_AGENT).writeData(log);
362 } 410 }
363 411
  412 + public void syncDynamicCfg(AlarmDynamicConfigSyncObject obj) throws Exception {
  413 + int type = obj.getSyncType();
  414 + List<TbAtoDynamicThreshold> configList = obj.getConfigList();
  415 +
  416 + logger.info("Begin refresh table[TB_ATO_DYNAMIC_THRESHOLD]...");
  417 +
  418 + if (configList == null || configList.size() == 0) {
  419 + logger.info("End refresh table[TB_ATO_DYNAMIC_THRESHOLD], update [0] config");
  420 + return;
  421 + }
  422 +
  423 + switch (type) {
  424 + case TYPE_SYNC_ALL:
  425 + refreshAllDynamicCfg(configList);
  426 + break;
  427 + case TYPE_CREATE:
  428 + addDynamicCfg(configList);
  429 + break;
  430 + case TYPE_UPDATE:
  431 + updateDynamicCfg(configList);
  432 + break;
  433 + case TYPE_DELETE:
  434 + deleteDynamicCfg(configList);
  435 + break;
  436 + }
  437 + }
  438 +
  439 + /**
  440 + * 刷新所有动态阀值配置
  441 + * @param configList
  442 + */
  443 + private void refreshAllDynamicCfg(List<TbAtoDynamicThreshold> configList) {
  444 + TbAtoDynamicThresholdDao dao = new TbAtoDynamicThresholdDao();
  445 + int result = dao.deleteTbAtoDynamicThresholdAll();
  446 + if (result != -1) {
  447 + for (TbAtoDynamicThreshold config : configList) {
  448 + //TbCfgEvent tbCfgEvent = new TbCfgEvent(config);
  449 + dao.insertTbAtoDynamicThreshold(config);
  450 + }
  451 + }
  452 + logger.info("End refresh table[TB_ATO_DYNAMIC_THRESHOLD], update ["+configList.size()+"] config");
  453 + }
  454 +
  455 + /**
  456 + * 新增动态阀值配置
  457 + * @param configList
  458 + */
  459 + private void addDynamicCfg(List<TbAtoDynamicThreshold> configList) {
  460 + TbAtoDynamicThresholdDao dao = new TbAtoDynamicThresholdDao();
  461 + for (TbAtoDynamicThreshold config : configList) {
  462 + //TbCfgEvent tbCfgEvent = new TbCfgEvent(config);
  463 + dao.insertTbAtoDynamicThreshold(config);
  464 + }
  465 + logger.info("End refresh table[TB_ATO_DYNAMIC_THRESHOLD], add ["+configList.size()+"] config");
  466 + }
  467 +
  468 + /**
  469 + * 更新动态阀值配置
  470 + * @param configList
  471 + */
  472 + private void updateDynamicCfg(List<TbAtoDynamicThreshold> configList) {
  473 + String[] id = new String[configList.size()];
  474 + for (int i = 0; i < configList.size(); i++) {
  475 + id[i] = configList.get(i).getID();
  476 + }
  477 + TbAtoDynamicThresholdDao dao = new TbAtoDynamicThresholdDao();
  478 + dao.deleteTbAtoDynamicThreshold(id);
  479 + for (TbAtoDynamicThreshold config : configList) {
  480 + dao.insertTbAtoDynamicThreshold(config);
  481 + }
  482 + logger.info("End refresh table[TB_ATO_DYNAMIC_THRESHOLD], update ["+configList.size()+"] config");
  483 + }
  484 +
  485 + /**
  486 + * 删除动态阀值配置
  487 + * @param configList
  488 + */
  489 + private void deleteDynamicCfg(List<TbAtoDynamicThreshold> configList) {
  490 + String[] guid = new String[configList.size()];
  491 + for (int i = 0; i < configList.size(); i++) {
  492 + guid[i] = configList.get(i).getGUID();
  493 + }
  494 + TbAtoDynamicThresholdDao dao = new TbAtoDynamicThresholdDao();
  495 + dao.deleteTbAtoDynamicThreshold(guid);
  496 + logger.info("End refresh table[TB_ATO_DYNAMIC_THRESHOLD], delete ["+configList.size()+"] config");
  497 + }
  498 +
364 } 499 }
  1 +package com.sitech.snmptrap;
  2 +
  3 +import com.sitech.ismp.coll.basic.TblATO_KPIDETAIL;
  4 +import org.apache.log4j.Logger;
  5 +
  6 +import java.util.*;
  7 +
  8 +/**
  9 + * @author frank zmm@honggroup.com.cn
  10 + * @Description: 物理设备操作类。
  11 + * @Package com.sitech.snmptrap
  12 + * @ClassName: com.sitech.snmptrap.TbTopoPhysicalDevice
  13 + * @date 2017年03月03日 11:48
  14 + */
  15 +public class TbTopoPhysicalDevice implements TbTopoPhysicalDeviceMBean {
  16 +
  17 + Logger logger = Logger.getLogger(getClass());
  18 + TbTopoPhysicalDeviceDao dao=new TbTopoPhysicalDeviceDao();
  19 +
  20 + /**
  21 + * 添加(修改)物理设备
  22 + * @param params
  23 + * @return
  24 + */
  25 + @Override
  26 + public Vector<TblATO_KPIDETAIL> addDevice(HashMap params) {
  27 + Vector<TblATO_KPIDETAIL> bean = new Vector<TblATO_KPIDETAIL>();
  28 + try {
  29 + logger.info("Start add phsical device ***************************!!!");
  30 + TbTopoPhysicalDeviceBean physicalDevice = new TbTopoPhysicalDeviceBean();
  31 + logger.info("physicalDevice Object===" + physicalDevice.getClass());
  32 + physicalDevice.setDEVICE_ID(UUID.randomUUID().toString());
  33 + physicalDevice.setCREATE_DATE(new Date());
  34 + physicalDevice.setDEVICE_ALIAS(params.get("DEVICE_ALIAS") + "");
  35 + physicalDevice.setKBP_CLASS(params.get("KBP_CLASS") + "-99");
  36 + physicalDevice.setDEVICE_CATALOG(params.get("DEVICE_CATALOG") + "");
  37 + physicalDevice.setDEVICE_CNAME(params.get("DEVICE_CNAME") + "");
  38 + physicalDevice.setDEVICE_DESC(params.get("DEVICE_DESC") + "");
  39 + physicalDevice.setDEVICE_IP(params.get("DEVICE_IP") + "");
  40 + TbTopoPhysicalDeviceDao dao = new TbTopoPhysicalDeviceDao();
  41 + logger.info("TbTopoPhysicalDeviceDao Object===" + dao.getClass());
  42 + dao.addTbTopoPhysicalDevice(physicalDevice);
  43 + logger.info("Start add phsical device success");
  44 + }catch (Exception ex){
  45 + logger.error("add device error .",ex);
  46 + }
  47 + return bean;
  48 + }
  49 +
  50 + /**
  51 + * 删除物理设备
  52 + * @param deviceId
  53 + * @return
  54 + */
  55 + @Override
  56 + public String deleteDevice(String deviceId) {
  57 + boolean flag=false;
  58 + int result=dao.deleteTbTopoPhysicalDevice(deviceId);
  59 + if(result>0){
  60 + return "true";
  61 + }else{
  62 + return "false";
  63 + }
  64 + }
  65 +
  66 + /**
  67 + * 根据IP查询对应的设备信息。
  68 + * @param deviceIp
  69 + * @return
  70 + */
  71 + public List<TbTopoPhysicalDeviceBean> getPhysicalDevice(String deviceIp){
  72 + return dao.getPhysicalDeviceByIp(deviceIp);
  73 + }
  74 +}
  1 +package com.sitech.snmptrap;
  2 +
  3 +import java.io.Serializable;
  4 +import java.util.Date;
  5 +
  6 +/**
  7 + * @author frank zmm@honggroup.com.cn
  8 + * @Description: 新添加物理设备类,对应数据的表为 TB_TOPO_PHYSICAL_DEVICE。
  9 + * 当添加新设备的时候,如果设备IP,设备别名与已经存在的数据相同,则视为修改。
  10 + * @Package com.sitech.snmptrap
  11 + * @ClassName: com.sitech.snmptrap.TbTopoPhysicalDeviceBean
  12 + * @date 2017年03月03日 09:56
  13 + */
  14 +public class TbTopoPhysicalDeviceBean implements Serializable{
  15 +
  16 +// 设备ID
  17 + private String DEVICE_ID;
  18 +// 设备IP地址
  19 + private String DEVICE_IP;
  20 +// 设备别名
  21 + private String DEVICE_ALIAS;
  22 +// 设备类型
  23 + private String DEVICE_CATALOG;
  24 +// 设备中文名称
  25 + private String DEVICE_CNAME;
  26 +// kbp_class 设备的分类
  27 + private String KBP_CLASS;
  28 +// 设备描述
  29 + private String DEVICE_DESC;
  30 +// 所属机房
  31 + private String DEVICE_ROOM;
  32 +// 所属机架(机柜)
  33 + private String DEVICE_RACK;
  34 +// 创建日期
  35 + private Date CREATE_DATE;
  36 +
  37 + public TbTopoPhysicalDeviceBean() {}
  38 +
  39 + public String getDEVICE_ID() {
  40 + return DEVICE_ID;
  41 + }
  42 +
  43 + public void setDEVICE_ID(String DEVICE_ID) {
  44 + this.DEVICE_ID = DEVICE_ID;
  45 + }
  46 +
  47 + public String getDEVICE_IP() {
  48 + return DEVICE_IP;
  49 + }
  50 +
  51 + public void setDEVICE_IP(String DEVICE_IP) {
  52 + this.DEVICE_IP = DEVICE_IP;
  53 + }
  54 +
  55 + public String getDEVICE_ALIAS() {
  56 + return DEVICE_ALIAS;
  57 + }
  58 +
  59 + public void setDEVICE_ALIAS(String DEVICE_ALIAS) {
  60 + this.DEVICE_ALIAS = DEVICE_ALIAS;
  61 + }
  62 +
  63 + public String getDEVICE_CATALOG() {
  64 + return DEVICE_CATALOG;
  65 + }
  66 +
  67 + public void setDEVICE_CATALOG(String DEVICE_CATALOG) {
  68 + this.DEVICE_CATALOG = DEVICE_CATALOG;
  69 + }
  70 +
  71 + public String getDEVICE_CNAME() {
  72 + return DEVICE_CNAME;
  73 + }
  74 +
  75 + public void setDEVICE_CNAME(String DEVICE_CNAME) {
  76 + this.DEVICE_CNAME = DEVICE_CNAME;
  77 + }
  78 +
  79 + public String getKBP_CLASS() {
  80 + return KBP_CLASS;
  81 + }
  82 +
  83 + public void setKBP_CLASS(String KBP_CLASS) {
  84 + this.KBP_CLASS = KBP_CLASS;
  85 + }
  86 +
  87 + public String getDEVICE_DESC() {
  88 + return DEVICE_DESC;
  89 + }
  90 +
  91 + public void setDEVICE_DESC(String DEVICE_DESC) {
  92 + this.DEVICE_DESC = DEVICE_DESC;
  93 + }
  94 +
  95 + public String getDEVICE_ROOM() {
  96 + return DEVICE_ROOM;
  97 + }
  98 +
  99 + public void setDEVICE_ROOM(String DEVICE_ROOM) {
  100 + this.DEVICE_ROOM = DEVICE_ROOM;
  101 + }
  102 +
  103 + public String getDEVICE_RACK() {
  104 + return DEVICE_RACK;
  105 + }
  106 +
  107 + public void setDEVICE_RACK(String DEVICE_RACK) {
  108 + this.DEVICE_RACK = DEVICE_RACK;
  109 + }
  110 +
  111 + public Date getCREATE_DATE() {
  112 + return CREATE_DATE;
  113 + }
  114 +
  115 + public void setCREATE_DATE(Date CREATE_DATE) {
  116 + this.CREATE_DATE = CREATE_DATE;
  117 + }
  118 +
  119 + @Override
  120 + public String toString() {
  121 + return "TbTopoPhysicalDeviceBean{" +
  122 + "DEVICE_ID='" + DEVICE_ID + '\'' +
  123 + ", DEVICE_IP='" + DEVICE_IP + '\'' +
  124 + ", DEVICE_ALIAS='" + DEVICE_ALIAS + '\'' +
  125 + ", DEVICE_CATALOG='" + DEVICE_CATALOG + '\'' +
  126 + ", DEVICE_CNAME='" + DEVICE_CNAME + '\'' +
  127 + ", KBP_CLASS='" + KBP_CLASS + '\'' +
  128 + ", DEVICE_DESC='" + DEVICE_DESC + '\'' +
  129 + ", DEVICE_ROOM='" + DEVICE_ROOM + '\'' +
  130 + ", DEVICE_RACK='" + DEVICE_RACK + '\'' +
  131 + ", CREATE_DATE=" + CREATE_DATE +
  132 + '}';
  133 + }
  134 +}