Giter Site home page Giter Site logo

netdisco / netdisco Goto Github PK

View Code? Open in Web Editor NEW
602.0 42.0 73.0 9.49 MB

A web-based network management tool.

Home Page: http://netdisco.org/

License: BSD 3-Clause "New" or "Revised" License

Perl 76.90% PLpgSQL 2.73% HTML 1.26% CSS 6.43% JavaScript 12.67%
netdisco cpan postgresql-database perl application network-monitoring network-visualization open-source

netdisco's Introduction

CPAN version Release date Tests Status Docker Image

Netdisco is a web-based network management tool suitable for small to very large networks. IP and MAC address data is collected into a PostgreSQL database using SNMP, CLI, or device APIs. Some of the things you can do with Netdisco:

  • Locate a machine on the network by MAC or IP and show the switch port it lives at
  • Turn off a switch port, or change the VLAN or PoE status of a port
  • Inventory your network hardware by model, vendor, software and operating system
  • Pretty pictures of your network

See the demo at: https://netdisco2-demo.herokuapp.com/

Installation

Netdisco is written in Perl and is self-contained apart from the PostgreSQL database, so is very easy to install and runs well on any linux or unix system. We also have docker images if you prefer.

It includes a lightweight web server for the interface, a backend daemon to gather data from your network, and a command line interface for troubleshooting. There is a simple configuration file in YAML format.

Please check out the installation instructions on CPAN. When upgrading, make sure to check the latest Release Notes.

You can also speak to someone in the #netdisco@libera IRC channel, or on the community email list.

netdisco's People

Contributors

alanbuxey avatar antonc42 avatar arcanez avatar arthurhlt avatar bldewolf avatar dgeo avatar djzort avatar dtuecks avatar earendilfr avatar fenner avatar haught avatar henningen avatar hllns avatar inphobia avatar jeneric avatar jeroenvis avatar jngreene avatar kenfire avatar manwar avatar netdisco-automation avatar njohnsn avatar ollyg avatar pyro3d avatar rc9000 avatar sartoshi-foot-dao avatar slofunk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

netdisco's Issues

Add port log entry without changing port status

Be able to add an entry to the port log w/out having to
shut it off/on.

Orig Req:
From: Bruce Rodger <Bruce.Rodger@*.uk>
Date: Thu, 19 Aug 2004 11:58:33 +0100 (BST)
Subject: [Netdisco] Device view features
To: [email protected]

When looking at the "device view", with "show all
ports", you see all
the ports, with description, speed, mac addresses etc etc.

You can also disable/enable ports and if ports have
been previously
enabled/disabled you can view a per-port log.

But as far as I can see you cannot create a log entry
without (eg)
disabling then re-enabling a port.

It would be useful to be able to either enter a "log
entry" for a port,
or perhaps to have a short "comments" field where you
could enter some
details about whatever is connected to that port - ie
information stored
within netdisco, rather than derived via snmp from the
switch.

Reported by: maxslug-placeholder

Original Ticket: netdisco/netdisco2/4

Allow pseudo-devices in topology file

Allow pseudo-devices (e.g., numbered 0.0.0.1, etc.) in the topology
file. Any link that you claim a pseudo-device has gets added to
device_port.

The device entry needs ip, should have name, dns, description. In
order for db_clean() to clean nodes from the port, it has to have layers
2 or 3. However, having layers means that macsuck or arpnip has to
skip it explicitly.

The device_port entry should have speed for graphing.

There may be more which we'll need to learn, this was just my
experience from creating entries by hand in sql.

Reported by: fenner

Original Ticket: netdisco/netdisco2/12

update port status (up/down) with mac_suck information

Currently netdisco gets the port state (up/down) at the
moment it (re)discovers a device. If a host gets
attached to a port after the discover and mac_suck
obtaines the associated MAC address, the port is still
reported as down, which is a bit irritating.

A cross reference between the mac_suck information and
the port state would be very nice.

Reported by: ralfgross

Original Ticket: netdisco/netdisco2/9

Device "Domains"

Use the VTP Domain or another field to assign devices to zones or domains of some kind.

Use this information either globally in searches etc (using drop-down selector in navbar) or simply to filter the layer 2 netmap image.

Reported by: ollyg

Original Ticket: netdisco/nd2-features/1

Add functionality to color nodes by device layer.

We have enhanced the frontend to be able to color nodes by its layer. So it is possible to give layer-2 devices a different color than layer-3 devices.
For example:
node_map = devlayer:110$:fillcolor:peru:dev-cat:Router
node_map = devlayer:011$:fillcolor:limegreen:dev-cat:Switching Hub

See attached patch.

Reported by: mborgelt

Original Ticket: netdisco/nd2-features/30

Show Port Channel assigments in Device View

Missing for this feature is the MIB location for port
channel membership that most Cisco devices use.

The feature is to have the port channel that a physical
interface in listed -- kinda like IPs on a specific
port are listed now.

very similar to the requested VLAN feature.
moved from bug 865492 by derekandree

Reported by: maxslug-placeholder

Original Ticket: netdisco/netdisco2/17

cron-less continuous polling

This is half patch half feature request.

It is still in a "proof of concept" phase, but I have had this running for a number of months now. The main issues it has are in dealing with failures and getting suck...

What this new process_all function does is continuously polls the network, ensuring that no devices are out of date, and that only one process is touching the database at a time. This is sort of the opposite of the threading support I saw. The main goal was to be self tuning and keep the load on the database low, even though polling multiple devices would be fater.

With about 900 devices and 30,000 ports this loop keeps every device macsucked at least once an hour, with currently about 400 of them polled in the last 30 minutes. It also ensures that an arpwalk is run every 25 minutes.

I did notice the memory usage was going up a bit, so that is why I have it only run through the loop 1000 times before being restarted.

It definitely needs some work, but I think the idea is solid... feedback would be nice :)

Reported by: justin_a

Original Ticket: netdisco/nd2-features/14

change port description on switch when port disabled

This would require a lot of testing to find the right
OID for each device family.

From: "Humes, David G."
Date: Wed, 2 Feb 2005 11:45:28 -0500
Subject: RE: Fwd: Re: [Netdisco] VLAN Modification via
Port Control Feature

I would like to echo what Walter stated. This feature
will make
Netdisco extremely useful in our environment. Thanks!

If you think this would be worthwhile, I'd like to
suggest another
feature to go along with port control. Our current
policy when a port
is killed is to change the name on the port to reflect
that it has been
disabled. The ops guys might put in something like
"Disabled - Bugbear"
or the like. Now I realize that the port name is not
the best place to
keep track of the reasons for port changes, and
Netdisco is far better
at that. But, that's how we've been doing things for
years and it's not
likely to change. It also allows people that have
access to the
switches to quickly see why a port is disabled. So,
what do you think
about adding the capability to rename the port?

Thanks.

--Dave

Reported by: maxslug-placeholder

Original Ticket: netdisco/netdisco2/7

Separate Web and Daemon dependencies somehow

Would be nice to install Netdisco as web app only, or Poller Daemon only. One use case is where we don't have net-snmp around for compiling the perl bindings (e.g. have this problem on the Heroku demo site).

One way would be to use the cpanminus+Module::Install "features" feature. It's disliked by some, but seems to work well. Another way would be to have a set of metadata-only packages which specified different sets of dependencies.

What I think important is that the simplest thing does the most obvious - i.e. Installing App::Netdisco gives the whole shebang. Then there is some way to explicitly say "web" or "daemon".

Reported by: ollyg

Original Ticket: netdisco/nd2-features/21

Do something with IP Routing information

Does anyone know what the device_route table does, and could be used for?

Seems like it would be nice to collect static and dynamic routing information and have a Device tab which showed the routing table. Then we could have a kind of looking glass.

Reported by: ollyg

Original Ticket: netdisco/netdisco2/22

Broken Topology Links Report

I noticed that the 0.93->0.94 UPGRADE info says

Start checking the logs from your macwalk device (you can do it from
the web
page now) and look for the uplink warnings. Fix your topology file to
match.

and realized, wouldn't it be nice to have a seperate log entry for that
instead of checking each macsuck log?

Reported by: fenner

Original Ticket: netdisco/netdisco2/15

Allow discover_no to match against partial DNS name

[From Edward Vopata]:
Is there a way to exclude a set of device based upon a
wildcard or regex hostname expression? For example,
discover_no = sep0*
or
discover_no = (sep0.*)

...

I think just excluding a device based upon a DNS lookup would be
sufficient and probably perferable. I am trying to find a quick
way to keep Netdisco from attempting to poll devices, such as IP
phones. This feature might also be used to exclude devices in
a particular DNS domain.

Reported by: fenner

Original Ticket: netdisco/netdisco2/14

UTF-8 problem with serial number

[12347] info @5.926704> discover: status error: error running job: DBIx::Class::Storage::DBI::_dbh_execute_for_fetch(): execute_for_fetch() aborted with 'ERROR: invalid byte sequence for encoding "UTF8": 0xff' at populate slice:
{
class => "module",
description => "C2600 Mainboard",
fru => "false",
fw_ver => "",
hw_ver => "1.0",
index => 3,
last_discover => "now()",
model => "",
name => "C2600 Mainboard",
parent => 2,
pos => 0,
serial => "\377\377\377FFFF\377\377\377\377",
type => "cevCpu2600"
} at /home/netdisco/perl5/lib/perl5/App/Netdisco/Core/Discover.pm line 573

But the router is reporting the serial correctly:
SNMPv2-SMI::mib-2.47.1.1.1.1.11.1 = STRING: "REDACTED (see oliver)"
SNMPv2-SMI::mib-2.47.1.1.1.1.11.2 = ""
SNMPv2-SMI::mib-2.47.1.1.1.1.11.3 = Hex-STRING: FF FF FF 46 46 46 46 FF FF FF FF
SNMPv2-SMI::mib-2.47.1.1.1.1.11.4 = ""
SNMPv2-SMI::mib-2.47.1.1.1.1.11.5 = ""
SNMPv2-SMI::mib-2.47.1.1.1.1.11.6 = ""
SNMPv2-SMI::mib-2.47.1.1.1.1.11.7 = ""
SNMPv2-SMI::mib-2.47.1.1.1.1.11.8 = STRING: "X"
SNMPv2-SMI::mib-2.47.1.1.1.1.11.9 = ""
SNMPv2-SMI::mib-2.47.1.1.1.1.11.10 = ""
SNMPv2-SMI::mib-2.47.1.1.1.1.11.11 = ""

Reported by: ollyg

Original Ticket: netdisco/netdisco2/37

Port Report - Ports turned on outside Netdisco

From conversation with Brian Wilson :

>I like the idea for that other search, "ports that
dont have an
>enabled log
>entry but have been enabled"

Yeah, exactly. It might help people keep up with
situations where the
port has been re-enabled by hand (or via another
script) other than
with netdisco.

Reported by: maxslug-placeholder

Original Ticket: netdisco/nd2-features/11

Role Based Access Control

It would be extremely useful to be able to add users to a groups, and then control what devices that group is able to view / alter through port control and device control. Personally, specifying devices by subnets would be most useful, and each user being able to exist within multiple groups.

Reported by: nobody

Original Ticket: netdisco/nd2-features/2

Error in _set_canonical_ip() method

When trying to change root_ip of a previously discovered device encounter this error:

error running job: DBIx::Class::Row::new(): No such column 'uptime_age' on App::Netdisco::DB::Result::Device at .../Netdisco/lib/App/Netdisco/Core/Discover.pm line 143

the with_times synthesized columns are not actually in the database so above error occurs.

Reported by: jeneric-placeholder

Original Ticket: netdisco/netdisco2/35

Use Vendor abbrevs to enhance node display in device port view

Making use of the vendor abbreviations created using my previous patch submission 3376779

https://sourceforge.net/tracker/?func=detail&aid=3376779&group\_id=80033&atid=558510

the attached patch modifies the display of nodes in device.html to provide the option to replace the OUI part of the MAC address with the vendor abbreviation, in much the same way as Wireshark does. The feature can be toggled on and off through "Change View". A browser tooltip will display the full MAC address where required. Default is for the option to be off, but in my environment I'd probably want it on most of the time, so consideration could be given either to defaulting the option on in device.html, or perhaps permitting the administrator to select the default setting via netdisco.conf.

I think this patch is against my branch which includes my previous patch, if my git-foo is right. Or maybe not! (see comments on my git naiivity in previous patch).

Reported by: jrbinks

Original Ticket: netdisco/netdisco2/86

Add report on subnet sizes & usage

It would be useful to have a report listing each subnet discovered, size of the subnet and the number of distinct IP addresses that have been seen within each subnet the last XX days. This may help when reorganizing IP space, eg finding subnets with less than 50% utilization.

Reported by: JeroenvIS

Original Ticket: netdisco/netdisco2/1

patchfield information

with version 0.94 I can locate a pc like "house A first
level".
But where are 50 or more rooms on that floor.
So I must visit the switch and look which room and wich
outlet.
Is it possible to integrate a table patchfield like
"room text, outlet text, switch inet, port text,
comment text";
(example: room "B107",outlet "B1B107/8", switch
"192.168.12.17",
port "Fastethernet 0/16", comment "my room :-)" ) ?

of course a webfrontend for inserting the rooms and
outlets a nesserary.

thanks for your work, it's a nice programm

Sven Hummel
email: [email protected]

Reported by: *anonymous

Original Ticket: netdisco/netdisco2/8

Commit switch changes to NVRAM

When netdisco makes a change to a port or device, such
as turns off the port or changes its VLAN the change is
not then commited to the NVRAM of the device.

Requires that SNMP::Info can issue the correct command
to tell the device to commit changes to NVRAM.

Some discussion and device support already done, need
to dig that up...

Reported by: maxslug-placeholder

Original Ticket: netdisco/nd2-features/16

Addition of Wireshark abbreviations for OUI manufacturers

The attached patchset will make modifications to add an 'abbrev' field to the oui table for each entry. The field is populated via netdisco -O fetching a copy of the OUI abbreviations used in the WIreshark project.

Note that I had to create an upgrade-1.1-to-1.2.sql file for the database modification. Perhaps the next upgrade-x.xx file should be created by routine after a release has been made.

I have a use for this, to follow later (maybe if this is received favourably!)

This is my first time with git, it was an experience, so please be gentle if it's a bit rough around the edges!

Reported by: jrbinks

Original Ticket: netdisco/netdisco2/64

PortFast information

If a port has its portfast setting enabled, it will
automatically go into
the forwarding state, bypassing the learning and
listening state thus
it would come up quicker than a port set in portfast
disabled mode (in
terms of spanning tree). Consequently, only ports
connected to a
single end stations should be in portfast enabled mode
since their
addition to the tree would not create a loop; we figure
it would be useful
to see if any trunk port is portfast enabled because
this may potentially
create a loop.

CISCO-STACK-MIB has an OID which works for our 4000's
and 5000's
(1.3.6.1.4.1.9.5.1.4.1.1.12.mod.port) but its status is
deprecated...I've
yet to look for an OID that's current and will work on
all (cisco)
devices, but I'm sure I could find one if you think
this might be a useful
addition to netdisco.

Thanks,

R. Shvarzman

Reported by: maxslug-placeholder

Original Ticket: netdisco/nd2-features/12

new statistics table

I wanted to be able to view the stats information over time, number of devices, number of ports,etc.

I added a statistics table and moved some code around to add rows to it from a cron job with

# do statistics at 1 minute after midnight
1 0 * * * /usr/local/netdisco/netdisco --statistics

Once I have enough data I'll work on adding more support for it in the frontend, perhaps with graphs.

Reported by: justin_a

Original Ticket: netdisco/nd2-features/15

Add address ranges to in_device

discover_only might want to take an address range, e.g., you number devices out of the first 10 addresses in each subnet, so you want to say 128.1.0.1-10, 128.1.1.1-10, 128.1.2.1-10, ...

Reported by: fenner

Original Ticket: netdisco/netdisco2/13

Front Panel View

Peter Ehlin developed some patches to display images of the front panel in the device view.

Hi

I have written a module that displays the switch graphically.

Right now it supports the following Cisco switches:
29408TF
29408TT
Cat295024G
Cat2950t24
Cat356024PS
Cat356048PS
Cat3560G48PS
Cat3750Ge12Sfp
Cat295012
Cat295024
Cat375024TS

There is a screenshot at: http://www.sics.se/~pelin/screenshot.PNG
Somehow I could not capture the mousepointer but it is hoovering over port
17

What is does:
It adds a graphical view of your switch to the device_view page. The image is clickable
and onmouseover events displays popups via the excellent library overlib.

This module is by no means finished and I personally doubt that it will be.
I have not done anything with it for over a month. If you have any of these switches,
it might work for you. If you don't have any of these switches. You can add them
quite easily to the code, provided that you have the images.

You can download the patch from http://www.sics.se/~pelin/frontpanel.patch

You also need the overlib library downloaded from
http://www.bosrup.com/web/overlib/

TODO:
* support more than just up/down as port status. disabled, stp block,
monitor, administrative down
* support more switches
* a better database format... (I am just a beginner perl programmer)
* more information for the popup. connected hosts/switches, STP, bandwidth,
interface IP
* support status leds
* support modular switches

Good luck
Peter

Reported by: fenner

Original Ticket: netdisco/nd2-features/9

Printer Statistics

Most printers have SNMP statistics that can be groked.

From: Jeff Carpio <[email protected]>

Date: Tue, 19 Jul 2005 04:23:42 -0500

Subject: [Netdisco] Printers

To: [email protected]

Well I just want to say I have Netdisco and FreeBSD
cohabitating
beautifully ... but I would like to know if there is a
way to
incorporate printer info (i.e. page counts, maintenance
reminders,
etc...) into the netdisco webpage statistics.

Jeff

Reported by: maxslug-placeholder

Original Ticket: netdisco/nd2-features/10

Ask for "reason" on Port Control action

In ND1 we ask user for one of a set of pre-canned reasons for doing the port-control (e.g. AUP violation), or "other". Need to have the set of reasons, update dialog box to gather this, and store in DB log field.

Reported by: ollyg

Original Ticket: netdisco/netdisco2/19

Rancid and/or Cricket Integration

It would be nice to have Netdisco play with other
applications of complementary genre.

There is a little NMIS integration, but one-click away
from Rancid and Cricket would be nice.

I started a separate project to re-engineer the wheel
and graphing/cricket and called it DiscoGraph. Maybe
someone would like to bring that back to life?

-m

Reported by: maxslug-placeholder

Original Ticket: netdisco/netdisco2/10

Network map by VLAN.

Now when NetDisco is able to store VLAN information,
would it be nice with a little function to be able to
create a different map for each VLAN.

Reported by: farbman

Original Ticket: netdisco/netdisco2/6

Adding Polycom VVX as a valid IP phone in remote_types

There are more IP phones that are not being classified as such in the device_port.remote_type field that we would like to add. The simplest place seems to be to do it here (specifically for the "Polycom VVX" series):

https://github.com/netdisco/netdisco/blob/master/netdisco#L1602

< if (defined $remote_type and $remote_type =~ /(mitel.5\d{3})/i) {
> if (defined $remote_type and $remote_type =~ /((polycom\svvx)|(mitel.5\d{3})/i)) {
```~

however the better longterm solution would be to create a new table with known phone types and update the code to be built from that table.

Reported by: adram

Original Ticket: [netdisco/netdisco2/67](https://sourceforge.net/p/netdisco/netdisco2/67)

Store IP Phone data

Dustin Heywood suggested that it might be possible to try SNMP against IP phones even when CDP and LLDP are not enabled, using IP prefix matching (in config). Gather things like phone number, name, vlan.

Reported by: ollyg

Original Ticket: netdisco/nd2-features/4

FreeBSD rc.d bugfix

Hello,
there is a bug on the rc.d file for FreeBSD.
You missed to add this line in the rc.d/netdisco:

rcvar="netdisco_enable"

Without this netdisco starts everytime whereas it's not necessarily enabled.

Reported by: nerzhul629

Original Ticket: netdisco/netdisco2/130

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.