Introduction to Opennms

40
© Craig Gallen 2009 e e n n t t i i m m O O S S S S Open Open · Community · Solutions · Community · Solutions OpenNMS OpenNMS Overview Overview Dr Craig Gallen EngD C.Eng MBA entimOSS Limited 6 Burnett Close Bitterne Park Southampton Hampshire England SO18 1JD Email : [email protected] : [email protected] Mobile : +44 (0) 7789 938012 The OpenNMS Group, Inc. 220 Chatham Business Drive Pittsboro NC 27312 United States e-mail [email protected] www.opennms.com Phone: +1 919-533-0160 Fax: +1 503-961-7746

Transcript of Introduction to Opennms

Page 1: Introduction to Opennms

© Craig Gallen 2009

ee nn tt ii mm OO SS SSOpen Open · Community · Solutions· Community · Solutions

OpenNMSOpenNMS Overview Overview

Dr Craig Gallen EngD C.Eng MBA

entimOSS Limited6 Burnett CloseBitterne ParkSouthamptonHampshireEnglandSO18 1JD

Email : [email protected]: [email protected]

Mobile : +44 (0) 7789 938012

The OpenNMS Group, Inc.220 Chatham Business DrivePittsboroNC 27312United States

e-mail [email protected]

Phone: +1 919-533-0160Fax: +1 503-961-7746

Page 2: Introduction to Opennms

slide - 1© Craig Gallen 2009

AgendaAgenda1. OpenNMS Project Overview

— Opennms.org– Active community size and members– Governance

— Opennms.com (OpenNMS Group Inc)– Organisational overview– Business model– Market propositions

2. OpenNMS Functional Overview— Problem Management

– Fault discovery and escallation— SLA management

– Performance data collection, – SLA event Thresholding– Data visualisation

— System Architecture– Core modules and frameworks used

3. Future directions— Most active areas of code development— Working with Telecommunications Industry

Page 3: Introduction to Opennms

slide - 2© Craig Gallen 2009

The The OpenNMSOpenNMS ProjectProject• OpenNMS

— Open Network Management System— OpenNMS is the world's first Enterprise

and Carrier grade network management platform developed under the open source model.

• Technology— Written in Java— Packaged for Windows, Linux and most

Unix distributions— Proven scalability

– 300,000 data points every 5 minutes– automatically discover core nodes with

5000+ interfaces

• Websites— www.opennms.org— http://sourceforge.net/projects/opennms/

Page 4: Introduction to Opennms

slide - 3© Craig Gallen 2009

Wide community of commercial usersWide community of commercial users

• Papa Johns Pizza http://www.papajohns.com/• Minnesota Children's Hospital http://www.childrensmn.org/• Oregon State University http://oregonstate.edu• Permanente Medical Group www.permanente.net• Myspace www.myspace.com• Ocado www.ocado.com• FreshDirect http://www.freshdirect.com• Fox TV (Australia) http://www.foxtel.com.au• BBC Monitoring www.monitor.bbc.co.uk• FastSearch http://www.fastsearch.com/• New Edge Networks http://www.newedgenetworks.com/• Rackspace http://www.rackspace.com• Swisscom Eurospot http://www.swisscom-eurospot.com• Wind Telecomunicazioni SpA (Italy) http://www.wind.it

• And many more - 4000 downloads per month

Page 5: Introduction to Opennms

slide - 4© Craig Gallen 2009

OpenNMSOpenNMS historyhistory

TechnologyTrigger

Peak of Inflated Expectation

Trough of Disillusionment

Slope ofEnlightenment

Plateau ofProductivity

Productvisibility

Open Source Product Maturity

Mar /April 2000OpenNMS Announced & Code released10 OcuLAN employees50 contributors

Sept 2004 OpenNMS group lunched3 staff 16 contributors

Jan 1999Steve Gilles & Brian WeaverPrototype Bluebird

May 2002OcuLAN forks OpenNMSTarus Balog becomes Maintainer (Sortova Consulting)

2009 over 100 OpenNMS group customers4000 complete downloads / month6 staff35 core developers (OGP)

• We've been around since 1999 and were registered on Sourceforge in March of 2000 (by comparison NetSaint, the first name of Nag ios, was registered just two months earlier).

Page 6: Introduction to Opennms

slide - 5© Craig Gallen 2009

Community and GovernanceCommunity and Governance• User community

— There are around 1000 people subscribed to the discuss list, but when I (Tarus Balog) teach classes I find that less than 10% of the people in the class actually use the discuss list, somy guess is that the active user community is probable closer to 10,000 people.

• Developer Community— We have 35 developers with commit access to the repository.

• Assets— Liscence GPL— The IPR is owned by The OpenNMS Group, Inc. — OpenNMS Trademark owned by The OpenNMS Group

• Governance— The community is managed by The Order of the Green Polo.— All active OGP members have a vote on the direction of the

project, but there is no charter and no one restricts what can and can't go into OpenNMS, as long as it is good.

— For example, the OTRS integration that Jonathin Sartin(Ocado/Truephone) did was pretty much on his own.

• Foundation— We would like to create a foundation

separate to the OpenNMS Group when sponsorship is available to do so.

DEV-JAM Atlanta July 2008

Page 7: Introduction to Opennms

slide - 6© Craig Gallen 2009

Opennms.comOpennms.com OpenNMSOpenNMS Group IncGroup Inc• Mission

— The OpenNMS Group is a services company dedicated to promoting the OpenNMS Project.

• Market Proposition— The main market proposition is that Network Management Platforms are expensive to buy and even more

expensive to deploy.— The open source nature of OpenNMS allows one to get rid of the software licensing cost associated with

solutions and since it is more flexible it can also reduce deployment time while providing more custom functionality (i.e. the solution can be made to fit the business and not the other way around).

• Revenue Sources— Revenues are based on support subscriptions, custom development, consulting and training (in that order).

• OpenNMS Group— Privately owned— Tarus Balog - CEO— David Hustace – President— Matt Brozowski – CTO (Chief Architect)— Benjamin Reed – Infrastructure and packaging— Jeff Gehlbach – Customer Service

• Preferred strategic business models— In country partner for delivery e.g.;

– Antonio Russo http://www.opennms.it– Craig Gallen www.entimoss.com

— Package solution for Equipment vendors— OpenNMS Group provide 2nd / 3rd level support

Page 8: Introduction to Opennms

© Craig Gallen 2009

ee nn tt ii mm OO SS SSOpen Open · Community · Solutions· Community · Solutions

OpenNMSOpenNMSFunctional OverviewFunctional Overview

Page 9: Introduction to Opennms

slide - 8© Craig Gallen 2009

Problem Management Work FlowProblem Management Work Flow• Event Collection

— OpenNMS can record all event occurrences

• Alarm Correlation— OpenNMS uses an Alarm Mechanism to convert

configurable 'alarm raising traps' or 'alarm clearing traps' into a manageable alarm cycle. On first receiving a trap, an alarm is raised. subsequent traps are counted against the alarm. A clearing trap clears the alarm ready for a new raise event.. This is the simplest use of the alarm list. However, user configured 'automations' can process the alarm list for more sophisticated analysis. In addition, OpenNMSleverage's the Jboss Rules correlation engine for more sophisticated down stream alarm suppressing.

• User Notifications and scheduled escalation— OpenNMS supports multiple users and an Notification

escalation mechanism between users. If a severe event is detected (such as a major alarm), this generates a Notification which is escalated over time through a list of users if it is not acknowledged. The system can also generate external paging, emails or instant messaging messages to attract attention to a notification.

• Trouble ticket integration— If the basic escalation mechanism is not enough,

OpenNMS also has a Trouble ticket interface for integrating with a number of trouble ticket systems including open source trouble ticket implementations, RT and OTRS.

Page 10: Introduction to Opennms

slide - 9© Craig Gallen 2009

Performance and SLA ManagementPerformance and SLA Management• Performance Data Collection and Management

— Like other network management tools such as Nagios or Cricket, OpenNMS stores performance data in RRD files. It can use RRDTool to do the collection, but the preferred library is Jrobin which is a Java implementation of RRD.

— OpenNMS has MIBS already installed for most large vendors equipment but users can add their own configurations. The user community often share this work and experience of new equipment.

— However unlike these tools, all of the scheduling of data collection is controlled by a Java process entirely within OpenNMS which makes the solution very scalable.

— Data can be collected from a variety of sources; SNMP polling and trap management, Ascii Syslog messages, TL1, JMX. there is also an integration with Nagios to allow the use of Nagios plugins. OpenNMS has also been integrated with Snort.

• Data visualisation— OpenNMS presents performance data as graphs. These

graphs can also be exported in the form of performance reports.

— Threshold events. OpenNMS can generate Threshold crossing alarms based on changes in the data. OpenNMSalso performs synthetic transactions to test the availability ofservices on nodes. This can be done centrally or through a distributed collection of remote rollers as described above.

• Service Quality Management— SLA Alarms can be escalated based upon threshold crossing

events. Every performance data collection point can be assigned a lo/high threshold with hysteresis to avoid ‘bouncing’ alarms

Page 11: Introduction to Opennms

slide - 10© Craig Gallen 2009

Configuration Management & IntegrationConfiguration Management & Integration• Unified Configuration

— All OpenNMS configuration is via a set of XML files contained within one directory. Many of these configurations are also exposed through the user interface. Configuration includes scan rates, Trap to event/alarm mapping, Mib management etc.

• Network Discovery — Given an IP address range, OpenNMS can self

discover the elements and services in a network. OpenNMS automatically associates ports with nodes. The default naming of a node in the database will be populated with the name of the device discovered by an SNMP scan of the device.

• Configuration Interfaces— An external event driven XML interface can also be

used to populate and change the Network Inventory. This interface is used by Swisscom to synchronise OpenNMS with their expanding European Wifi hotspot network.

• Integration— Numerous points of integration for paging, alarm

bells, email or trouble tickets

CMDB/Inventory

OpenNMS

NetworkTX

TXTX

TX

TX

TroubleTicketingSystem

Discover and poll network

Receive traps / events

Export / Import Inventory

Attach Alarms to Trouble

Tickets

Page 12: Introduction to Opennms

slide - 11© Craig Gallen 2009

OpenNMSOpenNMS ArchitectureArchitecture

caps

d: N

ode

capa

bilit

y sc

ann

er

colle

ctd:

Per

fda

ta

colle

ctio

n

disc

ove

ry: D

isco

ver

new

nod

es

linkd

: Li

nk

Top

olo

gy

disc

over

y

notif

d: N

otifi

catio

ns

Man

age

r

scrip

td: S

crip

ts r

un

by

even

ts

sysl

ogd

: SY

SLO

gpa

rsin

g

thre

shd:

Per

fT

hres

hold

Mgr

.

***t

icke

td:T

roub

leT

icke

t In

terf

ace

tran

slat

or:

Eve

nt

Tra

nsla

tion

trap

d: S

NM

P T

rap

Rec

eive

r

vacu

umd:

Da

tab

ase

Aut

omat

ions

JMX Mbeans

PostgreSQLDb

Persistence

/etc/*.XMLconfig

CastorXML

*HibernateORM

*Spring Wiring / Data Access Objects (Spring Framework)

JDBCORM

Jrobin

RRDFiles

Log4J

Log Files

JMX

col

lect

or**

*Dro

ols

Cor

rela

tion

Man

age

r

XM

L R

PC

Dae

mon

**qo

sd: O

SS

/J

Ser

ver

inte

rfa

ce**

qosd

rx: O

SS

/J

Clie

nt In

terf

ace

Con

trol

ler:

O

penN

MS

Pro

cess

co

ntro

ller

eventd: Event Handler / Registration / Broadcasting

Tomcat or JettyJSP container

JSP’s

Spring MVC

Acegi Security

***GwtGoogle Windows Toolkit

JfreeChart

OpenNMS Web Client

OpenNMS Server

External Interfaces Correlation / Workflow

Network Management Interfaces

Dis

trib

uted

Pol

ling

Java Web Start(distributed Poller)

Jrobin (graphs)

Web Clientaccesses DAO’s

External Integration Interfaces

*** July 2007** Dec 2006July 2006

Page 13: Introduction to Opennms

slide - 12© Craig Gallen 2009

OpenNMSOpenNMS Extension PointsExtension Points• Service Detector API

— detection of services (Capsd Plugin API being deprecated)— Java Interface (org.opennms.netmgt.provision.ServiceDetector.java)

• Service Monitor API — Poller Plugin API for monitoring detected services— Java Interface (org.opennms.netmgt.poller.ServiceMonitor.java)

• Service Collector API — Collectd Plugin API for creating performance data collectors— Java Interface (org.opennms.netmgt.collectd.ServiceCollector.java)

• Service Thresholder API— Plugin API for creating Thresholders of detected services— Java Interface (org.opennms.netmgt.threshd.ServiceThresholder.java)

• Notification Strategy API — Plugin API for creating new notification methods— Java Interface (org.opennms.netmgt.notifd.NotificationStrategy.java)

• Acknowledgment Reader API — Plugin API for reading replies to notifications)— Java Interface (org.opennms.netmgt.ackd.AckReader.java)

• Provision Adapter API — Plugin API for integrating CMS, EMS, Inventory systems, etc— Java Interface (org.opennms.netmgt.provision.ProvisioningAdapter.java)

Page 14: Introduction to Opennms

slide - 13© Craig Gallen 2009

EventdEventd

OpenNMS: CoreOpenNMS: CoreInterprocess Communications, ExampleInterprocess Communications, Example

Dis

cove

ryD

isco

very

Cap

sdC

apsd

Pol

ler

Pol

ler

Col

lect

dC

olle

ctd

Thr

eshd

Thr

eshd

Not

ifdN

otifd

Ala

rmd

Ala

rmd

Tic

ketd

Tic

ketd

Vac

uum

dV

acuu

md

1 - ICMP Echo Reply

2 - New Suspect Event

3 - SNMP Reply

4 - Node Gained Service Event (SNMP)

5 - SNMP Poll Failure

7 - Alarm Escalated Event

8 - Create Ticket Event

6 - Node Lost Service Event (SNMP)

Publish/Subscribe Publish/Subscribe Event BusEvent Bus

Service Daemons

Page 15: Introduction to Opennms

slide - 14© Craig Gallen 2009

Leveraging Other ProjectsLeveraging Other Projects

WEBORM/DAOAOP JEE

JDBCHibernate JMX

JMS EJB’s

Spring AOP Spring Portlet MVC Spring Web MVC

Jasper Reports

Application

Application Frameworks (example: Spring www.springframework.org)

Sub Frameworks

Many Component Dependencies

Build SystemFrameworks

Maven Subversion Junit

Mock Objects

CruiseControlBugzilla

Build & Dependency Management

Code Management

BugManagement

ContinuousIntegration

Test Driven Development

- Ant 1.6.5 (http://ant.apache.org )- ANTLR 2.7.6 (http://www.antlr.org )- AOP Alliance 1.0 (http://aopalliance.sourceforge.net )- ObjectWeb ASM 2.2.3 (http://asm.objectweb.org )- AspectJ 1.5.3 (http://www.aspectj.org )- Apache Axis 1.4 (http://ws.apache.org/axis )- BeanShell 2.0 beta 4 (http://www.beanshell.org )- C3P0 0.9.1.1 connection pool (http://sourceforge.net/projects/c3p0 )- Hessian/Burlap 3.0.20 (http://www.caucho.com/hessian )- CGLIB 2.1_3 with ObjectWeb ASM 1.5.3 (http://cglib.sourceforge.net )- CommonJ TimerManager and WorkManager API 1.1 (http://dev2dev.bea.com/wlplatform/commonj/twm.html )- JSR-166 http://dcl.mathcs.emory.edu/util/backport-util-concurrent )- Jason Hunter's COS 05Nov02 (http://www.servlets.com/cos )- DOM4J 1.6.1 XML parser (http://www.dom4j.org )-EasyMock 1.2 (JDK 1.3 version) (http://www.easymock.org)-- EasyMock 1.2 (JDK 1.3 version) (http://www.easymock.org)-- EHCache 1.2.4 (http://ehcache.sourceforge.net )-- FreeMarker 2.3.10 (http://www.freemarker.org )-- GlassFish ClassLoader API extract (http://glassfish.dev.java.net )-- Groovy 1.0 final (http://groovy.codehaus.org )-- Hibernate 2.1.8 (http://www.hibernate.org )-- HSQLDB 1.8.0.1 (http://hsqldb.sourceforge.net )-- iBATIS SQL Maps 2.3.0 b677 (http://ibatis.apache.org )-- iText PDF 1.4.8 (http://www.lowagie.com/itext )

- JDO API 2.0 (http://db.apache.org/jdo )- JExcelApi 2.5.7 (http://jexcelapi.sourceforge.net )- JMX 1.2.1 reference implementation- JMX Remote API 1.0.1 reference implementation- JMXMP connector (from JMX Remote API 1.0.1 reference implementation)- JOTM 2.0.10 (http://jotm.objectweb.org )- XAPool 1.5.0 (http://xapool.experlog.com, also included in JOTM )- Java Persistence API 1.0 (http://www.oracle.com/technology/products/ias/toplink/jpa )- JRuby 0.9.9 (http://jruby.codehaus.org )- JSF API 1.1 (http://java.sun.com/j2ee/javaserverfaces )- JUnit 3.8.1 (http://www.junit.org )- Log4J 1.2.14 (http://logging.apache.org/log4j )- Oracle OC4J ClassLoader API extract (http://www.oracle.com/technology/tech/java/oc4j )- OpenJPA 0.9.7 (http://incubator.apache.org/openjpa )- Jakarta ORO 2.0.8 (http://jakarta.apache.org/oro )- Apache POI 2.5.1 (http://jakarta.apache.org/poi )- Portlet API 1.0 (http://jcp.org/aboutJava/communityprocess/final/jsr168 )- QDox 1.5 (http://qdox.codehaus.org )- Quartz 1.6.0 (http://www.opensymphony.com/quartz )- Serp 1.12.1 (http://serp.sourceforge.net )- Apache Struts 1.2.9 (http://jakarta.apache.org/struts )- Apache Tomcat 5.5.23 (http://tomcat.apache.org )- Oracle TopLink 10.1.3 API (http://www.oracle.com/technology/products/ias/toplink )- Oracle TopLink Essentials (http://www.oracle.com/technology/products/ias/toplink/jpa )- Velocity 1.5 (http://jakarta.apache.org/velocity )- Velocity Tools 1.3 (http://jakarta.apache.org/velocity/tools )

- JavaBeans Activation Framework http://java.sun.com/products/javabeans/glasgow/jaf.html )- J2EE Connector Architecture 1.5 (http://java.sun.com/j2ee/connector )- JAX-RPC API 1.1 (http://java.sun.com/xml/jaxrpc )- Java Message Service API 1.1 (java.sun.com/products/jms )- JSP API 2.0 (http://java.sun.com/products/jsp )- JSP Standard Tag Library API 1.1 (http://java.sun.com/products/jstl )- Java Transaction API 1.0.1b (http://java.sun.com/products/jta )- JavaMail 1.3.2 (http://java.sun.com/products/javamail )- JDBC RowSet Implementations 1.0.1 (http://java.sun.com/products/jdbc )- Servlet API 2.4 (http://java.sun.com/products/servlet )- Commons Attributes 2.2 (http://jakarta.apache.org/commons/attributes )- Commons BeanUtils 1.7 (http://jakarta.apache.org/commons/beanutils )- Commons Collections 3.2 (http://jakarta.apache.org/commons/collections )- Commons DBCP 1.2.2 (http://jakarta.apache.org/commons/dbcp )- Commons Digester 1.6 (http://jakarta.apache.org/commons/digester )- Commons Discovery 0.2 (http://jakarta.apache.org/commons/discovery )- Commons FileUpload 1.2 (http://jakarta.apache.org/commons/fileupload )- Commons HttpClient 3.0.1 (http://jakarta.apache.org/commons/httpclient )- Commons IO 1.3.1 (http://jakarta.apache.org/commons/io )- Commons Lang 2.2 (http://jakarta.apache.org/commons/lang )- Commons Logging 1.1 (http://jakarta.apache.org/commons/logging )- Commons Pool 1.3 (http://jakarta.apache.org/commons/pool )- Commons Validator 1.1.4 (http://jakarta.apache.org/commons/validator )- Jakarta's JSTL implementation 1.1.2 (http://jakarta.apache.org/taglibs )- JAMon API (Java Application Monitor) 2.4 (http://www.jamonapi.com )- JasperReports 1.3.3 (http://jasperreports.sourceforge.ne t)

Application Specific Code

Eclipse

IDE tools

Page 16: Introduction to Opennms

slide - 15© Craig Gallen 2009

OpenNMSOpenNMS Simplified Service ModelSimplified Service Model

Page 17: Introduction to Opennms

slide - 16© Craig Gallen 2009

Event ManagementEvent Management

trapd

event

translatorActiond Xmlrpcd

Threshd

Syslogd

Scriptd

Collectd

Gathers and stores performance data

Receives SNMP traps and maps into OpenNMS Events

creates events when a performance metric exceeds preset values. High, Hi rearm, Low, Low rearm, Relative Change

Eventd receives and writes all of the event information.The eventd process listens on port 5817, so other processes, even those external to OpenNMS, can send events to the system

eventd

Xmlrpcd allows events to be sent from OpenNMSto a remote system via XML-RPC

Actiond is used to generate java actions based on events received. actiond is triggered by the "autoaction" tag on an event <autoaction>Scriptd similar to Actiond, generates external actions based on events.

Passive

Statusd

‘Passive nodes’ are used to represent services or resources managed by another agent. The event translator and passive status deamon allow events to be mapped to these nodes

allows OpenNMS to receive syslog datagrams

Vacuumd

Trigger, evaluation, action automations processing of alarm table

Page 18: Introduction to Opennms

slide - 17© Craig Gallen 2009

OpenNMSOpenNMS Event ProcessingEvent Processing

eventconf.xml <event> <mask> <maskelement> <mename>id</mename> <mevalue>.1.3.6.1.4.1.9.9.70.2</mevalue> </maskelement> <maskelement> <mename>generic</mename> <mevalue>6</mevalue> </maskelement> <maskelement> <mename>specific</mename> <mevalue>17</mevalue> </maskelement> </mask> <uei>http://uei.opennms.org/vendor/Cisco/traps/ci scoC3800SysAggregateStatusChange</uei> <event-label>CISCO-C3800-MIB defined trap event: ciscoC3800SysAggregateStatusChange</event-label> <descr>Notification that the aggregate status of a node has changed. </descr> <logmsg dest='logndisplay'><p>Cisco Event: C3900: Node Status has changed.</p></logmsg> <severity>Indeterminate</severity> <alarm-data reduction-key="%uei%:%dpname%:%nodeid %" alarm-type="1"/> </event>

TRAPSYSLOG

event

AlarmService Status

User/groupnotification

ServiceStatus

Page 19: Introduction to Opennms

slide - 18© Craig Gallen 2009

Event ListEvent List

Page 20: Introduction to Opennms

slide - 19© Craig Gallen 2009

User NotificationsUser Notifications• OpenNMS uses notifications to make

users aware of an event. Common notification methods are email and paging, but notification mechanisms also exist for

— XMPP (Jabber, an instant messaging protocol),

— arbitrary external programs — SNMP traps can be sent, and — arbitrary HTTP GETs/POSTs can be made to

a web site.

• Scheduling on call— A notification can be sent to users, groups, or

roles configured in OpenNMS, as well as to arbitrary email addresses, if needed. A delay can be introduced before sending a notification, and one or more escalations can be added in case a notification isn't acknowledged within a configurable period of time

— destination path specifies the "who", "when", and "how" of the notification

Page 21: Introduction to Opennms

slide - 20© Craig Gallen 2009

Alarm ListAlarm List

Page 22: Introduction to Opennms

slide - 21© Craig Gallen 2009

Alarm DetailAlarm Detail

Page 23: Introduction to Opennms

slide - 22© Craig Gallen 2009

ReportsReports• capsd is responsible for discovering all the

services to be monitored,— Citrix— DHCP— DNS— Domino IIOP— FTP— General Purpose (script based)— HTTP— HTTPS— ICMP— IMAP— JBOSS (JMX)— JDBC— JDBC Stored Procedure— JSR160— K5— LDAP— Microsoft Exchange— MX4J— Notes HTTP— NSClient (Nagios Agent)— NRPE (Nagios Remote Plugin Executor)— NTP— POP3— Radius— SMB— SMTP— SNMP— SSH— TCP— Windows Services (SNMP-based)

Page 24: Introduction to Opennms

slide - 23© Craig Gallen 2009

Service DiscoveryService Discovery

capsd CollectdDiscoveryd

LinkdImporterService

Pollerd

Discoveryd ICMP pings the prescribed device ranges to find new devices, it then passes a suspect node event to capsd for further processing

Capsd is responsible for discovering all the services to be monitored on a device

suspect Nodeevent

Linkd is layer 2 iso/osi model network topology discovery daemon..iso.org.dod.internet.mgmt.mib-2.ip.ipNetToMediaTable.iso.org.dod.internet.mgmt.mib-2.dot1dBridge.dot1dBase.iso.org.dod.internet.mgmt.mib-2.dot1dBridge.dot1dStp

Gathers and stores data from various sources, including SNMP, JMX, HTTP and NSClient

Handles all service polling and recording of response times using synthetic transactions

If device supports SNMP,

Capsd sets up configuration for topology discovery, polling and data gathering based upon discovered services

When using the Importer Service, the Discovery and Capsd services are disabled. Instead of ping sweeps by the Discovery service, OpenNMS is told about nodes and interfaces in an XML export from a provisioning system.

Page 25: Introduction to Opennms

slide - 24© Craig Gallen 2009

Manual & External provisioningManual & External provisioning

• Example External provisioning XML

Example Manual Provisioning

• Automatic provisioning—Integration with RANCID

– (RANCID - Really Awesome New Cisco confIg Differ http://www.shrubbery.net/rancid/ )

—coming – integration with Puppet– http://reductivelabs.com/t

rac/puppet

<this:model-import xmlns:this="http://www.example.o rg/model-import" xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance" xsi:schemalLocation="http://www.example.org/model-i mport model-import.xsd" date-stamp="2006-03-09T00:0 3:09" foreign-source="matt:"> <this:node node-label="david" parent-node-l abel="apknd" foreign-id="4243"> <this:interface ip-addr="172.20.1.2 04" status="1" snmp-primary="S" descr="VPN interfac e"> <this:monitored-service ser vice-name="ICMP"/> <this:monitored-service ser vice-name="HTTP"/> </this:interface> <this:interface ip-addr="172.20.1.2 01" status="1" snmp-primary="P" descr="Management i nterface"> <this:monitored-service ser vice-name="ICMP"/> <this:monitored-service ser vice-name="SNMP"/> </this:interface> <this:category name="AC"/> <this:category name="UK"/> <this:category name="low"/> </this:node> <this:node node-label="djgregor" parent-nod e-label="apknd" foreign-id="4243"> <this:interface ip-addr="172.20.1.2 07" status="1" snmp-primary="S" descr="VPN interfac e"> <this:monitored-service ser vice-name="ICMP"/> <this:monitored-service ser vice-name="HTTP"/> </this:interface> <this:interface ip-addr="172.20.1.2 08" status="1" snmp-primary="P" descr="Management i nterface"> <this:monitored-service ser vice-name="ICMP"/> <this:monitored-service ser vice-name="SNMP"/> </this:interface> <this:category name="AC"/> <this:category name="UK"/> <this:category name="low"/> </this:node> </this:model-import>

Page 26: Introduction to Opennms

slide - 25© Craig Gallen 2009

Maps Maps –– uses uses LinkdLinkd to discover layer 2to discover layer 2

Page 27: Introduction to Opennms

slide - 26© Craig Gallen 2009

Remote Remote PollerPoller

OpenNMS

Central Services

Remote Client

Remote needs to ensure connectivity to central hosts

OpenNMSRemote Poller

1. Remote client downloads OpenNMS Remote Pollerfrom OpenNMS using java web start

2. OpenNMS Remote Poller polls central services using synthetic transactions

3. Remote Poller sends results to OpenNMS

Page 28: Introduction to Opennms

slide - 27© Craig Gallen 2009

Road Map Next Stable1.8: Q2Road Map Next Stable1.8: Q2 --20092009• Provisioning

— New Provisioning architecture with massively parallel discovery of entity services and resources (SEDA)

• AJAX Web-UI— Web-UI update for usability with large numbers of network and system entities under

management

• New Configuration Management API— RANCID— Puppet

• Improved Workflow— Alarm / Escalation etc

• ReSTFul API— Can be accessed using web technologies; pearl, python etc PUT / GET

• WMI — WMI / WBEM Extensions of service monitoring and performance management interfaces

• User Access Control Lists (ACLs)d security at API / session level— Fine granularity of user control

• Fewer required restarts— More on line configuration changes

Page 29: Introduction to Opennms

slide - 28© Craig Gallen 2009

Road Map 2.0 Road Map 2.0 -- Q1 2010Q1 2010• runtime module management

— OSGi Container (Spring DM) supporting automatic deploy/redeploy of OpenNMS modules and Web-UI components

• Web-UI— Redesigned Web-UI with better Admin and User tools and Internationalization

• System Management— Improved Self Manageability with more robust JMX support

• Distribution— Distributable modules for horizontal scalability (1.8 maximizes vertical scalability)

• Fault Tolerant Solutions• NGOSS Compliant (TIP implementations)

— http://www.tmforum.org/InterfaceProgram/5733/home.html

• BPM and enhanced Correlation• Enterprise Reporting

Page 30: Introduction to Opennms

slide - 29© Craig Gallen 2009

TelemanagementTelemanagement Forum TIP Interface Forum TIP Interface Implementation ProgramImplementation Program• Open source program lead by OpenNMS

to deliver TIP standards • Scope of Specification

• Real Implementation— Mapping Code (ISV)— TIP Implementation

Library (TMForum)— Dependency Library (3rd

Party projects / products)

Server(EMS x)

Client (NMS)

StandardizedSpecification

<- Mapping ->(Adapter)

<- Mapping ->(Adapter)

Transport Protocol(e.g. WS, SMTP, JMS, Corba)

Core

StandardizedSpecification

Transport Protocol(e.g. WS, SMTP, JMS, Corba)

Server

Map

ping

Impl

emen

tatio

nLi

brar

y

depe

nden

cies

Libr

ary

Client

Mapping

Implem

entationLibrary

dependenciesLibrary

Tim

e to market

• Automated generation of spec artefacts is relatively easy

• Creating a sustainable implementation and managing dependencies is a major headache for all parties

http://www.tmforum.org/InterfaceProgram/5733/home.html

Page 31: Introduction to Opennms

© Craig Gallen 2009

ee nn tt ii mm OO SS SSOpen Open · Community · Solutions· Community · Solutions

Thank you for listeningThank you for listening

Any Questions?Any Questions?

Page 32: Introduction to Opennms

© Craig Gallen 2009

ee nn tt ii mm OO SS SSOpen Open · Community · Solutions· Community · Solutions

BackupBackupThe Value of Open sourceThe Value of Open sourceResearch directionsResearch directions

Page 33: Introduction to Opennms

slide - 32© Craig Gallen 2009

OpenNMSOpenNMS market segmentationmarket segmentation

• OpenNMS is known to have customers and users in all layers of the telecoms industry

• Key Telecoms Users— Swisscom

– Manage European wide WIFI network— Wind (Italy)

– IPTV infrastructure and core backbone

• Increasingly replacing incumbents— e.g. HP Open views in Wind

Table 1 Example OpenNMS Users Within The Telecoms Industry Layer Model

Telecoms Industry Layer Model (Fransman, M. 2001)

OpenNMS Application

Layer Activity OpenNMS User Business Details Papa Johns Pizza http://www.papajohns.com/

Catering Monitoring network infrastructure

Minnesota Children's Hospital http://www.childrensmn.org/

Public Hospital and University

Monitoring network infrastructure

Oregon State University http://oregonstate.edu/

Monitoring network infrastructure

Sites:100 Services:2043

VI Customers / Consuming

Permanente Medical Group www.permanente.net/

Large provider of health plans in Northern California

(Balog, T. 2007b) Distributed Pollers: 350

Myspace www.myspace.com

Community Video Content Hosting

Monitoring network infrastructure

Ocado www.ocado.com

On-line retailer in the UK. (Sartin, J. 2005b) Monitoring Web sales application JMX application monitoring

FreshDirect http://www.freshdirect.com

On-line retailer in New York (Reilly, R. 2007) Integrated with Splunk www.splunk.com

Fox TV (Australia) http://www.foxtel.com.au/

Broadcaster Monitoring DVB-T Transport Stream Analysers

BBC Monitoring www.monitor.bbc.co.uk

Broadcaster Monitoring network infrastructure

V Applications Layer, including contents packaging

(e.g. Web design, on-line information services, broadcasting services, e-commerce etc)

Arqiva Broadcaster Proof of concept for DVB-T Network

IV Navigation & Middleware Layer

(e.g. browsers, portals, search engines, directory assistance, security, electronic payment, etc)

FastSearch http://www.fastsearch.com/

Internet search services Monitoring search engines

New Edge Networks http://www.newedgenetworks.com/

IP VPN network provider (Brunelli, M. 2005) (Balog, T. 2007b) Providing customer service stats Nodes: 12278 Interfaces: 67738 Services: 569188 (300,000 data points every five minutes)

III Connectivity Layer

(e.g. Internet access, Web hosting)

Rackspace http://www.rackspace.com

Managed Hosting (Winslow, M. 2004) Nodes:200

TCP/IP INTERFACE Swisscom Eurospot www.swisscom-eurospot.com/

monitoring European Wifi network

(Balog, T. 2007b) Sites: 2373 Nodes: 4760 3 Interfaces: 50001 Services:61601

BT www.bt.com

Satellite data services Monitoring Satellite services at Jodrell Bank

Opera Telecom http://www.operatelecom.com/

SMS voting services for broadcasters

Monitoring network infrastructure

II Network Layer

(e.g. optical fibre network, mobile network, DSL local network, radio access network, Ethernet, frame relay, ISDN, ATM, etc)

TruePhone http://www.truphone.com/

SIP based Wifi mobile telephony provider

Monitoring network infrastructure

Dell

www.dell.com

Example using OpenNMS to manage Dell servers

Application Note (Giles, J. 2003) I Equipment & Software

Layer

(e.g. switches, transmission equipment, base stations, routers, servers, CPE, billing software etc)

IBM

www.ibm.com

Example using OpenNMS to manage JMX

Application Note: (Li, S. 2002)

Page 34: Introduction to Opennms

slide - 33© Craig Gallen 2009

Removing Chinese Walls in NPIRemoving Chinese Walls in NPI• New product Introduction• Very costly for firms to understand

users' needs deeply and well – ‘sticky information’

— Manufacturer cannot expect to get a solution right first time (von Hippel, E. 2001b)

— Product consultants used as front end to marketing - 'ethnographic' study of user needs (von Hippel, E. 2001b),

— How users apply OSS tools is often tacit knowledge - i.e. knowledge that they carry in their heads and is, therefore, difficult to access (Polanyi, M. 1967)

— Risk that solution meets the letter of the specification, but may still fail to appreciate the underlying requirements (Chapman, C. B. et al. 2003 p271 ff)

• Learning from prototypes — Looking at machine tools - process by

which users and manufacturers learnt from using prototypes was more intentional than just 'trial and error'.Rather, users exhibited a form of complex pattern matching (which von Hippel termed 'Templating') (von Hippel, E. & Tyre, M. J. 1995)

Service Provider OSS ISVEquipment Vendor

OperationalUser

Product Management

R&D TechnologyEvaluation

Product Management

Marketing

R&D

Purchasing Sales

organizationalboundary

internal and external lines of communication

Page 35: Introduction to Opennms

slide - 34© Craig Gallen 2009

Open Source enables Network effectsOpen Source enables Network effects• OSS industry – Network Effects

— Each component depends on all other components— Common interfaces allow components to be

deployed— High value components depend upon commodity

functionality (e.g. data collection)

• (Ghosh, R. A. 2005a) suggests that one approach to network effects is to try to abstract the network externalities from specific products by identifying the features of the technology that provides the network effect and ensuring that its use is not limited to one product or service.

• (Ghosh, R. A. 2005a) argues that to be successful this strategy requires reference

• implementations to augment - if not, perhaps, replace - the formal specification of the standard . When such a reference implementation is available under an open source licence, it may achieve the same economic effect as an open standard, even without the institutional processes of standard setting

Open source interface capability

component

component

component

component

component

component

component

Page 36: Introduction to Opennms

slide - 35© Craig Gallen 2009

Open Source Manages Costs & RiskOpen Source Manages Costs & Risk

Failure Risk

Expected Cost

Feasible solution area

non-Feasible solution area

Risk Efficient Boundary X-Y

X

Commercial COTS OSS Project

COTS OSS Trial

Y

Area of IncompetenceOpportunity

Region

OpenOSS Catalyst

COTS OSS Catalyst

Page 37: Introduction to Opennms

slide - 36© Craig Gallen 2009

BT Sponsored BT Sponsored OpenOSSOpenOSS Catalyst 2005Catalyst 2005

VoIP Overlay Network

VoIPCustomers

ProxyServer

NIST Net

NgN AS PM Portlet

OpenNMSAgilent NgN AS

NGNAS PM API

OSS/J QoS FM Adaptor

OSS/J QoS FM API

OSS/J QoS FM/PM Adaptor

OSS/J QoS PM API

Correlation

OTRS

OSS/J QoS FM API

OSS/J TT API

OSS/J QoS PM Portlet

WWW

Web Browser

VoIP Service Provider OSS

CustomerEdge

Wholesale Network

VoIPCustomers

ProxyServerCustomer

Edge

SIPRouter

Network Emulator

IP Phone

IP Phone

IP Phone

Router

Network Errorsimulator

SIPRouter

IP Phone

IP Phone

IP Phone

Router

Wholesale IP service provider

NW

GatewayRouter

IP PhoneCustomers

IP PhoneCustomers

GatewayRouter

Local Access NW

Local Access NW

VoIP Service Provider NW

Customer Access NW

*Note – the scenario is simplified by not including management of the the Local Access NW

metro node metro node

• BT, Vodafone, Agilent, C&W, Colt, Qinetiq• Invocom, Cognizant• University of Southampton, Budapest University (BUT E),

Page 38: Introduction to Opennms

slide - 37© Craig Gallen 2009

OSS/J experimental interfaceOSS/J experimental interface

• Further development done after Catalyst

• OSS/J interface— Subset of JSR 90 JVT and

JMS messaging— No query functionality yet— Qos embedded into

OpenNMS through Spring framework

— Allows hierarchy of OpenNMS’s to share alarm lists

qosdrx

Linux Server Linux Server

Jboss

JbossMQ

AlarmEventTopic n

AlarmEventTopic 1

AlarmEventTopic 2

OpenNMS 1

qosd

db

OssDao

Onms AlarmDao

Deployment Scenario : OpenNMS qosdrx daemon creates threads which subscribe to AlarmEvent Topics (JVT or XVT) and updates the OpenNMS alarm list

Linux Server

OpenNMS 2

qosd

db

OssDao

Onms AlarmDao

Linux Server

OpenNMS

qosd

db

OssDao

Onms AlarmDao

Alarm EventRX1

Alarm EventRX2

Alarm EventRXn

Event Receiver Threads

AlarmEventTopic X

AlarmEvent Client

Qosd Publishes to Alarm Event Topic

Qosdrx subscribes Alarm Event Topic

Client subscribes to Qosd events from

Aggregated Alarm list

Page 39: Introduction to Opennms

slide - 38© Craig Gallen 2009

DVBDVB--T Proof of Concept with T Proof of Concept with ArqivaArqiva

Site ManagerResource data mediation

Resource status monitoring

TV ServiceNetwork

TX

TXTX

TX

TX

Correlation and Root cause Analysis

SNMP scanning

OpenNMS

OSS/J PMOSS/J

FM

Inference Engine UI

PM PortalFM portal

Portal UI

OSS/J PM

OSS/JFM

ModelView

ModelCreation

ModelRules

Statewise Inference Engine

OSS/JFM

OSS/JFM

OSS/JFM

WebUI

Scanning Configuration

ArgoUMLVelocity

Model Builder

XML Network Model built using UML

Alarms to correlator using OSS/J interface to OpenNMS

Correlator sends new OSS/J alarms to OpenNMS

A

B

C

XML SNMP scanning model

Network Model

OpenNMS

OSS/J PMOSS/J

FM

www.sidonis.comstatewise

Page 40: Introduction to Opennms

slide - 39© Craig Gallen 2009

Functionality Addressed in Functionality Addressed in PoCPoCC

usto

mer

Mgt

Pro

duct

mgt

Ser

vice

Mgt

Res

ourc

e M

gt

Integration infrastructure:bus technology/ m

iddleware / business process m

anagement

DVB-T Network Resources Alarms PM Data

InventoryManager

Trouble Ticket Manager

Network & Correlation Manager

SLA &Report Manager

CustomerPortal

(Based on TAM R2.0)

Trouble Tickets from correlated alarms

PM Threshold alarms

Service PM thresholds

Service Impact Tickets

Customer Impacting Tickets

Service Impact Prioritization

Service Impacting problems

Resource Inventory MgtResource Inventory Mgt

Resource Status Monitoring

Resource Status Monitoring

Resource Performance Monitoring/

Management

Resource Performance Monitoring/

Management

Workforce MgtWorkforce Mgt

Correlation & Root Cause Analysis

Correlation & Root Cause Analysis

Customer Service / Account Problem

Resolution

Customer Service / Account Problem

Resolution

ServicePerformance Mgt

ServicePerformance Mgt

Service ProblemMgt

Service ProblemMgt

Customer Self Management

Customer Self ManagementCustomer Information

Management

Customer Information Management

ServiceInventory Mgt

ServiceInventory Mgt SLA MgtSLA Mgt

Product / Service Catalog Management

Product / Service Catalog Management

Resource Data MediationResource Data Mediation

Service Quality Monitoring & Impact

Analysis

Service Quality Monitoring & Impact

Analysis

Resource Problem Mgt

Resource Problem Mgt

Customer QOS/ SLA Mgt

Customer QOS/ SLA Mgt

Customer Reports

Customer Problems

Product / Customer information and policy model

Service information and policy model

Network Resource information and policy model

Service Performance KPI’sService Fault KPI’s

Service Performance Measurements

Resource Alarms

Customer Billing Mgt

Customer Billing Mgt

SLA violations

Workforce allocation Policy