O.S. : Ubuntu12.04 LTS
OpenNMS Version : 1.10.7
OpenNMS Block Diagram
Discovery & Monitor daemons
Event handling daemon
eventconf.xml -> Defines the UEI (Universal Event Identifiers).
eventd-configuration.xml -> Defines operating parameters for eventd such as timeouts, listener threads and listener port.
events-archiver-configuation.xml -> Configuration for event archive daemon.
events.archiver.properties -> Fine tune events archive subsystem.
etc/events/*.xml -> Vendor UEI define files.
Listening “eventsConfigChange” event.
Discovery service implement the Singleton pattern.
discPause, interfaceDeleted, discResume, nodeGainedInterface, discoveryConfigChange and reloadDaemonConfig.
Capsd (Capabilities daemon, capsd-configuration.xml)
Notified by the discovery process when a new node is discovered, the polls for all the capabilities for this node and loading the data collected into the database.
deleteService, changeService, deleteInterface, newSuspect, froceRescan, addInterface, nodeDeleted, addNode, updateServer, nodeAdded, duplicateNodeDeleted, deleteNode and updateService.
Responsible for gathering and storing data from various sources, including SNMP, JMX, HTTP and NSClient.
nodeGainedService, primarySnmpInterfaceChanged, reinitializePrimarySnmpInterface, interfaceReparented, nodeDeleted, duplicateNodeDeleted, interfaceDeleted, serviceDeleted, schedOutagesChanged, configureSNMP, thresholdConfigChange, reloadDaemonConfig and nodeCategoryMembershipChanged.
Polling services, including ICMP, DNS, FTP, HTTP, HTTPS, SSH, MySQL….
nodeGaineService, serviceDeleted, interfaceReparented, nodeDeleted, nodeLabelChanged, duplicateNodeDeleted, interfaceDeleted, suspendPollingService, resumePollingService, schedOutagesChanged, demandPollService, thresholdConfigChange, assetInfoChanged and nodeCategoryMembershipChanged.
RTC (Real-Time Collector)
The RTC initializes its data from the database when it comes up then subscribes to the events subsystem to receive events of interest to keep the data up-to-date.
nodeGainedService, nodeLostService, interfaceDown, nodeDown, nodeUp, nodeCategoryMembershipChanged, interfaceUp, nodeRegainedService, serviceDeleted, serviceunmanaged, interfaceReparented, subscribe, unsubscribe and assetInfoChanged.
There are two major ways that OpenNMS gathers data about the network.
The first is through polling. Processes called monitors connect to a network resource and perform a simple test to see if the resource is responding correctly. If not, events are generated.
The second is through data collection using collectors. Currently, the only collector is for SNMP data.
Collectd record SNMP data to RRDTool in /share/rrd/snmp/NodeID/*, Ex: tcpOutSegs.jrb, icmpInEchos.jrb, tcpInSegs.jrb, ifInOctets.jrb, ifoutOctets.jrb…
Poller record Service data to RRDTool in /share/rrd/response/IP/*, Ex: icmp.jrb ssh.jrd…
OpenNMS configuration files:
Discovery & Monitor Flow
Here is the event flow when press “Save and Restart Discovery” button on WebGUI.