Authored by 王凤

合并分支 'gz_agent_zmm' 到 'master'

宕机监控相关代码

宕机监控相关代码

查看合并请求 !1
... ... @@ -59,5 +59,8 @@
<sqlMap resource="com/sitech/topo/db/maps/TbTopoHostProcessListenMap.xml" />
<sqlMap resource="com/sitech/topo/db/maps/TbTopoHostProcessMap.xml" />
<sqlMap resource="com/sitech/topo/db/maps/TbTopoHostProcessLinkMap.xml" />
<sqlMap resource="com/sitech/database/maps/TbTopoPhysicalDeviceMap.xml" />
<sqlMap resource="com/sitech/database/maps/DowntimeMap.xml" />
<sqlMap resource="com/sitech/database/maps/DowntimeMapHistory.xml" />
</sqlMapConfig>
... ...
... ... @@ -31,6 +31,9 @@ CREATE MEMORY TABLE TB_TMP_INTERFACE(IP_ADDR VARCHAR(64),IF_INDEX VARCHAR(32),IF
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)
CREATE MEMORY TABLE TB_CFG_SNMP_PRI_OID(SYS_OBJECT_ID VARCHAR(512),NAME VARCHAR(32),OID VARCHAR(512))
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))
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)
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)
CREATE MEMORY TABLE TB_DOWNTIME_HOST_HISTORY(DEVICE_ID VARCHAR(50),DEVICE_IP VARCHAR(30),CREATE_DATE VARCHAR(10))
CREATE USER SA PASSWORD ""
GRANT DBA TO SA
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
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')
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)')
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')
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)')
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')
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)')
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')
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)')
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))')
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)')
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))')
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)')
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))')
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)')
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))')
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')
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))')
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')
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))')
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)')
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))')
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)')
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))')
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')
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')
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)')
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')
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)')
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')
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)')
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')
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)')
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')
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)')
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')
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)')
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')
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)')
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')
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)')
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')
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)')
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_KPI_CONVERT VALUES('PM-00-02-001-06','1.3.6.1.4.1.2011.2.23.39','Double.parseDouble(CPU_USAGE)')
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)')
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)')
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')
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')
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')
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
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')
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')
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')
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)')
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')
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')
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')
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')
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)')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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)')
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))')
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)')
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))')
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)')
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))')
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)')
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))')
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')
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))')
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')
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))')
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)')
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))')
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)')
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))')
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')
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')
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')
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')
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')
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)')
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')
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')
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')
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')
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)')
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')
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')
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')
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')
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)')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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)')
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')
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')
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')
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')
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)')
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')
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')
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')
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')
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)')
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')
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')
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')
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')
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')
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')
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')
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)')
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')
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')
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')
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')
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)')
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')
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')
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')
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')
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)')
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')
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')
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')
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)')
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)')
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)')
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')
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')
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')
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
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="TB_DOWNTIME_HOST">
<typeAlias alias="downtimeBean" type="com.sitech.ismp.check.downtime.DowntimeBean" />
<select id="getDowntimeByIp" resultClass="downtimeBean" parameterClass="java.util.HashMap">
SELECT
DEVICE_ID,
DEVICE_IP,
DEVICE_ALIAS,
KBP_CLASS,
PROTOCOL,
PROTOCOL_PORT,
USER_NAME,
PASSWORD,
CREATE_DATE
FROM TB_DOWNTIME_HOST
<isNotEmpty property="DEVICE_IP">
WHERE DEVICE_IP IN #DEVICE_IP#
</isNotEmpty>
</select>
<insert id="addDowntimeHost" parameterClass="downtimeBean">
INSERT INTO TB_DOWNTIME_HOST (
DEVICE_ID,
DEVICE_IP,
DEVICE_ALIAS,
KBP_CLASS,
PROTOCOL,
PROTOCOL_PORT,
USER_NAME,
PASSWORD,
CREATE_DATE)
VALUES (
#DEVICE_ID#,
#DEVICE_IP#,
#DEVICE_ALIAS#,
#KBP_CLASS#,
#PROTOCOL#,
#PROTOCOL_PORT#,
#USER_NAME#,
#PASSWORD#,
#CREATE_DATE#);
</insert>
<delete id="deleteDowntimeHostByIp" parameterClass="java.lang.String">
DELETE FROM TB_DOWNTIME_HOST WHERE DEVICE_IP=#ip#
</delete>
<update id="updateDowntimeHostByIp" parameterClass="downtimeBean">
UPDATE TB_DOWNTIME_HOST SET
<isNotEmpty property="PROTOCOL_PORT">
PROTOCOL_PORT = #PROTOCOL_PORT#,
</isNotEmpty>
<isNotEmpty property="USER_NAME">
USER_NAME = #USER_NAME#,
</isNotEmpty>
<isNotEmpty property="PASSWORD">
PASSWORD = #PASSWORD#,
</isNotEmpty>
DEVICE_ALIAS = #DEVICE_ALIAS#
WHERE DEVICE_IP = #DEVICE_IP#
</update>
</sqlMap>
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="TB_DOWNTIME_HOST_HISTORY">
<typeAlias alias="downtimeHistoryBean" type="com.sitech.ismp.check.downtime.DowntimeHistoryBean" />
<select id="getDowntimeHistoryByIp" resultClass="downtimeHistoryBean" parameterClass="java.util.HashMap">
SELECT
DEVICE_ID,DEVICE_IP,CREATE_DATE FROM
TB_DOWNTIME_HOST_HISTORY
WHERE DEVICE_IP = #DEVICE_IP# AND CREATE_DATE= #CREATE_DATE#
</select>
<insert id="addDowntimeHistory" parameterClass="downtimeHistoryBean">
INSERT INTO TB_DOWNTIME_HOST_HISTORY (
DEVICE_ID, DEVICE_IP, CREATE_DATE)
VALUES (#DEVICE_ID#, #DEVICE_IP#, #CREATE_DATE#);
</insert>
<delete id="deleteDowntimeHistory" parameterClass="java.lang.String">
DELETE FROM TB_DOWNTIME_HOST_HISTORY
</delete>
</sqlMap>
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="TB_TOPO_PHYSICAL_DEVICE">
<typeAlias alias="tbTopoPhysicalDevice" type="com.sitech.snmptrap.TbTopoPhysicalDeviceBean" />
<select id="queryTbTopoPhysicalDevice" resultClass="tbTopoPhysicalDevice" parameterClass="java.util.HashMap">
SELECT
DEVICE_ID,
DEVICE_IP,
DEVICE_ALIAS,
DEVICE_CATALOG,
DEVICE_CNAME,
KBP_CLASS,
DEVICE_DESC,
DEVICE_ROOM,
DEVICE_RACK,
CREATE_DATE
FROM TB_TOPO_PHYSICAL_DEVICE
<isNotEmpty property="DEVICE_IP">
WHERE DEVICE_IP IN #DEVICE_IP#
</isNotEmpty>
</select>
<insert id="addTbTopoPhysicalDevice" parameterClass="tbTopoPhysicalDevice">
INSERT INTO TB_TOPO_PHYSICAL_DEVICE (
DEVICE_ID,
DEVICE_IP,
DEVICE_ALIAS,
DEVICE_CATALOG,
DEVICE_CNAME,
KBP_CLASS,
DEVICE_DESC,
DEVICE_ROOM,
DEVICE_RACK,
CREATE_DATE)
VALUES (
#DEVICE_ID#,
#DEVICE_IP#,
#DEVICE_ALIAS#,
#DEVICE_CATALOG#,
#DEVICE_CNAME#,
#KBP_CLASS#,
#DEVICE_DESC#,
#DEVICE_ROOM#,
#DEVICE_RACK#,
#CREATE_DATE#);
</insert>
<delete id="deleteTbTopoPhysicalDevice" parameterClass="java.lang.String">
delete from TB_TOPO_PHYSICAL_DEVICE WHERE DEVICE_ID=#deviceId#
</delete>
<delete id="deletePhysicalDeviceByIp" parameterClass="java.lang.String">
delete from TB_TOPO_PHYSICAL_DEVICE where DEVICE_IP=#ip#
</delete>
<update id="updateTbTopoPhysicalDevice" parameterClass="tbTopoPhysicalDevice">
UPDATE TB_TOPO_PHYSICAL_DEVICE SET
<isNotEmpty property="DEVICE_DESC">
DEVICE_DESC = #DEVICE_DESC#,
</isNotEmpty>
<isNotEmpty property="DEVICE_ROOM">
DEVICE_ROOM = #DEVICE_ROOM#,
</isNotEmpty>
<isNotEmpty property="DEVICE_RACK">
DEVICE_RACK = #DEVICE_RACK#,
</isNotEmpty>
DEVICE_ALIAS = #DEVICE_ALIAS#,
DEVICE_CNAME = #DEVICE_CNAME#
WHERE DEVICE_IP = #DEVICE_IP#
</update>
</sqlMap>
... ...
package com.sitech.ismp.check.downtime;
import java.io.Serializable;
import java.util.Date;
/**
* @author frank zmm@honggroup.com.cn
* @Description: 宕机表对应的bean。
* @Package com.sitech.ismp.check.downtime
* @ClassName: com.sitech.ismp.check.downtime.DowntimeBean
* @date 2017年04月16日 13:30
*/
public class DowntimeBean implements Serializable{
// 设备ID
private String DEVICE_ID;
// 设备IP地址
private String DEVICE_IP;
// 设备别名
private String DEVICE_ALIAS;
// kbp_class 设备的分类
private String KBP_CLASS;
// 连接协议(ssh/telnet)
private String PROTOCOL;
// 协议端口
private int PROTOCOL_PORT;
// 用户名
private String USER_NAME;
// 密码
private String PASSWORD;
// 创建日期
private Date CREATE_DATE;
// ping IP 后的结果
private boolean pingState;
// ping后进行ssh连接后的状态。
private boolean sshState;
// 告警级别 1 严重告警;2 重要告警
private int warningLevel;
// ping后进行ssh连接后的结果,即重要告警还是严重告警。
private String warningResult;
private String unitId;
public String getDEVICE_ID() {
return DEVICE_ID;
}
public void setDEVICE_ID(String DEVICE_ID) {
this.DEVICE_ID = DEVICE_ID;
}
public String getDEVICE_IP() {
return DEVICE_IP;
}
public void setDEVICE_IP(String DEVICE_IP) {
this.DEVICE_IP = DEVICE_IP;
}
public String getDEVICE_ALIAS() {
return DEVICE_ALIAS;
}
public void setDEVICE_ALIAS(String DEVICE_ALIAS) {
this.DEVICE_ALIAS = DEVICE_ALIAS;
}
public String getKBP_CLASS() {
return KBP_CLASS;
}
public void setKBP_CLASS(String KBP_CLASS) {
this.KBP_CLASS = KBP_CLASS;
}
public String getPROTOCOL() {
return PROTOCOL;
}
public void setPROTOCOL(String PROTOCOL) {
this.PROTOCOL = PROTOCOL;
}
public int getPROTOCOL_PORT() {
return PROTOCOL_PORT;
}
public void setPROTOCOL_PORT(int PROTOCOL_PORT) {
this.PROTOCOL_PORT = PROTOCOL_PORT;
}
public String getUSER_NAME() {
return USER_NAME;
}
public void setUSER_NAME(String USER_NAME) {
this.USER_NAME = USER_NAME;
}
public String getPASSWORD() {
return PASSWORD;
}
public void setPASSWORD(String PASSWORD) {
this.PASSWORD = PASSWORD;
}
public Date getCREATE_DATE() {
return CREATE_DATE;
}
public void setCREATE_DATE(Date CREATE_DATE) {
this.CREATE_DATE = CREATE_DATE;
}
public boolean isPingState() {
return pingState;
}
public void setPingState(boolean pingState) {
this.pingState = pingState;
}
public boolean isSshState() {
return sshState;
}
public void setSshState(boolean sshState) {
this.sshState = sshState;
}
public String getWarningResult() {
return warningResult;
}
public void setWarningResult(String warningResult) {
this.warningResult = warningResult;
}
public int getWarningLevel() {
return warningLevel;
}
public void setWarningLevel(int warningLevel) {
this.warningLevel = warningLevel;
}
public String getUnitId() {
return unitId;
}
public void setUnitId(String unitId) {
this.unitId = unitId;
}
@Override
public String toString() {
return "DowntimeBean{" +
" DEVICE_IP='" + DEVICE_IP + '\'' +
", pingState=" + pingState +
", sshState=" + sshState +
", warningResult='" + warningResult + '\'' +
", DEVICE_ALIAS='" + DEVICE_ALIAS + '\'' +
", USER_NAME='" + USER_NAME + '\'' +
", warningLevel=" + warningLevel +
'}';
}
}
... ...
package com.sitech.ismp.check.downtime;
import com.sitech.ismp.coll.basic.TblATO_KPIDETAIL;
import org.apache.log4j.Logger;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @author frank zmm@honggroup.com.cn
* @Description: 宕机检测MBean实现类
* @Package com.sitech.ismp.check.downtime
* @ClassName: com.sitech.ismp.check.downtime.Downtime
* @date 2017年04月15日 13:43
*/
public class Downtime implements DowntimeMBean {
private static Logger log= Logger.getLogger(Downtime.class);
DowntimeDao dao=new DowntimeDao();
DowntimeHistoryDao historyDao=new DowntimeHistoryDao();
SimpleDateFormat formaF=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/**
* 检查主机的连接状态。如果连接异常,需要每隔30秒连续连接3次,如果3次连接都异常,则视为主机宕机,发送严重告警。
* 1 将需要监控的设备添加到内存数据库中。
* 2 对表中的主机进行ping操作。
* 3 对表中的主机进行SSH登录认证
* 4 发送告警信息
* @param params
* @return
*/
@Override
public Vector<TblATO_KPIDETAIL> checkConnectState(HashMap<String,String> params){
dao.addDowntimeHost(params);
String ipAddr=params.get("DEVICE_IP");
boolean flag=isNeedExecuteCheckMethod(ipAddr);
if(flag){
log.info("*************"+ formaF.format(new Date()) +" execute method checkConnectState .................");
// 将需要监控的设备添加到内存数据库中。
DowntimeBean bean=dao.map2DowntimeBean(params);
DowntimeServer server=new DowntimeServer(bean);
// 包括 2-4 需要执行的内容。 如果监控的设备很多的时候,使用单线程可能一个监控周期都不能ping完所有的主机。
server.run();
log.info("@@@@@@@@@@@@@@@@@@@@@@***** finish run method *****@@@@@@@@@@@@@@@@@@@@@@@@@@@");
log.info(bean.toString());
}
Vector<TblATO_KPIDETAIL> bean = new Vector<TblATO_KPIDETAIL>();
return bean;
}
/**
* 是否执行checkConnectState 方法。
* 判断当前IP是否发送过告警信息。每天一个主机只发送1条告警信息。
* @return
*/
private boolean isNeedExecuteCheckMethod(String ipAddr){
boolean flag=true; // 是否该ipAddr已经发送过消息。
SimpleDateFormat formaF=new SimpleDateFormat("yyyy-MM-dd");
String currentDay=formaF.format(new Date());
List<DowntimeHistoryBean> list=historyDao.getDowntimeHistoryByIp(ipAddr,currentDay);
if(null !=list && list.size()>0){
flag=false;
}
return flag;
}
}
... ...
package com.sitech.ismp.check.downtime;
import com.sitech.database.dao.BaseDao;
import org.apache.log4j.Logger;
import java.sql.SQLException;
import java.util.*;
/**
* @author frank zmm@honggroup.com.cn
* @Description: 宕机检测MBean对应dao类
* @Package com.sitech.ismp.check.downtime
* @ClassName: com.sitech.ismp.check.downtime.DowntimeDao
* @date 2017年04月16日 14:15
*/
public class DowntimeDao extends BaseDao {
private static Logger log=Logger.getLogger(DowntimeDao.class);
/**
* 添加需要监控宕机情况的设备,如果该设备已经存在,则修改。
*/
public void addDowntimeHost(HashMap<String,String> params){
DowntimeBean downtimeBean=map2DowntimeBean(params);
addDowntimeHost(downtimeBean);
}
public void addDowntimeHost(DowntimeBean downtimeBean){
try {
int updateSum = sqlmapClient.update("updateDowntimeHostByIp",downtimeBean);
if(updateSum == 0){
sqlmapClient.insert("addDowntimeHost", downtimeBean);
}
} catch (Exception e) {
error.error("Exception while addDowntimeHost.", e);
}
}
/**
* 根据IP删除对应的记录。
* @param ip
* @return
*/
public int deleteDowntimeHostByIp(String ip){
try {
return sqlmapClient.delete("deleteDowntimeHostByIp", ip);
} catch (Exception e) {
error.error("Exception while deleteDowntimeHostByIp.", e);
}
return -1;
}
/**
* 根据IP查询对应的记录。
* @param deviceIp
* @return
*/
public List<DowntimeBean> getDowntimeByIp(String deviceIp){
HashMap<String,String> param=new HashMap<String, String>();
param.put("DEVICE_IP",deviceIp);
List<DowntimeBean> beanList=new ArrayList<DowntimeBean>();
try {
beanList=sqlmapClient.queryForList("getDowntimeByIp", param);
} catch (SQLException e) {
e.printStackTrace();
}
return beanList;
}
public DowntimeBean map2DowntimeBean(HashMap<String,String> params){
DowntimeBean bean=new DowntimeBean();
try {
bean.setDEVICE_ID(UUID.randomUUID().toString());
bean.setDEVICE_IP(params.get("DEVICE_IP"));
bean.setDEVICE_ALIAS(params.get("DEVICE_ALIAS"));
bean.setKBP_CLASS(params.get("KBP_CLASS") + "-99");
bean.setPROTOCOL(params.get("PROTOCOL"));
bean.setPROTOCOL_PORT(Integer.parseInt(params.get("PROTOCOL_PORT")));
bean.setUSER_NAME(params.get("USER_NAME"));
bean.setPASSWORD(params.get("PASSWORD"));
bean.setCREATE_DATE(new Date());
}catch (Exception e){
log.error("addDowntimeHost, write values to DowntimeBean has error!",e);
}
return bean;
}
}
... ...
package com.sitech.ismp.check.downtime;
/**
* @author frank zmm@honggroup.com.cn
* @Description: 发送告警的历史记录bean。
* @Package com.sitech.ismp.check.downtime
* @ClassName: com.sitech.ismp.check.downtime.DowntimeHistoryBean
* @date 2017年04月19日 14:04
*/
public class DowntimeHistoryBean {
// 设备ID
private String DEVICE_ID;
// 设备IP地址
private String DEVICE_IP;
// 创建日期
private String CREATE_DATE;
public String getDEVICE_ID() {
return DEVICE_ID;
}
public void setDEVICE_ID(String DEVICE_ID) {
this.DEVICE_ID = DEVICE_ID;
}
public String getDEVICE_IP() {
return DEVICE_IP;
}
public void setDEVICE_IP(String DEVICE_IP) {
this.DEVICE_IP = DEVICE_IP;
}
public String getCREATE_DATE() {
return CREATE_DATE;
}
public void setCREATE_DATE(String CREATE_DATE) {
this.CREATE_DATE = CREATE_DATE;
}
@Override
public String toString() {
return "DowntimeHistoryBean{" +
"DEVICE_ID='" + DEVICE_ID + '\'' +
", DEVICE_IP='" + DEVICE_IP + '\'' +
", CREATE_DATE='" + CREATE_DATE + '\'' +
'}';
}
}
... ...
package com.sitech.ismp.check.downtime;
import com.sitech.database.dao.BaseDao;
import org.apache.log4j.Logger;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* @author frank zmm@honggroup.com.cn
* @Description: 告警历史dao
* @Package com.sitech.ismp.check.downtime
* @ClassName: com.sitech.ismp.check.downtime.DowntimeHistoryDao
* @date 2017年04月19日 14:06
*/
public class DowntimeHistoryDao extends BaseDao {
private static Logger log=Logger.getLogger(DowntimeHistoryDao.class);
/**
* 添加告警信息
* @param bean
*/
public void addDowntimeHistory(DowntimeHistoryBean bean){
try {
sqlmapClient.insert("addDowntimeHistory", bean);
} catch (SQLException e) {
log.error("Exception while addDowntimeHistory.",e);
}
}
/**
*
* @param deviceIp
* @param createDate
* @return
*/
public List<DowntimeHistoryBean> getDowntimeHistoryByIp(String deviceIp,String createDate){
HashMap<String,String> param=new HashMap<String, String>();
param.put("DEVICE_IP",deviceIp);
param.put("CREATE_DATE",createDate);
List<DowntimeHistoryBean> beanList=new ArrayList<DowntimeHistoryBean>();
try {
beanList=sqlmapClient.queryForList("getDowntimeHistoryByIp", param);
} catch (SQLException e) {
e.printStackTrace();
}
return beanList;
}
/**
* 删除表中的所有数据。
* @return
*/
public int deleteDowntimeHistory(){
try {
return sqlmapClient.delete("deleteDowntimeHistory", null);
} catch (Exception e) {
error.error("Exception while deleteDowntimeHistory.", e);
}
return -1;
}
}
... ...
package com.sitech.ismp.check.downtime;
import com.sitech.ismp.coll.basic.TblATO_KPIDETAIL;
import java.util.HashMap;
import java.util.Vector;
/**
* @author frank zmm@honggroup.com.cn
* @Description: 宕机检测MBean接口
* @Package com.sitech.ismp.check.downtime
* @ClassName: com.sitech.ismp.check.downtime.DowntimeMBean
* @date 2017年04月15日 13:42
*/
public interface DowntimeMBean {
/**
* 检查主机的连接状态。如果连接异常,需要每隔30秒连续连接3次,如果3次连接都异常,则视为主机宕机,发送严重告警。
* @param params
* @return
*/
public Vector<TblATO_KPIDETAIL> checkConnectState(HashMap<String,String> params);
}
... ...
package com.sitech.ismp.check.downtime;
import com.sitech.ismp.app.event.KPI2Event;
import com.sitech.ismp.coll.basic.TblATO_EVENT;
import com.sitech.util.Base62Util;
import com.sitech.util.RandomGUID;
import com.sitech.util.upload.RomoteController;
import com.sitech.util.upload.SSHThread;
import com.sitech.util.upload.TelnetThread;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
/**
* @author frank zmm@honggroup.com.cn
* @Description: 宕机检测MBean对应Server类。
* ping的布尔结果 true:能ping通, false:ping不通
* ssh连接的布尔结果 true:能ssh连接, false:ssh连接异常
* @Package com.sitech.ismp.check.downtime
* @ClassName: com.sitech.ismp.check.downtime.DowntimeServer
* @date 2017年04月12日 16:22
*/
public class DowntimeServer implements Runnable{
private static Logger log=Logger.getLogger(DowntimeServer.class);
private DowntimeBean bean;
DowntimeHistoryDao historyDao=new DowntimeHistoryDao();
public DowntimeServer(DowntimeBean bean){
this.bean=bean;
}
/**
* 1 对表中的主机进行ping操作。
* 2 对表中的主机进行SSH登录认证。
* 3 发送告警信息。
*/
@Override
public void run(){
getPingResult(bean);
getSshResult(bean);
sendEvent2Workstation(bean);
}
/**
* 将每个IP ping后的结果设置到pingState属性上。
* @param bean
* @return
*/
public void getPingResult(DowntimeBean bean){
String ipAddr=null;
log.info("============================== ping all parames ======================");
log.info(bean.toString());
ipAddr=bean.getDEVICE_IP();
boolean temp=pingIpAddress(ipAddr);
bean.setPingState(temp);
}
/**
* 进行SSH连接,并设置对应告警的内容。
* @param bean
* @return
*/
public void getSshResult(DowntimeBean bean){
boolean pingState=bean.isPingState(); // true:能ping通, false:ping不通
log.info("========== pingState=== "+pingState+"==========");
boolean sshState=contentWithSsh(bean);
log.info("========== sshState=== "+sshState+"==========");
if(!pingState){ // ping 不通 false
if(!sshState){ // ssh 不能连接 严重告警
bean.setWarningLevel(1);
bean.setWarningResult(bean.getDEVICE_IP()+" 的主机连接异常,请检查网络是否正常或主机宕机!");
log.info("========== bean.setWarningResult sshState ="+sshState+",=ip is ["+bean.getDEVICE_IP()+"] host connect error");
}
}else{ //能ping 通
if(!sshState){ // ssh 不能连接 重要告警
bean.setWarningLevel(2);
bean.setWarningResult(bean.getDEVICE_IP()+" 的主机不能进行登录,请检查用户名或密码!!");
log.info("========== bean.setWarningResult sshState ="+sshState+",=ip is["+bean.getDEVICE_IP()+"] host login error");
}
}
}
/**
* 将告警信息发送到Workstation。
* 当ping的结果为false的时候才发送。
* @param bean
*/
private void sendEvent2Workstation(DowntimeBean bean){
log.info("******************************************************");
log.info("*************** sendEvent2Workstation ****************");
log.info("******************************************************");
log.info(bean.toString());
if(!bean.isSshState()){
KPI2Event event=new KPI2Event();
TblATO_EVENT tblato_event = new TblATO_EVENT();
String eventId= RandomGUID.getRandomGUID();
try {
tblato_event.setEVENT_ID(eventId); // 随即生成一个GUID作为唯一键
tblato_event.setUNIT_ID(bean.getUnitId()); // UNIT_ID在页面显示的为平台类型。
tblato_event.setKPI_ID("FM-00-01-001-999");
tblato_event.setKPI_VALUE(bean.getWarningResult());
tblato_event.setEVENT_TITLE(bean.getWarningResult());
tblato_event.setEVENT_CLASS(bean.getWarningLevel()); // 告警级别
tblato_event.setCLL_TIME(new java.util.Date());
tblato_event.setGENERANT_TIME(new java.util.Date());
tblato_event.setCFG_GUID(RandomGUID.getRandomGUID());
log.info("hava finish set values to TblATO_EVENT!");
} catch (ParseException e) {
log.error("set values to TblATO_EVENT hava error!",e);
}
try {
event.sendEvent2Workstation(tblato_event);
addDowntimeHistory(bean);
log.info("have write object(TblATO_EVENT) to Workstation!");
} catch (Exception e) {
log.error("have write object(TblATO_EVENT) to Workstation have error!",e);
}
}
}
private void addDowntimeHistory(DowntimeBean bean){
DowntimeHistoryBean historyBean=new DowntimeHistoryBean();
historyBean.setDEVICE_ID(bean.getDEVICE_ID());
historyBean.setDEVICE_IP(bean.getDEVICE_IP());
SimpleDateFormat formaF=new SimpleDateFormat("yyyy-MM-dd");
String date=formaF.format(new Date())+"";
date=date.substring(0,10);
historyBean.setCREATE_DATE(date);
historyDao.addDowntimeHistory(historyBean);
}
/**
* 获取ping 后的结果,是否可以平通指定的IP。
* @param ipAddr
* @return
*/
private boolean pingIpAddress(String ipAddr){
int pingErrorCount=0; // ping 不通的次数,ping3次。
int interval=8; // 时间间隔8秒。
boolean flag=false;
boolean temp=false;
for(int i=0;i<3;i++){
temp=executeCommand(ipAddr); // ping不通返回false。
log.info("["+ipAddr+"]ping result is ["+temp+"],(true:can connect;false:can't connect)");
if(!temp){
pingErrorCount++;
}
try {
Thread.sleep(interval*1000);
log.info("ping ["+ipAddr+"] trread sleep "+interval+" secound........");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
if(pingErrorCount == 3){
log.info("["+ipAddr+"] can't connect 3 times.");
}else{
flag=true;
log.info("["+ipAddr+"] can connect.");
}
return flag;
}
/**
* 进行ssh连接,判断是否可以连接成功。
* windows操作系统使用 TelnetThread类连接。 Windows的客户端需要配置并开启Telnet相关的服务。
* @return
*/
private boolean contentWithSsh(DowntimeBean bean){
String protocol=bean.getPROTOCOL();
String ipAddr=bean.getDEVICE_IP();
String deviceAlias=bean.getDEVICE_ALIAS();
int protocolPort=bean.getPROTOCOL_PORT();
String userName=bean.getUSER_NAME();
String password=bean.getPASSWORD();
bean.setUnitId(getUnitId(deviceAlias));
log.info("execute contentWithSsh method ......");
boolean temp=false;
RomoteController tt = null;
log.info("host params is: ipAddr="+ipAddr+",protocol="+protocol+",protocolPort="+protocolPort+",userName="+userName);
if(loginParamterIsOk(protocol,ipAddr,protocolPort,userName,password,deviceAlias)){
try {
if (protocol != null && protocol.equalsIgnoreCase("telnet")) {
tt = new TelnetThread(ipAddr, protocolPort, userName, password);
} else if (protocol != null && protocol.equalsIgnoreCase("ssh")) {
tt = new SSHThread(ipAddr, protocolPort, userName, password);
}else{
log.error("===================== unknown protocol =====================");
}
}catch (Exception e){
log.error(protocol+"connect have exception!");
}
tt.initial();
boolean flag=tt.isAuthorized();
log.info("******************* tt.isAuthorized() result is "+flag);
if (flag){ // 认证通过
log.info(ipAddr+" SSH connect,Authorized result is true authorized success!");
temp=true;
bean.setSshState(true);
}else{
log.info(ipAddr+" SSH connect,Authorized result is false authorized fail!!");
bean.setSshState(false);
}
}
return temp;
}
/**
* 判断所有的参数是否为空。
* @param protocol 协议类型
* @param ipAddr IP地址
* @param protocolPort 协议端口
* @param userName 用户名
* @param password 密码
* @param deviceAlias 主机别名
* @return
*/
private boolean loginParamterIsOk(String protocol,String ipAddr,int protocolPort,String userName,
String password,String deviceAlias){
boolean flag=true;
if(StringUtils.isEmpty(protocol)){
flag=false;
}
if(StringUtils.isEmpty(ipAddr)){
flag=false;
}
if(StringUtils.isEmpty(protocolPort+"")){
flag=false;
}
if(StringUtils.isEmpty(userName)){
flag=false;
}
if(StringUtils.isEmpty(password)){
flag=false;
}
if(StringUtils.isEmpty(deviceAlias)){
flag=false;
}
return flag;
}
private String getUnitId(String deviceAlias){
StringBuffer bf=new StringBuffer("10-10-99-98:");
bf.append(deviceAlias).append("_").append(getEncryptStr());
return bf.toString();
}
/**
* 返回加密后的一个唯一字符串。
* @return
*/
private String getEncryptStr(){
SimpleDateFormat forma=new SimpleDateFormat("yyMMddHHmmss");
Random rr= new Random();
String str=rr.nextInt(999)+forma.format(new Date())+rr.nextInt(999);
return Base62Util.encode(Long.parseLong(str));
}
/**
* 返回ping后的结果。
* @param ipAddr ip 地址。
* @return
*/
private boolean executeCommand(String ipAddr){
String command = "/bin/ping -c 3 -w 3 " + ipAddr;;
// 执行command 命令。
boolean flag=false;
String line = null;
StringBuilder sb = new StringBuilder();
Runtime runtime = Runtime.getRuntime();
Process process = null;
long startTime = new Date().getTime();
try {
process = runtime.exec(command);
} catch (IOException e) {
log.error("execute command ["+command+"] has some error!");
}
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
try {
while ((line = bufferedReader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
log.error("======== bufferedReader.readLine() has some error!");
}
String pingResult=sb.toString();
/**
* 当执行结果出现下面字符说明已经执行完成。
* ping 通的时候 结果包含【min/avg/max/mdev】
* ping 不通的时候 结果包含【100% packet loss】
*/
if(pingResult.contains("100% packet loss") || (pingResult.contains("min/avg/max/mdev"))){
process.destroy();
log.info("execute command ["+command+"] finish!");
}
String os = System.getProperty("os.name").toLowerCase();
log.info("------------ operator system is :" + os);
// 解析command命令结果,包含【100% packet loss】 意味着ping不通,返回 false。
if(os.indexOf("linux") >= 0){
if (!StringUtils.isEmpty(pingResult)) {
if(!pingResult.contains("100% packet loss")){
flag = true;
}
}
}
return flag;
}
/**
* 添加已经发送的告警信息。
* @param bean,取出对象中的ID与IP,外加时间(年月日)
*/
public void addSendedEvent(DowntimeBean bean){
}
}
... ...
package com.sitech.jmx.mbean;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import com.sitech.base.AgentProperties;
import com.sitech.database.dao.TbAtoDynamicThresholdDao;
import com.sitech.database.dao.TbCfgEventDao;
import com.sitech.database.dao.TbCfgOidMibDao;
import com.sitech.database.domain.TbCfgEvent;
import com.sitech.database.domain.TbCfgOidMib;
import com.sitech.ismp.check.downtime.DowntimeDao;
import com.sitech.ismp.coll.cron.CronConstants;
import com.sitech.ismp.messageObject.AgentSyncObject;
import com.sitech.ismp.messageObject.AlarmEventConfig;
import com.sitech.ismp.messageObject.AlarmEventConfigSyncObject;
import com.sitech.ismp.messageObject.MibConfig;
import com.sitech.ismp.messageObject.MibConfigSyncObject;
import com.sitech.ismp.messageObject.ScheduleLog;
import com.sitech.ismp.messageObject.*;
import com.sitech.jmx.manage.CollScheduleManager;
import com.sitech.jmx.manage.MBeanManager;
import com.sitech.schedule.ScheduleCache;
import com.sitech.schedule.Scheduler;
import com.sitech.snmptrap.TbTopoPhysicalDeviceDao;
import com.sitech.util.Formater;
import com.sitech.util.mq.MQConstants;
import com.sitech.util.mq.TunnelFactory;
import org.apache.log4j.Logger;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 采集/告警配置同步
... ... @@ -71,6 +68,9 @@ public class ConfigSync implements ConfigSyncMBean {
String scheduleOperate = obj.getParams().get("SCHEDULE_OPERATE");
extInfo.put("SCHEDULE_OPERATE",scheduleOperate);
removeCollSchedule(obj);
// removeMemDbCfgData(obj);
removeDowntimeMBean(obj);
// 删除内存数据库中相关的配置数据
scheStatus = "0";
if("1".equals(scheduleOperate)){
logInfo = "agent删除调度任务成功";
... ... @@ -114,7 +114,7 @@ public class ConfigSync implements ConfigSyncMBean {
}
}
public void syncEventCfg(AlarmEventConfigSyncObject obj) throws Exception {
int type = obj.getSyncType();
List<AlarmEventConfig> configList = obj.getConfigList();
... ... @@ -154,6 +154,54 @@ public class ConfigSync implements ConfigSyncMBean {
logger.info("End refresh table[TB_CFG_EVENT], delete ["+configList.size()+"] config");
}
/**
* 删除添加主机的MBean。
* @param obj
*/
private void removeMemDbCfgData(AgentSyncObject obj){
if(obj.getClassName().equals("com.sitech.snmptrap.TbTopoPhysicalDevice")){
TbTopoPhysicalDeviceDao physicalDeviceDao = new TbTopoPhysicalDeviceDao();
physicalDeviceDao.deletePhysicalDeviceByIp(obj.getParams().get("DEVICE_IP"));
}
}
/**
* 删除需要监控宕机的主机。
* @param obj
*/
private void removeDowntimeMBean(AgentSyncObject obj){
if(obj.getClassName().equals("com.sitech.ismp.check.downtime.Downtime")){
DowntimeDao dao = new DowntimeDao();
dao.deleteDowntimeHostByIp(obj.getParams().get("DEVICE_IP"));
}
}
/**
* 添加监控宕机的MBean。
* 监控主机连接状态,有异常的时候,产生告警。
* frank 2017-04-11
*/
/*private void regeditDowntimeMBean(AgentSyncObject obj,String scheduleId){
boolean isExist=CollScheduleManager.getInstance().scheduleExist(scheduleId);
if(!isExist){
DowntimeServer server=new DowntimeServer();
if(obj.getClassName().equals("com.sitech.snmptrap.TbTopoPhysicalDevice")){
AgentSyncObject downtimeAgentSyncObject= server.getAgentSyncObject(obj,scheduleId);
log.info("get DowntimeMBean,className ====== "+downtimeAgentSyncObject.getClassName());
try {
addCollSchedule(downtimeAgentSyncObject);
log.info("******************************************************************");
log.info("************* 注册DowntimeMBean完成,开始监听宕机情况 **************");
log.info("******************************************************************");
} catch (Exception e) {
log.error("regedit DowntimeMBean has wrong",e);
e.printStackTrace();
}
}
}
}*/
private void updateEventCfg(List<AlarmEventConfig> configList) {
String[] guid = new String[configList.size()];
for (int i = 0; i < configList.size(); i++) {
... ... @@ -361,4 +409,91 @@ public class ConfigSync implements ConfigSyncMBean {
TunnelFactory.getTunnel(MQConstants.Q_ROPORT_FROM_AGENT).writeData(log);
}
public void syncDynamicCfg(AlarmDynamicConfigSyncObject obj) throws Exception {
int type = obj.getSyncType();
List<TbAtoDynamicThreshold> configList = obj.getConfigList();
logger.info("Begin refresh table[TB_ATO_DYNAMIC_THRESHOLD]...");
if (configList == null || configList.size() == 0) {
logger.info("End refresh table[TB_ATO_DYNAMIC_THRESHOLD], update [0] config");
return;
}
switch (type) {
case TYPE_SYNC_ALL:
refreshAllDynamicCfg(configList);
break;
case TYPE_CREATE:
addDynamicCfg(configList);
break;
case TYPE_UPDATE:
updateDynamicCfg(configList);
break;
case TYPE_DELETE:
deleteDynamicCfg(configList);
break;
}
}
/**
* 刷新所有动态阀值配置
* @param configList
*/
private void refreshAllDynamicCfg(List<TbAtoDynamicThreshold> configList) {
TbAtoDynamicThresholdDao dao = new TbAtoDynamicThresholdDao();
int result = dao.deleteTbAtoDynamicThresholdAll();
if (result != -1) {
for (TbAtoDynamicThreshold config : configList) {
//TbCfgEvent tbCfgEvent = new TbCfgEvent(config);
dao.insertTbAtoDynamicThreshold(config);
}
}
logger.info("End refresh table[TB_ATO_DYNAMIC_THRESHOLD], update ["+configList.size()+"] config");
}
/**
* 新增动态阀值配置
* @param configList
*/
private void addDynamicCfg(List<TbAtoDynamicThreshold> configList) {
TbAtoDynamicThresholdDao dao = new TbAtoDynamicThresholdDao();
for (TbAtoDynamicThreshold config : configList) {
//TbCfgEvent tbCfgEvent = new TbCfgEvent(config);
dao.insertTbAtoDynamicThreshold(config);
}
logger.info("End refresh table[TB_ATO_DYNAMIC_THRESHOLD], add ["+configList.size()+"] config");
}
/**
* 更新动态阀值配置
* @param configList
*/
private void updateDynamicCfg(List<TbAtoDynamicThreshold> configList) {
String[] id = new String[configList.size()];
for (int i = 0; i < configList.size(); i++) {
id[i] = configList.get(i).getID();
}
TbAtoDynamicThresholdDao dao = new TbAtoDynamicThresholdDao();
dao.deleteTbAtoDynamicThreshold(id);
for (TbAtoDynamicThreshold config : configList) {
dao.insertTbAtoDynamicThreshold(config);
}
logger.info("End refresh table[TB_ATO_DYNAMIC_THRESHOLD], update ["+configList.size()+"] config");
}
/**
* 删除动态阀值配置
* @param configList
*/
private void deleteDynamicCfg(List<TbAtoDynamicThreshold> configList) {
String[] guid = new String[configList.size()];
for (int i = 0; i < configList.size(); i++) {
guid[i] = configList.get(i).getGUID();
}
TbAtoDynamicThresholdDao dao = new TbAtoDynamicThresholdDao();
dao.deleteTbAtoDynamicThreshold(guid);
logger.info("End refresh table[TB_ATO_DYNAMIC_THRESHOLD], delete ["+configList.size()+"] config");
}
}
... ...
package com.sitech.snmptrap;
import com.sitech.ismp.coll.basic.TblATO_KPIDETAIL;
import org.apache.log4j.Logger;
import java.util.*;
/**
* @author frank zmm@honggroup.com.cn
* @Description: 物理设备操作类。
* @Package com.sitech.snmptrap
* @ClassName: com.sitech.snmptrap.TbTopoPhysicalDevice
* @date 2017年03月03日 11:48
*/
public class TbTopoPhysicalDevice implements TbTopoPhysicalDeviceMBean {
Logger logger = Logger.getLogger(getClass());
TbTopoPhysicalDeviceDao dao=new TbTopoPhysicalDeviceDao();
/**
* 添加(修改)物理设备
* @param params
* @return
*/
@Override
public Vector<TblATO_KPIDETAIL> addDevice(HashMap params) {
Vector<TblATO_KPIDETAIL> bean = new Vector<TblATO_KPIDETAIL>();
try {
logger.info("Start add phsical device ***************************!!!");
TbTopoPhysicalDeviceBean physicalDevice = new TbTopoPhysicalDeviceBean();
logger.info("physicalDevice Object===" + physicalDevice.getClass());
physicalDevice.setDEVICE_ID(UUID.randomUUID().toString());
physicalDevice.setCREATE_DATE(new Date());
physicalDevice.setDEVICE_ALIAS(params.get("DEVICE_ALIAS") + "");
physicalDevice.setKBP_CLASS(params.get("KBP_CLASS") + "-99");
physicalDevice.setDEVICE_CATALOG(params.get("DEVICE_CATALOG") + "");
physicalDevice.setDEVICE_CNAME(params.get("DEVICE_CNAME") + "");
physicalDevice.setDEVICE_DESC(params.get("DEVICE_DESC") + "");
physicalDevice.setDEVICE_IP(params.get("DEVICE_IP") + "");
TbTopoPhysicalDeviceDao dao = new TbTopoPhysicalDeviceDao();
logger.info("TbTopoPhysicalDeviceDao Object===" + dao.getClass());
dao.addTbTopoPhysicalDevice(physicalDevice);
logger.info("Start add phsical device success");
}catch (Exception ex){
logger.error("add device error .",ex);
}
return bean;
}
/**
* 删除物理设备
* @param deviceId
* @return
*/
@Override
public String deleteDevice(String deviceId) {
boolean flag=false;
int result=dao.deleteTbTopoPhysicalDevice(deviceId);
if(result>0){
return "true";
}else{
return "false";
}
}
/**
* 根据IP查询对应的设备信息。
* @param deviceIp
* @return
*/
public List<TbTopoPhysicalDeviceBean> getPhysicalDevice(String deviceIp){
return dao.getPhysicalDeviceByIp(deviceIp);
}
}
... ...
package com.sitech.snmptrap;
import java.io.Serializable;
import java.util.Date;
/**
* @author frank zmm@honggroup.com.cn
* @Description: 新添加物理设备类,对应数据的表为 TB_TOPO_PHYSICAL_DEVICE。
* 当添加新设备的时候,如果设备IP,设备别名与已经存在的数据相同,则视为修改。
* @Package com.sitech.snmptrap
* @ClassName: com.sitech.snmptrap.TbTopoPhysicalDeviceBean
* @date 2017年03月03日 09:56
*/
public class TbTopoPhysicalDeviceBean implements Serializable{
// 设备ID
private String DEVICE_ID;
// 设备IP地址
private String DEVICE_IP;
// 设备别名
private String DEVICE_ALIAS;
// 设备类型
private String DEVICE_CATALOG;
// 设备中文名称
private String DEVICE_CNAME;
// kbp_class 设备的分类
private String KBP_CLASS;
// 设备描述
private String DEVICE_DESC;
// 所属机房
private String DEVICE_ROOM;
// 所属机架(机柜)
private String DEVICE_RACK;
// 创建日期
private Date CREATE_DATE;
public TbTopoPhysicalDeviceBean() {}
public String getDEVICE_ID() {
return DEVICE_ID;
}
public void setDEVICE_ID(String DEVICE_ID) {
this.DEVICE_ID = DEVICE_ID;
}
public String getDEVICE_IP() {
return DEVICE_IP;
}
public void setDEVICE_IP(String DEVICE_IP) {
this.DEVICE_IP = DEVICE_IP;
}
public String getDEVICE_ALIAS() {
return DEVICE_ALIAS;
}
public void setDEVICE_ALIAS(String DEVICE_ALIAS) {
this.DEVICE_ALIAS = DEVICE_ALIAS;
}
public String getDEVICE_CATALOG() {
return DEVICE_CATALOG;
}
public void setDEVICE_CATALOG(String DEVICE_CATALOG) {
this.DEVICE_CATALOG = DEVICE_CATALOG;
}
public String getDEVICE_CNAME() {
return DEVICE_CNAME;
}
public void setDEVICE_CNAME(String DEVICE_CNAME) {
this.DEVICE_CNAME = DEVICE_CNAME;
}
public String getKBP_CLASS() {
return KBP_CLASS;
}
public void setKBP_CLASS(String KBP_CLASS) {
this.KBP_CLASS = KBP_CLASS;
}
public String getDEVICE_DESC() {
return DEVICE_DESC;
}
public void setDEVICE_DESC(String DEVICE_DESC) {
this.DEVICE_DESC = DEVICE_DESC;
}
public String getDEVICE_ROOM() {
return DEVICE_ROOM;
}
public void setDEVICE_ROOM(String DEVICE_ROOM) {
this.DEVICE_ROOM = DEVICE_ROOM;
}
public String getDEVICE_RACK() {
return DEVICE_RACK;
}
public void setDEVICE_RACK(String DEVICE_RACK) {
this.DEVICE_RACK = DEVICE_RACK;
}
public Date getCREATE_DATE() {
return CREATE_DATE;
}
public void setCREATE_DATE(Date CREATE_DATE) {
this.CREATE_DATE = CREATE_DATE;
}
@Override
public String toString() {
return "TbTopoPhysicalDeviceBean{" +
"DEVICE_ID='" + DEVICE_ID + '\'' +
", DEVICE_IP='" + DEVICE_IP + '\'' +
", DEVICE_ALIAS='" + DEVICE_ALIAS + '\'' +
", DEVICE_CATALOG='" + DEVICE_CATALOG + '\'' +
", DEVICE_CNAME='" + DEVICE_CNAME + '\'' +
", KBP_CLASS='" + KBP_CLASS + '\'' +
", DEVICE_DESC='" + DEVICE_DESC + '\'' +
", DEVICE_ROOM='" + DEVICE_ROOM + '\'' +
", DEVICE_RACK='" + DEVICE_RACK + '\'' +
", CREATE_DATE=" + CREATE_DATE +
'}';
}
}
... ...