If we can handle Minions on dynamic Ip Addresses

Problem: I want to handle Minion on Dynamic IP Addresses . Is it possible ?

Expected outcome:

OpenNMS version: 27.0.3

Other relevant data:
[e.g. logs from OpenNMS, error messages etc]
(for logs, surround with three back-ticks to get proper formatting, e.g.)


Yes you can deploy a Minion behind a dynamic IP address or NAT. The Minion connects itself to the ReST API endpoint and the message broker. The ReST API and message broker endpoint on the other hand must be a static reachable IP or FQDN from the Minions perspective.

Hi Indigo ,

Thanks for this , so the i assume the REST API endpoint here is OpenNMS FQDN/Static IP ? Message Broker is Kafka which we are using which will be installed in VM having static IP assigned to it

Yes, if you cross untrusted networks, make sure you use strong passwords and TLS.

Hi Indigo ,

with that being said if i remember correctly in OpenNMS instance we give the Minion Server details (IP/FQDN) .

Now with this Minion being deployed over Dynamic IP how deos OpenNMS handle this ? is there feature in OpenNMS to tell Minion is on Dynamic IP ?

The Minion connects itself to a message broker and registers itself as a Node via REST. The OpenNMS serve connects to a message broker as well and the communication is done with message queuing. The OpenNMS server has no information about the dynamic IP from the Minion.

Thanks for this explanation , So if thats the case then if you could help me in letting me know how message broker (kakfka) handles Minions being deployed on Dynamic IP’s ? Do we need to do certain changes at Kafka message broker for this?

Make your Kafka reachable for the Minion, by default 9092/tcp. The advertised listener host/fqdn is an important piece in the Kafka configuration.

okay , so just to confirm what i can take output from this :-

if we have Minion on one VM-A and OpenNMS application installed on other VM-B we dont need direct connectivity between these two VMs A and B right ?

what we need to is to have Message broker which is lets say installed on VM-C to have connectivity with both OpenNMS VM-B server and Minion VM-A server right ?

As I have said earlier, the Minion connects to 2 endpoints:

  • REST API provided by the OpenNMS web interface to provision itself and getting SNMP trapd configs
  • Kafka consuming Collectd/Pollerd jobs and producing messages he receives in the local network, e.g. SNMP Traps, Syslog, Flows

thanks Indigo , apologies to irritate you :smile: .

So Minion connectivity to OpenNMS is via REST API if i understood correctly which is on http/8980 (default) right ?

We don’t need icmp,snmp connectivity to be established from Minion Instance to OpenNMS instance ?

yes, the REST API is HTTP 8980/tcp in plaintext by default. No ICMP or SNMP required between the Minion and OpenNMS or Kafka.