Create matching capsd plugin for for DNSResolutionMonitor poller

Description

Currently, the new DNS resolution monitor introduced with OpenNMS 1.10 has no corresponding capsd plugin. As a result, DNSResolutionMonitor is only usable through creation of a custom provisioning requisition.

The feature would be more accessible if a capsd plugin existed to allow automatic discovery and use of DNSResolutionMonitor through capsd scanning. This is especially true if other nodes have already been created through capsd automatic provisioning, as DNSResolutionMonitor uses the node label as its DNS name lookup source. If one uses DNSResolutionMonitor in this scenario, one has to have two identical nodes with the same label for each node, or use only provisiond for all nodes. Thanks!

Acceptance / Success Criteria

None

Lucidchart Diagrams

Activity

Show:

Tim Miller Dyck August 20, 2012 at 11:53 AM

Hi Seth,

>I think that basically you are asking for DNSResolutionMonitor entries to be added for all node hostnames automatically and to have it run the queries against discovered DNS services. Is this just to verify that your DNS servers are working properly?

Yes, the goal would be to do automatic checking that IPv4 and/or IPv6 DNS entries exist for the specified nodes to verify that DNS entries exist for each node as expected in site DNS services.

>If so, what would this do that the existing DNS poller cannot do? Do you want to test IPv4 versus IPv6 name resolution?

I was originally using the DNS poller but needed to distinguish between IPv6 and IPv4 registrations. I had a case where a server was correctly registering a IPv6 DNS name but not its matching IPv4 DNS name and needed to monitor for this error condition. The org.opennms.netmgt.poller.monitors.DnsMonitor package does not distinguish between these, which is correct behavior as per the DNS RFC 1034. In the RFC section "5.2.1. Typical functions", a data not found error (not a name error) should be returned when the referenced name exists, but data of the appropriate type does not.

The DnsMonitor package allows specification of both the DNS server to query and the name to test, which is more flexible than DNSResolutionMonitor, so maybe it would make more sense to extend DnsMonitor to distinguish between IPv4 and IPv6 registrations.

Seth Leger August 13, 2012 at 4:19 PM

The DNSResolutionMonitor is designed to test the resolution of specific address from the local name resolution of the OpenNMS host for both IPv4 and IPv6 to verify that DNS resolution works properly. Since it can be distributed to remote pollers, it can monitor the DNS resolution from multiple vantage points. It doesn't operate against discovered DNS services... the existing DNS poller can do this.

The node-label behavior of the DNSResolutionMonitor was a shortcut (read: hack) to create an easy list of names that should be tested.

I think that basically you are asking for DNSResolutionMonitor entries to be added for all node hostnames automatically and to have it run the queries against discovered DNS services. Is this just to verify that your DNS servers are working properly? If so, what would this do that the existing DNS poller cannot do? Do you want to test IPv4 versus IPv6 name resolution?

Details

Assignee

Reporter

Components

Affects versions

Priority

PagerDuty

Created August 6, 2012 at 8:09 PM
Updated July 26, 2023 at 2:18 PM