From OpenNMS
Contents |
Feature Description
This feature is a link service monitor that monitors the status of a link end point. A link end point is a node that has the end point service. For a node to have the end point service it must match at least one of the conditions in the configuration. When a endpoint status changes it will update the link status on the map. This feature has a number of nifty features and configuring it might be a little tricky hopefully this page clearly demonstrates the configuration and usage of this feature.
A wireless link service monitor will be developed that can be used to represent the status of a link. This service monitor will most likely use SNMP but could use HTTP to determine the link status. Links on the map will be updated to display the link state (up/down).
See Link Monitoring Design for an overview of the architecture.
Prerequisites
This feature depends on the Automatic_Map_Creation feature. Prior to configuring this feature you will need to install and configure the opennms-plugin-provisioning-map and opennms-plugin-provisioning-link packages, as well as configure them. You can find all that here
Configuration
To configure link monitoring you will need to configure the following, depending on your network configuration and devices. This feature is highly customizable and should be able to cover many different device types.
Configure EndPoint Types
This configuration covers what type of devices and how to detect and poll the end point service. There are two types of end points a pingable end point and a Snmp end point. You can configure as many as you would like. The default configuration file is $OPENNMS_HOME/etc/endpoint-configuration.xml. Most likely you may have a combination of different devices that serve as end points to a link and you can have as many devices configured.
Ping EndPoint
This configuration defines one pingable device. Because we use Snmp sysOid to determine the device you will need Snmp to be enabled, even though the device's status is determined by pinging it. This is for the initial end point detection.
<endpoint-types xmlns="http://xmlns.opennms.org/xsd/config/endpoint-types" endpoint-service-name="EndPoint"> <endpoint-type name="pingable"> <sysoid-mask>.1.3.6.1.4.1.XXXX</sysoid-mask> <pingable /> </endpoint-type> </endpoint-types>
SNMP Match EndPoint
If the device has multiple Snmp oids that need to be checked to determine the status of the end point you can add some match criteria that will be checked everytime the node is polled. The configuration should be fairly easy to understand, anything in the <and> tag will be the criteria for calculating the status of the end point. You can have unlimited nested conditions with either <and/> or< or/> tags.
<endpoint-types xmlns="http://xmlns.opennms.org/xsd/config/endpoint-types" endpoint-service-name="EndPoint"> <endpoint-type name="snmpMatch"> <sysoid-mask>.1.3.6.1.4.1.YYYY</sysoid-mask> <and> <match-oid oid=".1.3.6.1.4.1.YYYY.1">^1$</match-oid> <match-oid oid=".1.3.6.1.4.1.YYYY.2">^1$</match-oid> <match-oid oid=".1.3.6.1.4.1.YYYY.3">^1$</match-oid> <or> <match-oid oid=".1.3.6.1.4.1.YYYY.4">^1$</match-oid> <match-oid oid=".1.3.6.1.4.1.YYYY.5">^1$</match-oid> </or> </and> </endpoint-type> </endpoint-types>
Configure SNMP
If your endpoint devices do not use the default "public" SNMP community name, you will have to configure snmp-config.xml to define IP address ranges and community strings for your devices.
Configure the Poller
Add the EndPoint service monitor to poller-configuration.xml.
<poller-configuration threads="30" serviceUnresponsiveEnabled="false">
...
<package name="example1">
...
<service name="EndPoint" interval="300000" user-defined="false" status="on">
<parameter key="retry" value="2" />
<parameter key="timeout" value="3000" />
</service>
</package>
...
<monitor service="EndPoint" class-name="org.opennms.netmgt.provision.adapters.link.EndPointMonitor" />
...
</poller-configuration>
The default configuration file location is $OPENNMS_HOME/etc/endpoint-configuration.xml.
Configure Link Adapter
The link adapter will need to know the name of the endpoint service you created.
<link-adapter-configuration xmlns="http://xmlns.opennms.org/xsd/config/map-link-adapter" endpoint-service-name="EndPoint"> <for match="^link-(.*?)-to-(.*?)$"> <link>link-$2-to-$1</link> </for> </link-adapter-configuration>
Configure Foreign Source
Next, you should configure the foreign source so that it has an EndPoint Detector plugin available.
Create a detector service, the name should match the EndPoint service name used above.
This will make sure that nodes which are endpoints in a link are detected when they are provisioned.
- The detector plugin can optionally take a
endpoint-type-urlparameter which defines the location of the endpoint configuration file. The default is$OPENNMS_HOME/etc/endpoint-configuration.xml. - The detector plugin can optionally take a
endpoint-name-patternparameter which defines a regular expression to apply to the node name. Only nodes with node labels that match this pattern can be an EndPoint.
Version History/Availability
- This feature was added in version 1.7.8






