2. Agenda for Workshop
• What the heck is OpenNMS?
• Getting It Installed
• The Net-SNMP Agent
• Provisioning and Discovery
• Event Management
• Notifications
• Service Assurance
• Data Collection
3. OpenNMS is the world's
first enterprise-grade
network management
application platform
developed under the
open source model.
5. “enterprise-grade”
• Nearly 60,000 Devices on a Single
Instance (Swisscom)
• 1.2 Million Data Points Every Five
Minutes (New Edge)
• 120,000 syslog message per minute
(SRNS)
• 32,000 Interfaces per Device (Wind)
• 3000 Remote Monitors (Papa Johns)
7. “open source model”
OpenNMS is published under the
AGPLv3 and all components are
licensed under an OSI-qualified free
software license.
9. • Provisioning: Both Automated Discovery and Directed
Discovery.
• Event and Notification Management: Generate,
receive, reduce and correlate various network alerts
and feed them to a robust notification system.
• Service Assurance: Is a particular network service
reachable and available?
• Performance Data Collection: Gather numeric data
from across the network for display, trending and
thresholding.
The Four Main Areas of
OpenNMS
12. Let's Get This Sucker Installed
• Java JDK (7 or higher)
• PostgreSQL
• jicmp
• opennms-core
• Opennms-jetty-webapp
• iplike
• jrrd (optional)
13. OpenNMS Packages in Debian
$ sudo aptget install opennms
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
heirloommailx iplikepgsql93 jicmp jicmp6 libdbdpgperl libdbiperl
libgetoptmixedperl libopennmsjava libopennmsdepsjava libpq5
opennmscommon opennmsdb opennmsserver opennmswebappjetty postgresql9.3
postgresqlclient9.3 postgresqlclientcommon postgresqlcommon
Suggested packages:
exim4 mailtransportagent libmldbmperl libnetdaemonperl libplrpcperl
libsqlstatementperl opennmsdoc jrrd rrdtool oidentd identserver
localesall postgresqldoc9.3
Recommended packages:
libnetsnmpperl libxml2utils libwwwperl libxmltwigperl
The following NEW packages will be installed:
heirloommailx iplikepgsql93 jicmp jicmp6 libdbdpgperl libdbiperl
libgetoptmixedperl libopennmsjava libopennmsdepsjava libpq5 opennms
opennmscommon opennmsdb opennmsserver opennmswebappjetty postgresql9.3
postgresqlclient9.3 postgresqlclientcommon postgresqlcommon
0 upgraded, 19 newly installed, 0 to remove and 7 not upgraded.
Need to get 507 MB of archives.
After this operation, 657 MB of additional disk space will be used.
Do you want to continue? [Y/n]
14. Packages Are Your Friend
• Use “yum” on rpm-based distros
• Use “apt” on Debian/Ubuntu distros
• Use Solaris packages for Sun
• Use the standalone installer for Windows
• Use the wiki for FreeBSD
15. Getting Set Up
• The java to use must be set:
$OPENNMS_HOME/bin/runjava s
• The installer should be run:
$OPENMS_HOME/bin/install dis
• The iplike function should be installed.
16. Start 'er Up
• Make sure the database is running and
is accessible on localhost:5432
• Start the Application:
$OPENNMS_HOME/bin/opennms start
• Access the WebUI:
http://[host]:8980/opennms
17. Where OpenNMS Stores Data
• Database (PostgreSQL)
• Round Robin Database (JRobin or
RRDtool) (/opt/opennms/share/rrd)
• Configuration:
/opt/opennms/etc (for RPMs)
/etc/opennms (for debs)
XML or .properties files
28. The Net-SNMP Agent
• Net-SNMP is an open source SNMP
agent originally build at the University of
California – Davis campus
• Can be used to send events to
OpenNMS
• Can be used by OpenNMS to test
processes or collect data
32. /etc/snmp/snmpd.conf
(enable non-free, install MIBs)
# vi /etc/apt/sources.list
deb http://ftp.utexas.edu/debian/ squeeze main nonfree
debsrc http://ftp.utexas.edu/debian/ squeeze main nonfree
# aptget update
# aptget install snmpmibsdownloader
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
smistrip
Suggested packages:
unzip
The following NEW packages will be installed:
smistrip snmpmibsdownloader
0 upgraded, 2 newly installed, 0 to remove and 2 not upgraded.
Need to get 5,147 kB of archives.
After this operation, 5,964 kB of additional disk space will be used.
Do you want to continue [Y/n]?
36. provisiond
• Controls both automated and directed
discovery
• The “foreign source” controls what gets
discovered
• The “foreignid” is a unique key for the
device
• Can finely control what gets discovered
• Everything reflected in XML files
55. Events
• OpenNMS can generate internal events,
receive external events such as SNMP
traps
• Events can be reduced – taking a number
of events and representing them as a
single line with a count
• Events can be translated into other events
• Events can be turned into alarms for
correlation.
60. Create Custom Events
• OpenNMS listens on port 5817 for event
messages
• Events are simply properly formatted
XML objects
• Use or modify the included send
event.pl script for creating events
61. Unique Event Identifier
• A new interface is discovered:
uei.opennms.org/internal/discovery/newSuspect
• A service is down:
uei.opennms.org/nodes/nodeLostService
• All services on an interface are down:
uei.opennms.org/nodes/interfaceDown
• All interfaces on a node are down:
uei.opennms.org/nodes/nodeDown
68. Notifications
• Any command line application can be used to
send notices:
– Email
– Pages
– SMS messages
– IM's via XMPP (Jabber)
• Includes
– Duty schedules and roles
– Escalations
– Auto acknowledgment
77. Run a Test
• Send the OUCE event from earlier:
/usr/share/opennms/bin/sendevent.pl
uei.ouce/demo/testEvent
• Verify it shows up
78. Service Assurance
• Monitor network services like HTTP, DNS,
Databases and even ICMP
• Calculate availability over devices and
categories.
• Packages and adaptable downtime models
• Support for plugins, including Nagios® and
custom scripts
• Distributed monitoring via webstart app
79. Adaptable Downtime Model
• When an outage occurs, OpenNMS
changes the default service poll:
– 30 second polls for the first 5 minutes
– 5 minute polls for the first 12 hours
– 10 minute polls for the first 5 days
– Unmange the service if down longer
• Shortest outage is on the order of 30
seconds
80. Using Net-SNMP for SA
• Protocols like SSH don't scale and have
security issues
• Net-SNMP can be easily extended and
secured
• Use the “extend” feature with OpenNMS
for easy custom poller creation
81. Create a Simple Script
# cat /tmp/ouceprocess.sh
#!/bin/bash
echo ok
# chmod +x /tmp/ouceprocess.sh
# /tmp/ouceprocess.sh
ok
91. Performance Data Collection
• Uses JRobin (or RRDTool) to store time
series data
• Support for
– SNMP (v1, v2c, v3)
– JMX
– HTTP
– NSClient
– WMI
– SQL
• Automated configuration