public void deleteByIP(String ip) { String sql = "delete from system_oraspaceconf where ipaddress='" + ip + "'"; try { conn.executeUpdate(sql); } catch (Exception e) { e.printStackTrace(); } }
/* * 查询唯一IP列表 * auth@hukelei * date 2010-01-21 * */ public Hashtable getDistinctIp() { Hashtable returnHash = new Hashtable(); Session session = null; Hashtable retValue = new Hashtable(); try { rs = conn.executeQuery("select distinct(ipaddress) from system_oraspaceconf"); while (rs.next()) returnHash.put(rs.getString("ipaddress"), rs.getString("ipaddress")); } catch (Exception e) { e.printStackTrace(); } return returnHash; }
public void run() { try { HostNodeDao nodeDao = new HostNodeDao(); // 得到被监视的防火墙设备 List nodeList = nodeDao.loadNetwork(8); for (int i = 0; i < nodeList.size(); i++) { HostNode node = (HostNode) nodeList.get(i); } Vector vector = null; int numTasks = nodeList.size(); int numThreads = 200; try { List numList = new ArrayList(); TaskXml taskxml = new TaskXml(); numList = taskxml.ListXml(); for (int i = 0; i < numList.size(); i++) { Task task = new Task(); BeanUtils.copyProperties(task, numList.get(i)); if (task.getTaskname().equals("netthreadnum")) { numThreads = task.getPolltime().intValue(); } } } catch (Exception e) { e.printStackTrace(); } // 生成线程池 ThreadPool threadPool = null; if (nodeList != null && nodeList.size() > 0) { threadPool = new ThreadPool(nodeList.size()); // 运行任务 for (int i = 0; i < nodeList.size(); i++) { threadPool.runTask(createTask((HostNode) nodeList.get(i))); } // 关闭线程池并等待所有任务完成 threadPool.join(); threadPool.close(); } threadPool = null; } catch (Exception e) { e.printStackTrace(); } finally { SysLogger.info("********Firewall Thread Count : " + Thread.activeCount()); } }
public BaseVo loadFromRS(ResultSet rs) { Oraspaceconfig vo = new Oraspaceconfig(); try { vo.setId(rs.getInt("id")); vo.setIpaddress(rs.getString("ipaddress")); vo.setSpacename(rs.getString("spacename")); vo.setLinkuse(rs.getString("linkuse")); vo.setAlarmvalue(rs.getInt("alarmvalue")); vo.setBak(rs.getString("bak")); vo.setReportflag(rs.getInt("reportflag")); vo.setSms(rs.getInt("sms")); } catch (Exception e) { e.printStackTrace(); // SysLogger.info("EventListDao.loadFromRS()",e); vo = null; } return vo; }
/* * 根据IP查询 * */ public List getByIp(String ipaddress) { List list = new ArrayList(); Session session = null; Hashtable retValue = new Hashtable(); try { rs = conn.executeQuery( "select * from system_oraspaceconf where ipaddress = '" + ipaddress + "' order by ipaddress"); // Query query=session.createQuery("from Oraspaceconfig oraspaceconfig where // oraspaceconfig.sms="+smsflag+" order by oraspaceconfig.ipaddress"); while (rs.next()) list.add(loadFromRS(rs)); } catch (Exception e) { e.printStackTrace(); } // TODO Auto-generated method stub return list; }
/* * 根据IP和是否要显示于日报表的标志位查询 * */ public Hashtable getByAlarmflag(Integer smsflag) { List list = new ArrayList(); Session session = null; Hashtable retValue = new Hashtable(); try { rs = conn.executeQuery( "select * from system_oraspaceconf where sms=" + smsflag + " order by ipaddress"); // Query query=session.createQuery("from Oraspaceconfig oraspaceconfig where // oraspaceconfig.sms="+smsflag+" order by oraspaceconfig.ipaddress"); while (rs.next()) list.add(loadFromRS(rs)); if (list != null && list.size() > 0) { for (int i = 0; i < list.size(); i++) { Oraspaceconfig oraspaceconfig = (Oraspaceconfig) list.get(i); String ipaddr = oraspaceconfig.getIpaddress(); String[] iparry = ipaddr.split(":"); IpTranslation tranfer = new IpTranslation(); String[] tip = tranfer.getIpFromHex(iparry[0]); retValue.put( tip[0] + "." + tip[1] + "." + tip[2] + "." + tip[3] + ":" + iparry[1] + ":" + oraspaceconfig.getSpacename(), oraspaceconfig); // SysLogger.info(tip[0]+"."+tip[1]+"."+tip[2]+"."+tip[3]+":"+iparry[1]+":"+oraspaceconfig.getSpacename()+"===="+oraspaceconfig.getSpacename()); } } } catch (Exception e) { e.printStackTrace(); } // TODO Auto-generated method stub return retValue; }
public void collect_data(String id, Hashtable gatherHash) { Hashtable data_ht = new Hashtable(); String jvm_utilization = "0"; try { ServerStream serverstream = new ServerStream(); Hashtable returnVal = new Hashtable(); String ipaddress = ""; Tomcat node = new Tomcat(); TomcatDao dao = new TomcatDao(); try { node = (Tomcat) dao.findByID(id); } catch (Exception e) { } finally { dao.close(); } try { com.afunms.polling.node.Tomcat tc = new com.afunms.polling.node.Tomcat(); BeanUtils.copyProperties(tc, node); ipaddress = tc.getIpAddress(); com.afunms.polling.node.Tomcat tnode = (com.afunms.polling.node.Tomcat) PollingEngine.getInstance().getTomcatByIP(ipaddress); Calendar date = Calendar.getInstance(); Date cc = date.getTime(); String tempsenddate = sdf.format(cc); // 初始化Tomcat服务的状态 tnode.setLastTime(tempsenddate); tnode.setAlarm(false); tnode.getAlarmMessage().clear(); tnode.setStatus(0); StringBuffer tmp = new StringBuffer(); tmp.append(tc.getIpAddress()); tmp.append(","); tmp.append(tc.getPort()); tmp.append(","); tmp.append(tc.getUser()); tmp.append(" , "); tmp.append(tc.getPassword()); returnVal.put(String.valueOf(0), tmp.toString()); } catch (Exception e) { e.printStackTrace(); } String liststr = serverstream.validServer(returnVal); if ("".equals(liststr)) { try { com.afunms.polling.node.Tomcat tc = new com.afunms.polling.node.Tomcat(); BeanUtils.copyProperties(tc, node); // if (data_ht==null){ // 需要增加邮件服务所在的服务器是否能连通 Host host = (Host) PollingEngine.getInstance().getNodeByIP(node.getIpAddress()); Vector ipPingData = (Vector) ShareData.getPingdata().get(node.getIpAddress()); if (ipPingData != null) { Pingcollectdata pingdata = (Pingcollectdata) ipPingData.get(0); Calendar tempCal = (Calendar) pingdata.getCollecttime(); Date cc = tempCal.getTime(); String _time = sdf.format(cc); String lastTime = _time; String pingvalue = pingdata.getThevalue(); if (pingvalue == null || pingvalue.trim().length() == 0) pingvalue = "0"; double pvalue = new Double(pingvalue); if (pvalue == 0) { // 主机服务器连接不上*********************************************** com.afunms.polling.node.Tomcat tnode = (com.afunms.polling.node.Tomcat) PollingEngine.getInstance().getTomcatByIP(ipaddress); tnode.setAlarm(true); tnode.setStatus(1); List alarmList = tnode.getAlarmMessage(); if (alarmList == null) alarmList = new ArrayList(); tnode.getAlarmMessage().add("TOMCAT服务停止"); String sysLocation = ""; try { SmscontentDao eventdao = new SmscontentDao(); String eventdesc = "TOMCAT服务(" + tnode.getAlias() + " IP:" + tnode.getAdminIp() + ")" + "的TOMCAT服务停止"; eventdao.createEventWithReasion( "poll", tnode.getId() + "", tnode.getAdminIp() + "(" + tnode.getAdminIp() + ")", eventdesc, 3, "tomcat", "ping", "所在的服务器连接不上"); } catch (Exception e) { e.printStackTrace(); } } else { com.afunms.polling.node.Tomcat tnode = (com.afunms.polling.node.Tomcat) PollingEngine.getInstance().getTomcatByIP(ipaddress); tnode.setAlarm(true); tnode.setStatus(3); List alarmList = tnode.getAlarmMessage(); if (alarmList == null) alarmList = new ArrayList(); tnode.getAlarmMessage().add("TOMCAT服务停止"); Pingcollectdata hostdata = null; hostdata = new Pingcollectdata(); hostdata.setIpaddress(ipaddress); Calendar date = Calendar.getInstance(); hostdata.setCollecttime(date); hostdata.setCategory("TomcatPing"); hostdata.setEntity("Utilization"); hostdata.setSubentity("ConnectUtilization"); hostdata.setRestype("dynamic"); hostdata.setUnit("%"); hostdata.setThevalue("0"); TomcatDao tomcatdao = new TomcatDao(); try { tomcatdao.createHostData(hostdata); } catch (Exception e) { e.printStackTrace(); } finally { tomcatdao.close(); } } } else { com.afunms.polling.node.Tomcat tnode = (com.afunms.polling.node.Tomcat) PollingEngine.getInstance().getTomcatByIP(ipaddress); tnode.setAlarm(true); tnode.setStatus(3); List alarmList = tnode.getAlarmMessage(); if (alarmList == null) alarmList = new ArrayList(); tnode.getAlarmMessage().add("TOMCAT服务停止"); Pingcollectdata hostdata = null; hostdata = new Pingcollectdata(); hostdata.setIpaddress(ipaddress); Calendar date = Calendar.getInstance(); hostdata.setCollecttime(date); hostdata.setCategory("TomcatPing"); hostdata.setEntity("Utilization"); hostdata.setSubentity("ConnectUtilization"); hostdata.setRestype("dynamic"); hostdata.setUnit("%"); hostdata.setThevalue("0"); TomcatDao tomcatdao = new TomcatDao(); try { tomcatdao.createHostData(hostdata); } catch (Exception e) { e.printStackTrace(); } finally { tomcatdao.close(); } } // } createSMS("tomcat", tc); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else { Pingcollectdata hostdata = null; hostdata = new Pingcollectdata(); hostdata.setIpaddress(ipaddress); Calendar date = Calendar.getInstance(); hostdata.setCollecttime(date); hostdata.setCategory("TomcatPing"); hostdata.setEntity("Utilization"); hostdata.setSubentity("ConnectUtilization"); hostdata.setRestype("dynamic"); hostdata.setUnit("%"); hostdata.setThevalue("100"); TomcatDao tomcatdao = new TomcatDao(); try { tomcatdao.createHostData(hostdata); } catch (Exception e) { e.printStackTrace(); } finally { tomcatdao.close(); } } String[] pos_s = liststr.split(","); for (int list_i = 0; list_i < pos_s.length - 1; list_i++) { String tmps = returnVal.get(pos_s[list_i]).toString(); String[] serverinfo = tmps.split(","); serverstream.foundData(serverinfo[0], serverinfo[1], serverinfo[2], serverinfo[3]); data_ht = serverstream.data_ht; TomcatDao tomcatdao = new TomcatDao(); Hashtable sendeddata = ShareData.getSendeddata(); try { Calendar time = Calendar.getInstance(); String lasttime = data_ht.get("mon_time").toString(); String nexttime = data_ht.get("nexttime").toString(); String server = data_ht.get("server").toString(); String jvm = data_ht.get("jvm").toString(); String ip = data_ht.get("ip").toString(); String port = data_ht.get("port").toString(); String portsum1 = data_ht.get("portsum1").toString(); String portsum2 = data_ht.get("portsum2").toString(); String portdetail1 = data_ht.get("portdetail1").toString(); String portdetail2 = data_ht.get("portdetail2").toString(); if (data_ht != null) { int jvm_memoryuiltillize = 0; String[] temjvm = jvm.split(","); double freememory = Double.parseDouble(temjvm[0].trim()); double totalmemory = (double) Double.parseDouble(temjvm[1].trim()); double maxmemory = (double) Double.parseDouble(temjvm[2].trim()); jvm_memoryuiltillize = (int) Math.rint((totalmemory - freememory) * 100 / totalmemory); jvm_utilization = String.valueOf(jvm_memoryuiltillize); Pingcollectdata hostdata = null; hostdata = new Pingcollectdata(); hostdata.setIpaddress(ip); Calendar date = Calendar.getInstance(); hostdata.setCollecttime(date); hostdata.setCategory("tomcat_jvm"); hostdata.setEntity("Utilization"); hostdata.setSubentity("jvm_utilization"); hostdata.setRestype("dynamic"); hostdata.setUnit("%"); hostdata.setThevalue(jvm_utilization); try { tomcatdao.createHostData(hostdata); if (sendeddata.containsKey("tomcat" + ":" + ip)) sendeddata.remove("tomcat" + ":" + ip); } catch (Exception e) { e.printStackTrace(); } } } catch (Exception e) { e.printStackTrace(); } finally { tomcatdao.close(); } } try { data_ht.put("jvm_utilization", jvm_utilization); ShareData.setTomcatdata(node.getIpAddress(), data_ht); } catch (Exception ex) { ex.printStackTrace(); } data_ht = null; } catch (Exception e) { e.printStackTrace(); } finally { } }
public void createSMS(String web, com.afunms.polling.node.Tomcat node) { // 建立短信 // 从内存里获得当前这个IP的PING的值 Calendar date = Calendar.getInstance(); try { if (!sendeddata.containsKey(web + ":" + node.getId())) { // 若不在,则建立短信,并且添加到发送列表里 Smscontent smscontent = new Smscontent(); String time = sdf.format(date.getTime()); smscontent.setLevel("2"); smscontent.setObjid(node.getId() + ""); smscontent.setMessage(node.getIpAddress() + "的TOMCAT服务停止"); smscontent.setRecordtime(time); smscontent.setSubtype("tomcat"); smscontent.setSubentity("ping"); smscontent.setIp(node.getIpAddress()); // smscontent.setMessage("db&"+time+"&"+dbmonitorlist.getId()+"&"+db+"("+dbmonitorlist.getDbName()+" IP:"+dbmonitorlist.getIpAddress()+")"+"的数据库服务停止"); // 发送短信 SmscontentDao smsmanager = new SmscontentDao(); smsmanager.sendURLSmscontent(smscontent); sendeddata.put(web + ":" + node.getId(), date); } else { // 若在,则从已发送短信列表里判断是否已经发送当天的短信 Calendar formerdate = (Calendar) sendeddata.get(web + ":" + node.getId()); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date last = null; Date current = null; Calendar sendcalen = formerdate; Date cc = sendcalen.getTime(); String tempsenddate = formatter.format(cc); Calendar currentcalen = date; cc = currentcalen.getTime(); last = formatter.parse(tempsenddate); String currentsenddate = formatter.format(cc); current = formatter.parse(currentsenddate); long subvalue = current.getTime() - last.getTime(); if (subvalue / (1000 * 60 * 60 * 24) >= 1) { // 超过一天,则再发信息 Smscontent smscontent = new Smscontent(); String time = sdf.format(date.getTime()); smscontent.setLevel("2"); smscontent.setObjid(node.getId() + ""); smscontent.setMessage(node.getAlias() + " (" + node.getIpAddress() + ")" + "的访问服务停止"); smscontent.setRecordtime(time); smscontent.setSubtype("tomcat"); smscontent.setSubentity("ping"); smscontent.setIp(node.getIpAddress()); // smscontent.setMessage("db&"+time+"&"+dbmonitorlist.getId()+"&"+db+"("+dbmonitorlist.getDbName()+" IP:"+dbmonitorlist.getIpAddress()+")"+"的数据库服务停止"); // 发送短信 SmscontentDao smsmanager = new SmscontentDao(); smsmanager.sendURLSmscontent(smscontent); // 修改已经发送的短信记录 sendeddata.put(web + ":" + node.getId(), date); } } } catch (Exception e) { e.printStackTrace(); } }
/* * * 从内存和数据库表里获取每个IP的端口信息,存入端口配置表里 */ public void fromLastToOraspaceconfig() throws Exception { List list = new ArrayList(); List list1 = new ArrayList(); List shareList = new ArrayList(); Hashtable oraspacehash = new Hashtable(); Session session = null; Vector configV = new Vector(); IpTranslation tranfer = new IpTranslation(); try { // 从ORASPACCE配置表里获取列表 rs = conn.executeQuery("select * from system_oraspaceconf order by ipaddress"); while (rs.next()) list1.add(loadFromRS(rs)); if (list1 != null && list1.size() > 0) { for (int i = 0; i < list1.size(); i++) { Oraspaceconfig oraspaceconfig = (Oraspaceconfig) list1.get(i); // IP:表空间名称 oraspacehash.put( oraspaceconfig.getIpaddress() + ":" + oraspaceconfig.getSpacename(), oraspaceconfig); } } } catch (Exception e) { e.printStackTrace(); } try { // 从内存中得到所有ORASPACCE采集信息 Hashtable sharedata = ShareData.getOraspacedata(); // 从数据库得到监视ORASPACCE列表 DBDao dbdao = new DBDao(); DBTypeDao typedao = new DBTypeDao(); DBTypeVo typevo = typedao.findByDbtype("oracle"); shareList = dbdao.getDbByTypeMonFlag(typevo.getId(), 1); if (shareList != null && shareList.size() > 0) { for (int i = 0; i < shareList.size(); i++) { // OraclePartsDao oracleDao=null; try { DBVo dbmonitorlist = (DBVo) shareList.get(i); // oracleDao=new OraclePartsDao(); // List<OracleEntity> oracles=oracleDao.findOracleParts(dbmonitorlist.getId()); // for(OracleEntity ora:oracles){ // // } if (sharedata.get(dbmonitorlist.getIpAddress() + ":" + dbmonitorlist.getId()) != null) { Vector tableinfo_v = (Vector) sharedata.get(dbmonitorlist.getIpAddress() + ":" + dbmonitorlist.getId()); if (tableinfo_v == null) continue; Hashtable spaces = new Hashtable(); spaces.put("ip", dbmonitorlist.getIpAddress() + ":" + dbmonitorlist.getId()); spaces.put("tableinfo_v", tableinfo_v); list.add(spaces); } } catch (Exception e) { e.printStackTrace(); } finally { // if(oracleDao!=null) // oracleDao.close(); } } } // 判断采集到的ORASPACCE信息是否已经在ORASPACCE配置表里已经存在,若不存在则加入 if (list != null && list.size() > 0) { for (int i = 0; i < list.size(); i++) { Hashtable spaces = (Hashtable) list.get(i); if (spaces != null && spaces.size() > 0) { String ip = (String) spaces.get("ip"); Vector tableinfo_v = (Vector) spaces.get("tableinfo_v"); if (tableinfo_v != null && tableinfo_v.size() > 0) { Oraspaceconfig oraspaceconfig = null; for (int k = 0; k < tableinfo_v.size(); k++) { Hashtable return_value = (Hashtable) tableinfo_v.get(k); String spacename = (String) return_value.get("tablespace"); String[] iparr = ip.split(":"); String tip = tranfer.formIpToHex(iparr[0]); if (!oraspacehash.containsKey(tip + ":" + iparr[1] + ":" + spacename)) { oraspaceconfig = new Oraspaceconfig(); oraspaceconfig.setSpacename(spacename); oraspaceconfig.setBak(""); oraspaceconfig.setIpaddress(tip + ":" + iparr[1]); oraspaceconfig.setLinkuse(""); oraspaceconfig.setAlarmvalue(90); oraspaceconfig.setSms(new Integer(0)); // 0:不告警 1:告警,默认的情况是不发送短信 oraspaceconfig.setReportflag(new Integer(0)); // 0:不存在于报表 1:存在于报表,默认的情况是不存在于报表 conn = new DBManager(); save(oraspaceconfig); // configV.add(oraspaceconfig); oraspacehash.put(tip + ":" + iparr[1] + ":" + spacename, oraspaceconfig); } } } } } } } catch (Exception e) { e.printStackTrace(); } // TODO Auto-generated method stub }