OpenNMS main page: http://www.opennms.org/wiki/Main_Page
Installing instructions (Debian): http://www.opennms.org/wiki/Installation:Debian
General install: http://www.opennms.org/wiki/Quick_Start
OpenNMS is an enterprise-grade network management platform developed under the open-source model. Unlike traditional network management products which are very focused on network elements such as interfaces on switches and routers, OpenNMS focuses on the services network resources provide: web pages, database access, DNS, DHCP, etc. (although information on network elements is also available).
The basic monitored "element" is called an "interface", and an interface is uniquely identified by an IP address. Services are mapped to interfaces, and if a number of interfaces are discovered to be on the same device (either via SNMP or SMB) then they may be grouped together as a "node".
Discovery in OpenNMS consists of two parts: discovering an IP address to monitor and then discovering the services supported by that IP address. The first part is much simpler than the second.
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 data can be collected by :
- NSClient (the Nagios Agent),
The basic idea behind the poller starts with grouping network devices into packages. Each package will consist of various services and how they are to be polled (i.e. frequency). In addition, should an outage be detected, each package can have its own downtime model which controls how the poller will dynamically adjust its polling on services that are down. Finally, each package has an outage calendar that schedules times when the poller is not to poll (i.e. scheduled downtime).
The poller will only operate on interfaces and services that have been previously discovered by capsd.
Netconf extension with yangcli for OpenNMS
Installation of Netconf in OpenNMS
1.) First of all, before you copy these files, create the appropriate project with the following command in the Maven project:
cd <OPENNMS_HOME> mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=org.opennms -DartifactId=opennms-netconf
2.) Installation of JUDS for OpenNMS Netconf:
Download source code of JUDS, then:
git clone git://github.com/mcfunley/juds.git cd juds ./autoreconf.sh ./configure make sudo make install
Download only the jar and so files. Copy the so file in the /usr/lib Media:Juds.tgz, then
sudo cp libunixdomainsocket-linux-i386.so
Download my hacked program (Only the c & makefile files were edited) Media:Juds_full.tgz, then
make sudo make install
3.) Set the dependecies, what the project uses. Enter the opennms-netconf directory, then type the following command:
mvn install:install-file -DgroupId=org -DartifactId=juds -Dversion=0.94 -Dpackaging=jar -Dfile=/home/openflow/juds/juds-0.94.jar
<dependency> <groupId>org</groupId> <artifactId>juds</artifactId> <version>0.94</version> </dependency>
<dependency> <groupId>org.opennms</groupId> <artifactId>opennms-netconf</artifactId> <version>$VERSION</version> //e.g.:<version>1.0-SNAPSHOT</version> </dependency>
( After the <bean name="/navBar.htm" class="org.opennms.web.controller.NavBarController"> tag and between the <list> tags):
<bean class="org.opennms.web.navigate.LocationBasedNavBarEntry"> <property name="name" value="NetConf"/> <property name="url" value="netconf/index.jsp"/> <property name="locationMatch" value="NetConf"/> </bean>
Installation of OpenNMS communication in Yuma
Note: create backup files, what you will overwriteCopy the downloaded files, then
make make install
FlowVisor management extension for OpenNMS
Install OpenNMS from source. (Installation steps and more information is on the link above.)
Download the files to your computer. Media:Opennms_fv.tar.gz
This works with FlowVisor v0.7.2 and OpenNMS v1.8.12. It should work with other versions, if the XML-RPC API of the FlowVisor is unchanged. For that we need install the new flowvisor.jar file into the local repository and correct the dependency-version entries of the POM files in the opennms-flowvisor project. (See the command in 1.b) We can use other versions of OpenNMS too. In this case we have to modify the version entries of the parent tag in the POM files of the downloadad project. For example:
First step is to create a Maven project for the opennms-flowvisor modul:
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=org.opennms -DartifactId=opennms-flowvisor -Dpackaging=jar
Copy the downloaded files from opennms-flowvisor to the newly created (opennms-flowvisor) project.
Copy the downloaded 'flowvisor' folder into /opennms-webapp/src/main/webapp/.
If we use OpenNMS v1.8.12: Replace the dispatcher-servlet.xml file. (/opennms-webapp/src/main/webapp/WEB-INF/dispatcher-servlet.xml)
If we use another version: Insert the following XML code in the opennms/target/opennms-<version>/jetty-webapp/WEB-INF/dispatcher-servlet.xml instead of the previous step. ( After the <bean name="/navBar.htm" class="org.opennms.web.controller.NavBarController"> tag and between the <list> tags):
<property name="name" value="FlowVisor"/>
<property name="url" value="flowvisor/index.jsp"/>
<property name="locationMatch" value="FlowVisor"/>
Set the dependecies of the modified projects:
(v0.7.2 jar files: Media:Opennms-fv-dep.tar.gz)
1.a - Install the flowvisor.jar into the local repository. (FlowVisorClient uses some class from this jar)
This jar can be found in the flowvisor/dist/ folder. (We need install also the flowvisor from source.)
1.b - Install the openflow.jar into the local repository. (Classes in the flowvisor.jar uses some class from this jar)
This jar can be found in the flowvisor/lib/ folder.
2 - Copy the XML code into the /opennms-webapp/pom.xml between the <dependencies> tags.
Set the SSL:
Import the certificate from the FlowVisor's mySSLKeyStore and export to a keystore that created for the OpenNMS.
keytool -importcert -alias FVcert -trustcacerts -file cert.crt -keystore opennms/keystore -storepass flowvisor
Then tell the OpenNMS to use the created keystore.
Finally rebuild the OpenNMS.
Management page: http:<IP address>:8980/opennms/flowvisor/index.jsp