Auto Discovery with Detectors

Currently Horizon uses ICMP ping sweep to find IP addresses on the network. You can define IP ranges and specifics in discovery-configuration.xml:

Sample discovery configuration
<discovery-configuration xmlns="http://xmlns.opennms.org/xsd/config/discovery" packets-per-second="1"
                  initial-sleep-time="30000" restart-sleep-time="86400000" retries="1" timeout="2000">
   <!-- see examples/discovery-configuration.xml for options -->
	 <specific>10.0.0.5</specific>
   <include-range>
      <begin>192.168.0.1</begin>
      <end>192.168.0.254</end>
   </include-range>
   <include-url>file:/opt/opennms/etc/include.txt</include-url>
</discovery-configuration>

Auto discovery with detectors lets users specify the services to detect, apart from ICMP ping, for the specified IP addresses to be discovered. Auto discovery sends a new suspect event only when the specified detectors succeeds.

Sample discovery configuration with detectors:
<discovery-configuration xmlns="http://xmlns.opennms.org/xsd/config/discovery" packets-per-second="1"
                  initial-sleep-time="30000" restart-sleep-time="86400000" retries="1" timeout="2000">

  <definition location="MINION" foreign-source="ApexOffice">

		<detectors>
			<detector name="reverse-dns-lookup" class-name="org.opennms.netmgt.provision.detector.rdns.ReverseDNSLookupDetector"/>
			<detector name="SNMP" class-name="org.opennms.netmgt.provision.detector.snmp.SnmpDetector">
				<parameter key="timeout" value="5000"/>
				<parameter key="ttl" value="120000"/>
			</detector>
		</detectors>

		<specific>10.0.0.5</specific>

		<include-range>
			<begin>192.168.0.1</begin>
			<end>192.168.0.254</end>
		</include-range>

    <exclude-range>
			<begin>192.168.0.120</begin>
			<end>192.168.0.125</end>
		</exclude-range>

		<include-url>file:/opt/opennms/etc/include.txt</include-url>

	</definition>

</discovery-configuration>

In the configuration above, specifics and ranges are moved into definition with SNMP and reverse-dns-lookup detectors. When all of the detectors succeed at a given location, then only the specific IP address considered to be discovered.

A definition without any detectors will fall back to ICMP ping for discovery.

Metadata DSL

Service detectors can use MetaData DSL (domain specific language) to leverage dynamic configuration in parameter values to interpolate metadata into the parameter.

The syntax lets you use patterns in an expression, whereby the metadata is replaced with a corresponding value during the collection process.

During evaluation of an expression, the following scopes are available:

  • Node metadata

  • Interface metadata