/Network_Health_Check

Ping Test of Devices and saves result in Excell with Color Coding based on Output.

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

published

alt text

  • Excell Output alt text

Table of contents

General info

This project allows the users to see which branch device is Live,it does this by a Ping test,the user first access the centralized server from where it has connectivity to all the Branch's Device,and then it runs a Ping to each and every device, The Programme looks for certain patterns form the Device response If the pattern matches the programmes value it will be either considered as UP or DOWN based ont the pattern,and a summary table is presented to the user on console Also the output is saved in excell with color coding based on the Ping result.

Technologies

Project is created with:

  • Python 3.6.9

Network Devices and Platforms

  • GNS3 IOU and IOS Devices
  • EVE-NG IOU and IOS Devices
  • CML2(VIRL 2) IOU and IOS Devices

Libraries

  • Rich
  • openpyxl
  • Nornir
  • Netmiko
  • alive-progress

Usage

  • Summary

  • Used Nornir , Netmiko Libraries for connecting Device.

    • For Direct Access method Nornir Library is used,you need Inventory (hosts,groups,configs)YAML file,here only one Host IP specified on hosts file which is used for connecting Centralized/Aggregation router,branch's ip address and other information for testing devices will be used from csv file, which will be provide from user, my csv file is Look Here,you can use your custom csv file,the customs csv file path should be mentioned correctly on programme.

      Assign csv

      Assigning custom csv file with it's exact path like alt text

    • For Indirect Access(through Intemediate Server)Netmiko Lirary is used,user need to specify the Ip Address and Login Credentials for the Intermediate/Jump Server during runtime,default values will be used if no values provided,for user executing with Indirect Access method,branch's ip and other information will also rely on csv files file used by programme , custom csv files can also be used.


  • Execution from Centralized Router.

    • Host(System/Laptop)------Network_Devices alt text

    When mirroring this in your'e System , you need to setup a topology on your Simulator of your choice having full connectivity with your Local System ip which is running this code , and save the ip address of Lan or Loopback ip of all the Devices running on Simulator in csv file and assign or copy-paste this csv file path as a value to variable 'branch_ip_address_for_pinging' then run the code Look here

  • Execution from Centralized Server.

    • Host(System/Laptop)----Intermediate/Jump Server(Linux)----Network_Devices
      alt text

    When mirroring this in your'e System , you need to setup a topology on your Simulator of your choice , you must have connectivity with the Jump Server and The Jump Server should have connectivity with the Network Device in Simulator,your Jump Server will act as an Intermediate Server and through it you will connect to Network Devices , but the code will run and excute in the Local System/Host itself.

Setup

Before cloning this project check the necessary requirements , you can install requirements with

$ pip3 install -r requirements.txt

To run this project, clone this to your local Folder using 'git clone'

$ git clone https://github.com/shebin7/Network_Health_Check

Then run it from IDE or from Terminal

$ python3 Network_Health_Check.py

Other Informations

Added two options to access Direct or Indirect (through Intermediate Server)