Challenge Overview

Overview

The objective of this challenge is to build an app for Cisco Analytics to collect and integrate information from multiple NMS platforms, such as Zabbix, OpenNMS and Nagios, so that it can consume APIs from these systems to present configuration, version and system status information about the customer’s network infrastructure in the environment.

Challenge Requirements

This challenge specifically is for developing the functionality and a basic user experience to facilitate connection & monitoring for a Cisco Analytics OpenNMS Connector WebApp. An Admin user should be able to configure, connect to, and ingest data from several OpenNMS applications (Zabbix, OpenNMS, Nagios). (Challenge registrants will be provided a VM with a preconfigured topology and working router configuration files. * Follow instructions in the forum to request the assets.)

The resulting app will be used to address data collection of a variety of data stores and spreadsheets from numerous data streams, all of which will need to be imported into downstream applications for processing data into a single source of truth. Future challenges may address formatting of this collected data.

Once the connection(s) to the above systems are configured, the Admin should have the ability to explore configuration and state information of the provided topology including:

  1. View the current configuration files

  2. Data output from the systems

  3. Basic Interface Status & System Uptime (not a full dashboard, just a stream of the most recent raw data, i.e. last 10 values).

* Plus points if your solution can also model a connection with a closed source system such as HP OpenView.

Please use standard JSON key value pairs (uptime: XXX. etc) and download the provided all-in-one VMs (Asset). Note that you will need the ability to export to JSON or others. Please note that it is more important to get data collected, than formatting any data. The Connector application should be written in a way such that it is extensible to additional NMS systems in the future, and that each configured system be treated as a connection in the application. This application should be able to run on a Linux distro. The ideal development will focus on implementing SoC (separation of concerns), and structure the most common features as REST API’s, implement appropriate validations to check that the connections configured are able to ingest data from the NMS and the device level. While the UI is not the core focus, we would like to emphasize that you use a responsive web UI framework like Angular/Bootstrap or JQuery for the Interfaces you develop.

{Connector App} <-----> {multiple NMS Systems} <-----> {Networking Nodes emulated in something like GNS3}

Possible future challenges for this Application:

App stabilization, UI Optimization, Content and Device Administration, User Administration, and potentially expand on other system connections.

Key Considerations

  1. Please validate the app user interfaces on traditional browsers: Chrome, Safari, Firefox, IE

  2. Please note any open source libraries used in the developed solution

  3. Please ensure the solution is extensible, i.e. to support additional OpenNMS applications eventually, and note all applicable assumptions.

  4. Your submission needs to be just the Application and not the entire VM, however your Demo Video needs to demonstrate all the functional Use cases in the requirements.

References

Product Overview: http://www.cisco.com/c/en/us/products/cloud-systems-management/prime-analytics/index.html

Startup VM Images (Server & Client) provided to get started with the baseline environment. Please follow instructions in the Challenge Forum -> Code Assets to download. (* Available to registered participants only).

Note: There are 2 VM images provided as Assets, the Server image is the most important one to begin with. The Client image is provided merely to validate your connectivity and a sample call with the Server instance. You may use the same Client image to install OpenNMS applications (Zabbix, OpenNMS, Nagios) into Or use a separate VM to represent the individual NMS applications (* They have to all be on the same subnet/Host to communicate with the server). Whichever method you choose, please make sure your submission conforms to the guidelines so that we can mimic your environment while reviewing the submission.



Final Submission Guidelines

Submission Guidelines

Architecture Considerations and Requirements

  1. Code Aesthetics: Code must be clean (no commented code fragments, unused variables etc), tidy (4 space indents) and well commented. Please use Contest/Challenge names in comments instead of developer names. Please utilize good clear and purposeful naming for variables, classes etc.

Software Guidelines

This solution will need to be a quality functional asset.  Submission requires:

  1. Please submit the VM image that contains the solution and exhibits the NMS tools you developed the solution against, with a detailed documentation, such that we can easily mimic your environment by using the same Server VM provided to you as an Asset.
  2. Project Code elements for the project and metadata elements
  3. Source code - please call out any external references used within the code
  4. brief demo video covering application functionality end to end and an overview of the application code blocks
  5. High level documentation (i.e. a readme doc) which covers the install and configuration steps
  6. Your submission at minimum should implement the following requirements:
    1. Be able to easily setup the Application
    2. Functionality to configure a connection to a NMS system and query the basic information from the provided topology.

Review style

Final Review

Community Review Board

Approval

User Sign-Off

Challenge links

ID: 30046803