OpenNMS

From Sb
Jump to: navigation, search

OpenFlow Main Page

Contents

About OpenNMS

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

Configuration:

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 :

  • SNMP,
  • NSClient (the Nagios Agent),
  • JMX,
  • HTTP

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

Media:Opennms_netconf.tar.gz

(Download and install OpenNMS from source)

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
OR 
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
OR 
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
Copy the XML code into the <OPENNMS_HOME>/opennms-netconf/pom.xml between the <dependencies> tags, IF NOT EXISTS:
  <dependency>
    <groupId>org</groupId>
    <artifactId>juds</artifactId>
    <version>0.94</version>
  </dependency>
Copy the XML code into the <OPENNMS_HOME>/opennms-webapp/pom.xml between the <dependencies> tags, IF NOT EXISTS:
  <dependency>
    <groupId>org.opennms</groupId>
    <artifactId>opennms-netconf</artifactId>
    <version>$VERSION</version>  //e.g.:<version>1.0-SNAPSHOT</version>
  </dependency>
4.) Insert the following XML code in the <OPENNMS_HOME>/opennms-webapp/src/main/webapp/WEB-INF/dispatcher-servlet.xml
( 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>
5.) Finally copy the downloaded files into the Maven project, and rebuild.

Installation of OpenNMS communication in Yuma

Media:Yuma.tgz

(Download and install Yuma-tools)

Note: create backup files, what you will overwrite

Copy the downloaded files, then
make
make install
in Yuma root.

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:

  <parent>
    <artifactId>opennms</artifactId>
    <groupId>org.opennms</groupId>
    <version>1.8.12</version>
  </parent>

First step is to create a Maven project for the opennms-flowvisor modul:

cd opennms
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):

  <bean class="org.opennms.web.navigate.LocationBasedNavBarEntry">
    <property name="name" value="FlowVisor"/>
    <property name="url" value="flowvisor/index.jsp"/>
    <property name="locationMatch" value="FlowVisor"/>
  </bean>

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.)

mvn install:install-file -Dfile=flowvisor/dist/flowvisor.jar -DgroupId=org -DartifactId=flowvisor -Dversion=0.7.2 -Dpackaging=jar -DgeneratePom=true

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.

mvn install:install-file -Dfile=flowvisor/lib/openflow.jar -DgroupId=org -DartifactId=openflow -Dversion=1.0 -Dpackaging=jar -DgeneratePom=true

2 - Copy the XML code into the /opennms-webapp/pom.xml between the <dependencies> tags.

  <dependency>
    <groupId>org.opennms</groupId>
    <artifactId>opennms-flowvisor</artifactId>
    <version>1.0</version>
  </dependency>

Set the SSL:

Import the certificate from the FlowVisor's mySSLKeyStore and export to a keystore that created for the OpenNMS.

keytool –export –keystore /usr/local/etc/flowvisor/mySSLKeyStore –file cert.crt –storepass CHANGEME_PASSWD
keytool -importcert -alias FVcert -trustcacerts -file cert.crt -keystore opennms/keystore -storepass flowvisor

Then tell the OpenNMS to use the created keystore.

echo 'ADDITIONAL_MANAGER_OPTIONS=”-Djavax.net.ssl.trustStore=/opennms/keystore”' >> opennms/target/opennms-<version>/etc/opennms.conf

Finally rebuild the OpenNMS.

Management page: http:<IP address>:8980/opennms/flowvisor/index.jsp

Personal tools