Code Monkey home page Code Monkey logo

engrakib6 / johann-network-device-monitoring Goto Github PK

View Code? Open in Web Editor NEW

This project forked from flopach/johann-network-device-monitoring

0.0 0.0 0.0 17.71 MB

johann is a web-based network device monitoring tool for Cisco IOS XE devices. Collect configuration and operational data of your networking devices in a structured way in one single database!

License: Other

Dockerfile 0.85% Python 55.62% JavaScript 3.49% HTML 39.78% Shell 0.27%

johann-network-device-monitoring's Introduction

DevNet Published

johann is a web-based network device monitoring tool for Cisco IOS XE devices. Collect configuration and operational data of your networking devices in a structured way in one single database!

Get an Overview in this YouTube Video!

Features

  • Add single or multiple devices (.csv file) at once to the johann SQLite database
  • Show device information on a structured web-dashboard
  • Update all device information
  • Show simple report graphs
  • Export database as .xlsx
  • Toolset:
    • Enable RESTCONF on a single IOS XE device
    • Test RESTCONF: Get current configuration in JSON format
    • Show logs

Supported Devices*

  • ASR 1000
  • ASR 900 RSP2/RSP3, ASR 920, NCS 520 and NCS 4200
  • Catalyst 9200,9300,9400,9500,9600,9800
  • Catalyst 8000V
  • CSR 1000v
  • ESS 3x00
  • IR 1101
  • IE 3x00
  • ISR 1000
  • ISR 4000

*RESTCONF needs to be supported in the IOS XE version!

Installation

johann is easy installable:

  1. Install Docker Engine and Docker Compose (already included on macOS and Windows)

  2. Then copy & paste into terminal (on Linux you may need to start Docker with a non-root user):

git clone https://github.com/flopach/johann-network-device-monitoring &&
cd johann-network-device-monitoring/docker/ &&
docker-compose up

After all containers are up, you can access the web-dashboard via http://localhost.

Demo GIF

(size: 11MB)

Screenshots

FAQs

Are only IOS XE devices supported? - For now, yes only IOS XE devices.

What YANG modules do you use? - Cisco IOS-XE native YANG models only.

johann does not get _______ operational/configuration data! - Feel free to add it or send a feature request.

Why is some information empty in the johann database? - The RESTCONF interface of the device did not provide this information.

What is the password for Database admin? - You can set the Django superuser in the ./docker/johann/Dockerfile. The default is admin/admin123 to acess the database.

johann does not support ______ ! - Please put in a feature request of feel free to add this feature!

When stopping Docker, what data will be saved? And where? - The whole SQLite database and .log file will be saved in docker/johann/stickydata/.

Known Limitations

  • Currently, only timezone UTC is supported
  • Devices can only be deleted via Django Database Manager
  • Passwords are not encrypted in the database

Technical Deep-Dive

High-level architecture

Sequence diagram for adding devices

Built With

  • Django + Django Channels
  • Redis
  • Cisco UI Kit
  • jQuery
  • Featured Python Libraries: Requests, Netmiko (just for enabling RESTCONF), Matplotlib

Versioning

0.1.0 - Initial Release

Authors

  • Florian Pachinger - Initial work - flopach

License

This project is licensed under the Cisco Sample Code License 1.1 - see the LICENSE.md file for details

Further Links

johann-network-device-monitoring's People

Contributors

flopach avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.