Installation

Getting Started

There are several options for you. You’ll likely get the archive working on any Unix system, where you can satisfy the dependencies (amazingly enough, Windows too!).

You can get it running on debian/ubuntu within 5 minutes (more details in Generic Installation Procedure):

  1. sudo apt-get install apache2 libapache2-mod-php5 mysql-server libnet-snmp-perl libio-pty-perl libnet-telnet-perl libalgorithm-diff-perl librrds-perl php5-mysql php5-snmp php5-gd php5-mcrypt rrdtool
  2. create a /nedi folder somewhere (preferable in /var) and extract the tarball. Change permission to www-data
  3. edit /etc/apache2/sites-enabled/000-default and adjust document root to nedi/html
  4. run nedi -i and you should be able to login with admin/admin

Some faithful community members did a great job in documenting their installations:


Generic Installation Procedure

  1. Satisfy the dependencies listed below.
  2. Extract the NeDi archive (e.g. to /var/nedi). Move the files in html to your webserver’s document root (e.g. /var/www/htdocs) or adjust the document root.
  3. Edit nedi.conf to fit your needs (Please use the new one as copying your existing config may lead to errors, if new items are missing). If you get ‘Dude, where is nedi.conf?’ link it to /etc.
  4. Cd to /var/nedi (or whatever you chose) and type ./nedi.pl -i to initialize the backend. I recommend to dump users, stock and monitoring before that, if your upgrading from an older version: mysqldump nedi monitoring user stock -u nedi -p > nedi-mon-usr.sql and put them back in after recreating the database (adjust DB structure, if necessary): cat nedi-mon-usr.sql |mysql -u nedi -p nedi.
  5. The monitoring daemon moni.pl can be started from commandline, startup script or the GUI.
  6. Since syslog.pl requires a priviledged port (514) a simple workaround (to avoid running it as root) would be to forward a high port via system’s FW. This means something like this for Linux: iptables -A PREROUTING -t nat -p udp –dport 514 -j REDIRECT –to-port 1514. Just set $port in syslog.pl to 1514 (or whatever you chose the port to be). Now you can even restart it from the GUI with System-Services.
  7. A similar setup can be implemented for snmptrapd: iptables -A PREROUTING -t nat -p udp –dport 162 -j REDIRECT –to-port 1162.


Hardware Requirements

The computer requirements depend on the size of your network. (Surprised?). I was developing NeDi on a P4 / 2.4GHz with 1 GB RAM. I guess you’ll find out for yourself, what you’d need, if you fall asleep while waiting for a report. A friend of mine runs NeDi on a PII/300 with some 12’000 nodes and about 280 devices!

The NeDi script itself uses up to 50MB of RAM per discovery thread and is known to be able to cope with networks of 2000+ devices. If you want to include Tobi’s RRDtool, you’ll need ~200KB disk storage per interface (can be adjusted with rrdsize in nedi.conf).

Software Requirements

The discovery part is programmed in Perl and needs those additional modules:

  • Net::SNMP
  • Net::Telnet
  • Algorithm::Diff
  • DBI
  • DBD::MySQL
  • RRDs
  • LWP (optional HTTP support)
  • IO::Tty (optional SSH support)
  • libnet (provides Net::SMTP for alerts)

The frontend requires a webserver providing PHP with the following addons:

  • SQL
  • SNMP
  • SESSION
  • GD (for Topology-Map)
  • MCRYPT for SHA256 password encryption