Introduction
For a Network Managment System (NMS) NeDi has an excellent cost-to-benefit ratio: it's free! NeDi is an open source product, and therefore the source code is freely avaiable for download, and if you have some good ideas, you can contribute to the project.
Installation
This really depends on what you want to put it on. I would suggest using the latest verision of CentOS. This is what I've installed NeDi on in the past with the most ease and success. Make sure you've got perl, apache, and mysql, php running on your box at the very minimum. After you've got those, you can just do a yum install of most of your packages:
yum -y install
php-mysql php-snmp php-gd
perl-Net-Telnet-Cisco perl-Algorithm-Diff perl-Net-Telnet perl-Net-SNMP net-snmp rrdtool
From there you'll want to grab NeDi itself. You can get it from here: http://www.nedi.ch/doku.php?id=files:download.Discovery
Alright so you've got the install done and you're ready for your first discovery. Excellent! The first thing you want to make sure is that you have your seedlist file under your nedi directory filled out. You COULD leave it blank, however from my experience I've found you're going to want to be familiar with it at the very minimum. In the largest network that I run NeDi in, I have 6 devices listed in my seedlist, and from there I can discover the other 300 Cisco routers, switches, and firewalls.
If you want to run a manual discovery from your linux terminal, you can do the following under your nedi directory:
./nedi.pl -c
Steady State
This is what I call it when NeDi is in a normal operational mode. Basically feel free to kick back and watch as it does everything you want it to do. Personally I don't use NeDi for everything. For instance, I don't push config changes through it, or use it for monitoring.
Troubleshooting
If you're having trouble with NeDi, this section will try to help you. The most common problem that I see is missing modules causing config backups not to work. If this is happening to you, I would suggest running this perl script:
#!/usr/bin/perl
use Net::SSH::Perl;
my $host="DEVICEIP";
my $pass='YOURPASSWORD';
my $user="YOURUSERNAME";
my $ssh = Net::SSH::Perl->new($host);
$ssh->login($user, $pass);
my($stdout, $stderr, $exit) = $ssh->cmd("show run");
print "$stdout\n";
This script will test the basic functionality of Net::SSH::Perl. I've found that many times there is something missing, and this will at least give you the oppurtunity to test just that functionality.