/** * Reload the config from the default config file * * @exception java.io.IOException * Thrown if the specified config file cannot be read/loaded * @throws java.io.IOException if any. */ public static synchronized void reload() throws IOException { init(); getInstance().update(); }
private void scheduleSnmpCollection(PollableInterface nodeGroup,String pkgName) { for (String pkgInterfaceName: getPollerConfig().getInterfaceOnPackage(pkgName)) { LOG.debug("found package interface with name: {}", pkgInterfaceName); if (getPollerConfig().getStatus(pkgName, pkgInterfaceName)){ final String criteria = getPollerConfig().getCriteria(pkgName, pkgInterfaceName).orElse(null); if (getPollerConfig().getCriteria(pkgName, pkgInterfaceName).isPresent()) { LOG.debug("package interface: criteria: {}", criteria); excludingCriteria = excludingCriteria + " and not " + criteria; long interval = getPollerConfig().getInterval(pkgName, pkgInterfaceName); LOG.debug("package interface: interval: {}", interval); int port = getPollerConfig().getPort(pkgName, pkgInterfaceName).orElse(-1); int timeout = getPollerConfig().getTimeout(pkgName, pkgInterfaceName).orElse(-1); int retries = getPollerConfig().getRetries(pkgName, pkgInterfaceName).orElse(-1); boolean hasMaxVarsPerPdu = getPollerConfig().hasMaxVarsPerPdu(pkgName, pkgInterfaceName); int maxVarsPerPdu = -1; if (hasMaxVarsPerPdu) maxVarsPerPdu = getPollerConfig().getMaxVarsPerPdu(pkgName, pkgInterfaceName); if (!getPollerConfig().useCriteriaFilters()) { LOG.debug("excluding criteria used for default polling: {}", excludingCriteria); PollableSnmpInterface node = nodeGroup.createPollableSnmpInterface("null", excludingCriteria, getNetwork().schedule(node,getPollerConfig().getInterval(),getScheduler());
/** * <p>serviceGainedHandler</p> * * @param event a {@link org.opennms.netmgt.xml.event.Event} object. */ @EventHandler(uei = EventConstants.NODE_GAINED_SERVICE_EVENT_UEI) public void serviceGainedHandler(Event event) { if (event.getService().equals(getPollerConfig().getService())) { getPollerConfig().rebuildPackageIpListMap(); scheduleNewSnmpInterface(event.getInterface()); } }
/** * <p>schedulePollableInterface</p> * * @param nodeid a int. * @param ipaddress a {@link java.lang.String} object. */ protected void schedulePollableInterface(OnmsIpInterface iface) { String ipaddress = iface.getIpAddress().getHostAddress(); String netmask = null; // netmask is nullable if (iface.getNetMask() != null) { netmask = iface.getNetMask().getHostAddress(); } Integer nodeid = iface.getNode().getId(); if (ipaddress != null && !ipaddress.equals("0.0.0.0")) { String pkgName = getPollerConfig().getPackageName(ipaddress); if (pkgName != null) { LOG.debug("Scheduling snmppolling for node: {} ip address: {} - Found package interface with name: {}", nodeid, ipaddress, pkgName); scheduleSnmpCollection(getNetwork().create(nodeid,ipaddress,netmask,pkgName), pkgName); } else if (!getPollerConfig().useCriteriaFilters()) { LOG.debug("No SNMP Poll Package found for node: {} ip address: {}. - Scheduling according with default interval", nodeid, ipaddress); scheduleSnmpCollection(getNetwork().create(nodeid, ipaddress,netmask, "null"), "null"); } } }
/** * <p>serviceDownHandler</p> * * @param event a {@link org.opennms.netmgt.xml.event.Event} object. */ @EventHandler(uei = EventConstants.NODE_LOST_SERVICE_EVENT_UEI) public void serviceDownHandler(Event event) { String service = event.getService(); String[] criticalServices = getPollerConfig().getCriticalServiceIds(); for (int i = 0; i< criticalServices.length ; i++) { if (criticalServices[i].equals(service)) { LOG.info("Critical Service Lost: suspending SNMP polling for primary interface: {}", event.getInterface()); getNetwork().suspend(event.getInterface()); } } }
/** * <p>serviceUpHandler</p> * * @param event a {@link org.opennms.netmgt.xml.event.Event} object. */ @EventHandler(uei = EventConstants.NODE_REGAINED_SERVICE_EVENT_UEI) public void serviceUpHandler(Event event) { String service = event.getService(); String[] criticalServices = getPollerConfig().getCriticalServiceIds(); for (int i = 0; i< criticalServices.length ; i++) { if (criticalServices[i].equals(service)) { LOG.info("Critical Service Regained: activate SNMP polling for primary interface: {}", event.getInterface()); getNetwork().activate(event.getInterface()); } } }
/** * <p>reloadConfig</p> * * @param event a {@link org.opennms.netmgt.xml.event.Event} object. */ @EventHandler(uei = EventConstants.SNMPPOLLERCONFIG_CHANGED_EVENT_UEI) public void reloadConfig(Event event) { LOG.debug("reloadConfig: managing event: {}", event.getUei()); try { getPollerConfig().update(); getNetwork().deleteAll(); scheduleExistingSnmpInterface(); } catch (Throwable e) { LOG.error("Update SnmpPoller configuration file failed",e); } }