Installation:Yum

From OpenNMS

Contents

Installing on RedHat-Based Distributions

These instructions cover installation for most Yum-Based distributions (Fedora Core, RedHat Enterprise Linux, and CentOS).

If you want to use Yum on RHEL4 instead of uptodate, see the Yum on RHEL4 page.

Install the Yum Repository RPM

Preparation: Yum Fastest Mirror Plugin

Before you start, you may want to install the yum-fastestmirror RPM if your distro supports it. This can often speed up downloads of large packages. See the CentOS Wiki for more details.

 [user@localhost]$ sudo yum install yum-fastestmirror
 Setting up Install Process
 ...
 Running Transaction
   Installing: yum-fastestmirror            ######################### [1/1] 
 
 Installed: yum-fastestmirror.noarch 0:1.1.9-2.fc8
 Complete!

Releases

There are four types of releases available through yum:

stable 
the latest officially released stable version of OpenNMS (currently 1.6.x)
unstable 
the latest officially released development version of OpenNMS
testing 
a nightly build of the code that will be part of the next stable version of OpenNMS
snapshot 
a nightly build of the very latest development version of OpenNMS

Install Repository RPMs

First, install the appropriate yum repository RPMs from the OpenNMS yum repository. Choose the release you want to use (stable, unstable, testing, or snapshot), and then install the distribution-specific RPM appropriate for your platform.

For example, on a Fedora Core 7 system, to install the latest snapshot release, you would use:

 rpm -Uvh http://yum.opennms.org/repofiles/opennms-repo-snapshot-fc7.noarch.rpm

Another example, on a CentOS5 system, to install the latest stable release, you would use:

 rpm -Uvh http://yum.opennms.org/repofiles/opennms-repo-stable-rhel5.noarch.rpm

Once you've done so, yum should show opennms as available when you do a "yum list opennms":

 [user@localhost]$ sudo yum list opennms
 ...
 Available Packages
 opennms.noarch                           1.6.1-1           opennms-stable

Note: if you are using a distribution with an older version of yum (like CentOS 3 or RHEL 5, for example), you may need to append the yum configuration to yum.conf. Older versions of yum don't recognize /etc/yum.repos.d/ as a valid location for yum configuration. You can do this with cat, like so:

 [root@localhost]# cat /etc/yum.repos.d/* >> /etc/yum.conf

(Optional) Pre-Install PostgreSQL

While yum will do it automatically, installing PostgreSQL first ensures that the fast, native IPLIKE code is used, instead of the slower, pure stored-procedure version.

 [user@localhost]$ sudo yum -y install postgresql-server
 Setting up Install Process
 ...
 Running Transaction
   Installing: postgresql-server            ######################### [1/1] 
 
 Installed: postgresql-server.x86_64 0:8.2.5-1.fc8
 Complete!

Depending on your distribution, you then run either "sudo /sbin/service postgresql start" or "sudo /sbin/service postgresql initdb" to make sure the database is initialized.

You can then follow the instructions below for making sure pg_hba.conf and postgresql.conf are configured properly, and (re)start the server.

Determine What to Install

Since version 1.3.7, OpenNMS is packaged as five RPMs:

opennms-core
The core OpenNMS code, responsible for network discovery, polling, data collection, notification, and more.
opennms-docs
Documentation.
opennms-webapp-jetty
The OpenNMS web UI, pre-deployed to run in the built-in Jetty application server that is included in the opennms-core package
opennms-webapp-standalone
The OpenNMS web UI, designed to be deployed to Tomcat or another suitable servlet container. Optional; install only if you know that the Jetty version is not suitable for your environment.
opennms
A convenience package which installs everything you need for a functional OpenNMS installation on a single system.

It is recommended that you install the opennms package unless you need to do something advanced such as splitting the various components of OpenNMS across multiple servers.

Install OpenNMS

Just run "yum install" for the package(s) you want:

 [user@localhost]$ sudo yum install opennms
 ...
 Setting up repositories
 opennms-snapshot-rhel5    100% |=========================| 1.1 kB    00:00     
 opennms-unstable-common   100% |=========================| 1.1 kB    00:00     
 opennms-stable-common     100% |=========================| 1.1 kB    00:00     
 opennms-unstable-rhel5    100% |=========================| 1.1 kB    00:00     
 ...
 Resolving Dependencies
 --> Populating transaction set with selected packages. Please wait.
 ---> Downloading header for opennms to pack into transaction set.
 opennms-1.6.1-1.noar 100% |=========================| 5.4 kB    00:00     
 ---> Package opennms.noarch 0:1.6.1-1 set to be updated
 --> Running transaction check
 --> Processing Dependency: opennms-core = 1.6.1-1 for package: opennms
 ..
 Dependencies Resolved
 
 =============================================================================
  Package                 Arch       Version          Repository        Size 
 =============================================================================
 Installing:
  opennms                 noarch     1.6.1-1     opennms-stable-common  5.9 k
 Installing for dependencies:
  jicmp                   i386       1.0-1            opennms-stable-rhel5   31 k
  opennms-core            noarch     1.6.1-1     opennms-stable-common   48 M
  opennms-webapp-jetty    noarch     1.6.1-1     opennms-stable-common   27 M
  postgresql              i386       8.1.9-1.el5      updates           2.8 M
  postgresql-server       i386       8.1.9-1.el5      updates           4.0 M
 
 Transaction Summary
 =============================================================================
 Install      6 Package(s)         
 Update       0 Package(s)         
 Remove       0 Package(s)         
 
 Total download size: 82 M
 Is this ok [y/N]: y
 Downloading Packages:
 (1/6): opennms-core-1.6.1 100% |=========================|  48 MB    03:57     
 ...
 Running Transaction
   Installing: postgresql                   ######################### [1/6] 
   Installing: postgresql-server            ######################### [2/6] 
   Installing: jicmp                        ######################### [3/6] 
   Installing: opennms-core                 ######################### [4/6] 
   Installing: opennms-webapp-jetty         ######################### [5/6] 
   Installing: opennms                      ######################### [6/6] 
 - moving *.sql.rpmnew files (if any)... done
 - checking for old update files... done
 
  *** Installation complete.  You must still run the installer and
  *** make a few other changes before you start OpenNMS.  See the
  *** install guide and release notes for details.
 
 Installed: opennms.noarch 0:1.6.1-1
 Dependency Installed: jicmp.i386 0:1.0-1 opennms-core.noarch 0:1.6.1-1 opennms-webapp-jetty.noarch 0:1.6.1-1 postgresql.i386 0:8.1.9-1.el5 postgresql-server.i386 0:8.1.9-1.el5
 Complete!

Disable the OpenNMS Repository (If Necessary)

Some RPM-based distributions do an automatic yum update from cron, so you may want to disable the OpenNMS repositories until you're prepared to upgrade, since there are generally a few steps that need to be performed on an upgrade. To do so, edit the /etc/yum.repos.d/opennms*.repo files, and add:

 enabled=0

...inside each [opennms-*] bracketed section.


TIP: If you plan to install the IPLIKE package (see below) you may want to hold off on this step until afterwards.

Configure OpenNMS

First, for the purposes of convenience, we are going to set the $OPENNMS_HOME environment variable before running any commands.

For newer Bourne-compatible shells (ksh, bash, and company, usually the default on Linux systems):

 export OPENNMS_HOME=/opt/opennms

For the original Bourne shell (sh, the default on some commercial UNIX systems):

 OPENNMS_HOME=/opt/opennms export OPENNMS_HOME

For csh or tcsh:

 setenv OPENNMS_HOME /opt/opennms

Configure Your Database

OpenNMS needs to be able to connect to PostgreSQL as the "postgres" user (by default) over a TCP/IP connection.

RedHat-based systems
/etc/init.d/postgresql start
/sbin/service postgresql start
pg_hba.conf and postgresql.conf are in /var/lib/pgsql/data
Debian-based systems
/etc/init.d/postgresql-X.X start
pg_hba.conf and postgresql.conf are in /etc/postgresql/X.X/main
Mac OS X (Fink)
/sw/bin/pgsql.sh start

Edit pg_hba.conf to Allow postgres to Authenticate

To allow the "postgres" user to connect, you will need to edit your database's pg_hba.conf file, which is usually created on installation or the first startup of PostgreSQL, depending on your distribution: By default, it will have something like this at the bottom:

 local   all         all                               ident sameuser
 host    all         all         127.0.0.1/32          ident sameuser
 host    all         all         ::1/128               ident sameuser

You will need to change "ident sameuser" to "trust":

 local   all         all                               trust
 host    all         all         127.0.0.1/32          trust
 host    all         all         ::1/128               trust

Edit postgresql.conf to Allow TCP/IP Connections

You may also need to change the postgresql.conf to allow TCP/IP connections, if it cannot do so already. On older PostgreSQL versions, this is enabled with the flag:

 tcpip_socket = true

On newer PostgreSQL versions, this is enabled with:

 # you can use "*" to listen on all addresses
 listen_addresses = 'localhost'

Also be sure that the max # of connections is configured to > than c3p0.maxPoolSize in $OPENNMS_HOME/etc/c3p0.properties (50 by default) +10.

 max_connections = 60

(Note: this may cause you to do some kernel tuning for max shared memory in the kernel (shmmax))

Restart the Database

Once you've made these changes, you need to restart your database.

Create the opennms Database

If not done, use "sudo -u postgres createdb -U postgres -E UNICODE opennms" to create the database in postgres.

Insert the IPLIKE Stored Procedure in the Database

If this is your first time installing OpenNMS or iplike, you should make sure that iplike is configured in your database. First you need to install the iplike package from OpenNMS package repositories.

For RPM-based distributions using YUM:

 yum install iplike

For DEB-based distributions using APT (use suffix pgsql74, pgsql81, pgsql82, or pgsql83 according to the version of PostgreSQL on your system):

 apt-get install iplike-pgsql83

If the OpenNMS database is already configured, you are good to go. If not, you have to issue manually:

 install_iplike.sh

Tell OpenNMS Where to Find Java

OpenNMS needs to know where to find Java (Java 5 and Java 6 are both supported) to be able to start up. To tell it how to do so, you run $OPENNMS_HOME/bin/runjava like so:

 $OPENNMS_HOME/bin/runjava -s

This will search $JAVA_HOME and other common locations for your JDK. If you wish to use a specific JDK, you can run it with the -S flag instead:

 $OPENNMS_HOME/bin/runjava -S /usr/java/jdk1.5.0_12/bin/java

Add the JAVA_HOME in /etc/default/opennms

 JAVA_HOME=/usr

Initialize OpenNMS and the Database

Next, you need to run the OpenNMS installer, which will initialize the OpenNMS database, and do some other basic setup. Upon upgrade, you should run this command again to make sure your database schema and other things required at startup are up-to-date.

In most cases, you can just run:

 $OPENNMS_HOME/bin/install -dis

Sometimes you may need to tell OpenNMS where to find libjicmp.so; in that case, you can use the -l option (OpenNMS 1.3.5 and higher):

 # i386 example
 $OPENNMS_HOME/bin/install -dis -l /usr/lib/jni:/usr/lib
 # x86_64 example
 $OPENNMS_HOME/bin/install -dis -l /usr/lib64/jni:/usr/lib64

If you have an error durring the install process about language "plpgsql" does not exist, you can try :

createlang -U postgres plpgsql opennms

Start OpenNMS

You should have a basic OpenNMS installation ready now, so start it up:

 sudo /etc/init.d/opennms start

As of OpenNMS 1.3.7, by default, the web UI will come up using the embedded Jetty servlet container, on port 8980. Open your browser and point it at:

 http://yourhost:8980/opennms/

the user name and password are both "admin" to start.

Discover Your Network

Finding Hosts

First, OpenNMS needs to know which devices (or, "nodes") you want it to discover. To discover nodes, OpenNMS does a ping sweep on IP address ranges that you configure it to discover. If an IP address that OpenNMS is not already managing responds to a discovery ping, then OpenNMS will begin scanning that IP address for services, create a new node in its database, and begin monitoring the node's interfaces and services. A new install of OpenNMS will not perform any discovery until you add one or more address ranges to the discovery configuration. You do this by logging into the web UI as the admin user and navigating to the Admin menu and then clicking on 'Configure Discovery' under the Operations section.

In the Include Ranges section of the Home / Admin / Discovery / Modify Configuration page, click on the 'Add New' button. In the window that pops up, enter the beginning and ending IP addresses for the range that you wish to include for discovery. The default values for Retries and Timeout are usually appropriate. Click the 'Add' button, and the popup window will close and the new range will show up in the Include Ranges section. Click the 'Save and Restart Discovery' button to apply your changes. Discovery of the newly added range will begin within a few seconds; the ping requests and service scans are spread out over time to avoid flooding your network, so it will take some time for all nodes in your newly added range to be scanned and discovered.

For more detailed information on discovery configuration, including how to add IP addresses manually to the discovery configuration file, see Discovery.

Get Notifications When Problems Occur

To get started, we need to configure the main admin user to have a valid e-mail address.

  1. Log in as admin to the web UI
  2. Go to Admin in the menu bar
  3. Under the Operations section, set the Notification Status radio button to On and click the Update button
  4. Under the OpenNMS System section, go to Configure Users, Groups and Roles and then Configure Users
  5. click the icon under "Modify" for the admin user
  6. set the Email address, and click the Finish button

This should get OpenNMS configured to send the default notifications to the administrator e-mail address.

Notifications are extremely flexible and can be configured to do complex escalations, scheduled outages, and user management. Detailed instructions are available in the Notification Configuration How-To.

Personal tools
DevJam 2008 Sponsors
DevJam 2008 Sponsor: Google
DevJam 2008 Sponsor: Netregistry
DevJam 2008 Sponsor: Papa John's
NewEdge Networks
OpenNMS takes home the gold award!
Join the Free Software Foundation
Support This Project Commercial OpenNMS Support OpenNMS Italia Get OpenNMS at SourceForge.net. Fast, secure and Free Open Source software downloads Our Network Simulator Our Java Profiler