Idea of Service URLs

Abstract

The idea here is to enhance the service detection phase to define the parameters that will end up being used during service polling phase.

One advantage that this would give is the service definitions in poller-configuration.xml can be significantly reduce because the parameters don’t have to be hard coded into the service entries there. Say you were running 30 apache httpd docker instances using port 8000-8029 for each. Given the current poller configuration, you would need to create 30 service entries each defining a port parameter. With ServiceUrls, you just need the single entry in the poller-configuration, but it would match against the ServiceUrl’s pattern.

For example:

SELECT ifs.id, 
       s.servicename, 
       ip.ipaddr, 
       ip.iphostname, 
       ifs.url 
  FROM ifservices ifs 
  JOIN service s 
    ON s.serviceid = ifs.serviceid 
  JOIN ipinterface ip 
    ON ip.id = ifs.ipinterfaceid 
 WHERE ip.id = 9999999;

   id    | servicename |    ipaddr     |  iphostname   |                               url
---------+-------------+---------------+---------------+------------------------------------------------------------------
  353553 | ICMP        | 10.100.58.116 | 10.100.58.116 | icmp://10.100.58.116?retries=1&timeout=800
 1075355 | HTTPS       | 10.100.58.116 | 10.100.58.116 | https://10.100.58.116:443/opennms/alarm/list.htm?display=long
  353555 | SNMP        | 10.100.58.116 | 10.100.58.116 | snmp://10.100.58.116?retries=3&timeout=800&read-community=public

So, in this case we just create a URL handlers for the IcmpMonitor, HttpsMonitor, and SnmpMonitor classes.

Folks

  • Ron Roskens