© 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
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
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/
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
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).
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
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
© Craig Gallen 2009
ee nn tt ii mm OO SS SSOpen Open · Community · Solutions· Community · Solutions
OpenNMSOpenNMSFunctional OverviewFunctional Overview
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.
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
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
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
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)
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
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
slide - 15© Craig Gallen 2009
OpenNMSOpenNMS Simplified Service ModelSimplified Service Model
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
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
slide - 18© Craig Gallen 2009
Event ListEvent List
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
slide - 20© Craig Gallen 2009
Alarm ListAlarm List
slide - 21© Craig Gallen 2009
Alarm DetailAlarm Detail
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)
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.
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>
slide - 25© Craig Gallen 2009
Maps Maps –– uses uses LinkdLinkd to discover layer 2to discover layer 2
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
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
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
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
© 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?
© 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
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)
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
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
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
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),
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
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
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
Top Related