Introduction To Opennms
Introduction To Opennms
OpenNMS Overview
Dr Craig Gallen EngD C.Eng MBA
entimOSS Limited 6 Burnett Close Bitterne Park Southampton Hampshire England SO18 1JD Email Mobile : craig.gallen@entimoss.com : cgallen@opennms.org : +44 (0) 7789 938012 The OpenNMS Group, Inc. 220 Chatham Business Drive Pittsboro NC 27312 United States
Agenda
1. OpenNMS Project Overview
Opennms.org Active community size and members Governance Opennms.com (OpenNMS Group Inc) Organisational overview Business model Market propositions
3. Future directions
Most active areas of code development Working with Telecommunications Industry
slide - 1
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/
Craig Gallen 2009 slide - 2
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 - 3
OpenNMS history
We've been around since 1999 and were registered on Sourceforge in March of 2000 (by comparison NetSaint, the first name of Nagios, was registered just two months earlier).
Mar /April 2000 OpenNMS Announced & Code released 10 OcuLAN employees 50 contributors
Product visibility
2009 over 100 OpenNMS group customers 4000 complete downloads / month 6 staff 35 core developers (OGP) Sept 2004 OpenNMS group lunched 3 staff 16 contributors
Jan 1999 Steve Gilles & Brian Weaver Prototype Bluebird Technology Trigger
Craig Gallen 2009
May 2002 OcuLAN forks OpenNMS Tarus Balog becomes Maintainer (Sortova Consulting) Trough of Disillusionment Open Source Product Maturity Slope of Enlightenment Plateau of Productivity
slide - 4
User community
Foundation
We would like to create a foundation separate to the OpenNMS Group when sponsorship is available to do so.
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, so my 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.
slide - 5
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
slide - 6
entimOSS
Open Community Solutions
Alarm Correlation
Data visualisation
slide - 9
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.
CMDB/ Inventory
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.
OpenNMS
Discover and poll network
TX
Integration
Numerous points of integration for paging, alarm bells, email or trouble tickets
Network
TX TX TX
slide - 10
OpenNMS Architecture
External Integration Interfaces Tomcat or Jetty JSP container JSPs Spring MVC ***Gwt Google Windows Toolkit JfreeChart Java Web Start (distributed Poller) Jrobin (graphs) OpenNMS Web Client External Interfaces XML RPC Daemon ***ticketd:Trouble Ticket Interface scriptd: Scripts run by events **qosd: OSS/J Server interface Correlation / Workflow ***Drools Correlation Manager notifd: Notifications Manager vacuumd: Database Automations Controller: OpenNMS Process controller translator: Event Translation threshd: Perf Threshold Mgr. *** July 2007 ** Dec 2006 July 2006 Acegi Security
eventd: Event Handler / Registration / Broadcasting *Spring Wiring / Data Access Objects (Spring Framework) discovery: Discover new nodes linkd: Link Topology discovery Distributed Polling collectd: Perf data collection trapd: SNMP Trap Receiver capsd: Node capability scanner syslogd: SYSLOg parsing **qosdrx: OSS/J Client Interface Castor XML *Hibernate ORM JDBC ORM
JMX collector
Log4J
/etc/*.XML config
PostgreSQL Db
Log Files
JMX Mbeans
slide - 12
OpenNMS: Core
Interprocess Communications, Example
Eventd
Publish/Subscribe Event Bus
Discovery
Vacuumd
Threshd
Collectd
Service Daemons
1 - ICMP Echo Reply 2 - New Suspect Event 3 - SNMP Reply 4 - Node Gained Service Event (SNMP) 5 - SNMP Poll Failure 6 - Node Lost Service Event (SNMP) 7 - Alarm Escalated Event 8 - Create Ticket Event
Craig Gallen 2009 slide - 13
Ticketd
Alarmd
Capsd
Notifd
Poller
Maven
Subversion
Eclipse
Bugzilla
CruiseControl
Sub Frameworks
Spring AOP Hibernate JDBC JMX JMS EJBs
Spring Portlet MVC Spring Web MVC
Jasper Reports
- 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)
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 )
slide - 14
slide - 15
Event Management
Trigger, evaluation, action automations processing of alarm table Vacuumd 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 event translator Passive Statusd Actiond 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. Xmlrpcd allows events to be sent from OpenNMS to a remote system via XMLRPC
Scriptd
Xmlrpcd
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 Threshd
Syslogd
trapd
Collectd
creates events when a performance metric exceeds preset values. High, Hi rearm, Low, Low rearm, Relative Change
slide - 16
eventconf.xml
<event> <mask> <maskelement> <mename>id</mename> <mevalue>.1.3.6.1.4.1.9.9.70.2</mevalue> event </maskelement> <maskelement> <mename>generic</mename> <mevalue>6</mevalue> </maskelement> <maskelement> TRAP SYSLOG <mename>specific</mename> <mevalue>17</mevalue> </maskelement> </mask> <uei>http://uei.opennms.org/vendor/Cisco/traps/ciscoC3800SysAggregateStatusChange</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>
slide - 17
Event List
slide - 18
User 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 - 19
Alarm List
slide - 20
Alarm Detail
slide - 21
Reports
slide - 22
Service Discovery
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. suspect Node event Discoveryd If device supports SNMP, Capsd is responsible for discovering all the services to be monitored on a device Importer Service Linkd 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
Capsd sets up configuration for topology discovery, polling and data gathering based upon discovered services Gathers and stores data from various sources, including SNMP, JMX, HTTP and NSClient
capsd
Collectd
Discoveryd ICMP pings the prescribed device ranges to find new devices, it then passes a suspect node event to capsd for further processing
Pollerd
Handles all service polling and recording of response times using synthetic transactions
slide - 23
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.org/model-import" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalLocation="http://www.example.org/model-import model-import.xsd" date-stamp="2006-03-09T00:03:09" foreign-source="matt:"> <this:node node-label="david" parent-node-label="apknd" foreign-id="4243"> <this:interface ip-addr="172.20.1.204" status="1" snmp-primary="S" descr="VPN interface"> <this:monitored-service service-name="ICMP"/> <this:monitored-service service-name="HTTP"/> </this:interface> <this:interface ip-addr="172.20.1.201" status="1" snmp-primary="P" descr="Management interface"> <this:monitored-service service-name="ICMP"/> <this:monitored-service service-name="SNMP"/> </this:interface> <this:category name="AC"/> <this:category name="UK"/> <this:category name="low"/> </this:node> <this:node node-label="djgregor" parent-node-label="apknd" foreign-id="4243"> <this:interface ip-addr="172.20.1.207" status="1" snmp-primary="S" descr="VPN interface"> <this:monitored-service service-name="ICMP"/> <this:monitored-service service-name="HTTP"/> </this:interface> <this:interface ip-addr="172.20.1.208" status="1" snmp-primary="P" descr="Management interface"> <this:monitored-service service-name="ICMP"/> <this:monitored-service service-name="SNMP"/> </this:interface> <this:category name="AC"/> <this:category name="UK"/> <this:category name="low"/> </this:node> </this:model-import>
slide - 24
slide - 25
Remote Poller
Remote needs to ensure connectivity to central hosts
Remote Client
OpenNMS Remote Poller
Central Services
1. 2. 3.
Remote client downloads OpenNMS Remote Poller from OpenNMS using java web start OpenNMS Remote Poller polls central services using synthetic transactions Remote Poller sends results to OpenNMS OpenNMS
slide - 26
AJAX Web-UI
Web-UI update for usability with large numbers of network and system entities under management
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
slide - 27
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)
slide - 28
Core
<- Mapping -> <- Mapping ->
(Adapter) (Adapter)
Time to market
Server
(EMS x)
Client
(NMS)
Transport Protocol
(e.g. WS, SMTP, JMS, Corba)
Creating a sustainable
implementation and managing dependencies is a major headache for all parties
Standardized Specification
Implementation Library
Real Implementation
Mapping
Implementation Library
dependencies Library
Mapping Code (ISV) TIP Implementation Library (TMForum) Dependency Library (3rd Party projects / products)
dependencies Library
Mapping
Server
Transport Protocol
(e.g. WS, SMTP, JMS, Corba)
Client
http://www.tmforum.org/InterfaceProgram/5733/home.html
slide - 29
entimOSS
Open Community Solutions
entimOSS
Open Community Solutions
Backup
The Value of Open source Research directions
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
V Applications Layer, including contents packaging (e.g. Web design, on-line information services, broadcasting services, ecommerce etc)
Table 1 Example OpenNMS Users Within The Telecoms Industry Layer Model
Telecoms Industry Layer Model (Fransman, M. 2001)
Layer VI Activity Customers / Consuming OpenNMS User 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 Arqiva FastSearch http://www.fastsearch.com/
OpenNMS Application
Business Catering Public Hospital and University Monitoring network infrastructure Large provider of health plans in Northern California Community Video Content Hosting On-line retailer in the UK. Details Monitoring network infrastructure Monitoring network infrastructure
Sites:100 Services:2043 (Balog, T. 2007b) Distributed Pollers: 350 Monitoring network infrastructure (Sartin, J. 2005b) Monitoring Web sales application JMX application monitoring (Reilly, R. 2007) Integrated with Splunk www.splunk.com Monitoring DVB-T Transport Stream Analysers Monitoring network infrastructure Proof of concept for DVB-T Network Monitoring search engines
On-line retailer in New York Broadcaster Broadcaster Broadcaster Internet search services
IV
Navigation & Middleware Layer (e.g. browsers, portals, search engines, directory assistance, security, electronic payment, etc)
Rackspace http://www.rackspace.com TCP/IP INTERFACE II Network Layer (e.g. optical fibre network, mobile network, DSL local network, radio access network, Ethernet, frame relay, ISDN, ATM, etc) Swisscom Eurospot www.swisscomeurospot.com/
Managed Hosting
(Brunelli, M. 2005) (Balog, T. 2007b) Providing customer service stats Nodes: 12278 Interfaces: 67738 Services: 569188 (300,000 data points every five minutes) (Winslow, M. 2004) Nodes:200 (Balog, T. 2007b) Sites: 2373 Nodes: 4760 3 Interfaces: 50001 Services:61601 Monitoring Satellite services at Jodrell Bank Monitoring network infrastructure
BT www.bt.com Opera Telecom http://www.operatelecom.co m/ TruePhone http://www.truphone.com/ Dell www.dell.com IBM www.ibm.com
Satellite data services SMS voting services for broadcasters SIP based Wifi mobile telephony provider Example using OpenNMS to manage Dell servers Example using OpenNMS to manage JMX
Equipment & Software Layer (e.g. switches, transmission equipment, base stations, routers, servers, CPE, billing software etc)
slide - 32
Service Provider
organizational boundary
Operational User
R&D internal and external lines of communication Product Management R&D Technology Evaluation Product Management Marketing
Purchasing
Sales
slide - 33
(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
slide - 34
OpenOSS Catalyst
Y
COTS OSS Catalyst COTS OSS Trial Commercial COTS OSS Project
slide - 35
Web Browser
IP Phone IP Phone
IP Phone Customers
WWW
IP Phone
NgN AS PM Portlet
Local Access NW
OTRS
Local Access NW
NGNAS PM API
OSS/J TT API
Correlation
SIP Router
Router
Gateway Router
Router
Gateway Router
SIP Router
metro node
metro node
Network Emulator
Network Error simulator
VoIP Overlay Network Proxy Server VoIP Customers Customer Edge Customer Edge Proxy Server VoIP Customers
*Note the scenario is simplified by not including management of the the Local Access NW
BT, Vodafone, Agilent, C&W, Colt, Qinetiq Invocom, Cognizant University of Southampton, Budapest University (BUTE),
slide - 36
db
Linux Server OpenNMS 2 qosd AlarmEventTopic n Alarm Event RXn Alarm Event RX2 Alarm Event RX1 qosdrx qosd
db
Deployment Scenario : OpenNMS qosdrx daemon creates threads which subscribe to AlarmEvent Topics (JVT or XVT) and updates the OpenNMS alarm list
db
Linux Server
OpenNMS
slide - 37
Inference Engine UI
Model Creation Model View
Model Builder
Velocity ArgoUML
Network Model
Rules
OSS/J FM
Model
FM portal
OSS/J FM
PM Portal
OSS/J PM
WebUI
A
OSS/J FM OSS/J PM
OpenNMS
B
Correlator sends new OSS/J alarms to OpenNMS
OSS/J FM
OSS/J FM
OSS/J PM
www.sidonis.com statewise
OpenNMS
TX TX
TV Service Network
TX TX TX
Scanning Configuration
SNMP scanning
slide - 38
Customer Portal
Service Mgt
Service Performance KPIs Service PM thresholds Service Service Performance Mgt Performance Mgt
Service Impact Tickets Service Quality Service Quality Monitoring & Impact Monitoring & Impact Analysis Analysis Service Impacting problems Trouble Tickets from correlated alarms
Service Impact Prioritization Workforce allocation Policy Workforce Mgt Workforce Mgt Resource Problem Resource Problem Mgt Mgt
Resource Mgt
Inventory Manager
Alarms
PM Data
slide - 39