When considering server performance, decisions should be made on how often you need to update the database and how important that information is to you. We update every 15 minutes, but the entire update process only takes 5min. We gather data on 50k nodes across 500+ devices, and import that data in to the database on a quadcore Dell 2950.
Create a list of static IPs from your DHCP server and create a statics text file, with each on a line by itself. It's best to automate the process of keeping this file up to date. Then set the statics_file variable to this file location and run netdbctl -s from cron.
You will need to get the registration data in to a CSV file and have updatenetdb.pl import it with the -n command through netdbctl. See the header of the updatenetdb.pl file to for the file format. You also need to set use_nac=1 in netdb-cgi.pl to enable NAC user reports and the display of registration data. If you use Bradford NAC, we are working on a direct integration with that system, but it is still under development.
By default, trunk port data is thrown out and only access port data is accepted. This is to prevent the importing of uplinks, which would clobber the database, since we are only interested in devices on access ports. Sometimes though, you need to import data from trunk ports if you have VMWare servers using trunks or you have your IP phones setup using trunk ports instead of voice vlans. In this case, you can set specific devices in netdb.conf to use import trunk port data or set trunk importing as the default behavior with the use_ports option (see netdb.conf). If the scraper imports data for any port, it will only import it if there are not more than max_macs on a device, to prevent uplinks from being imported. This still causes some issues for a few people, so I plan to enable tweaking of the max_macs variable on a per device basis in v1.8.
Install Jose Pedro Oliveira's wakeonlan script to /usr/bin
There are three levels of access to NetDB, plus a default access level. You can control access to specific reports or restrict the number of records returned based on username and access level. See the netdb-cgi.conf file for samples.
You need to put your data in to the NetDB format (CSV), and then populate the arp and mac table files in the data directory. See the updatenetdb.pl header for file formats, and the netdb.conf file for the location of the files. If you do not have interface status data, you will need to set the no_switchstatus variable in netdb.conf.
Start troubleshooting by looking at the log file in /var/log/netdb/ and running the cronjob command from the netdb user account on the server with the -v option. There are more debugging options below. See the bottom of the INSTALL document.
There are mainly two ways things can go wrong. The first is the most common, which is a scraper issue where the data is never collected off the devices. Check to see if the data you are looking for is in the files in the /opt/netdb/data/ directory. If you are not collecting data from your devices, you need to set the debug level to 3 in netdb.conf or run netdbctl with -v and -vv to start figuring out what is wrong. The most common scraper issue is bad login information, so test the credentials on the device directly. If a specific device is causing issues, put it in a devicelist file by itself, and run netdbctl with these options: netdbctl -vv -ud -df /tmp/tmpdevicefile.csv. That should help you determine what is going wrong with the scraper.
If you have a database problem, there are instructions in the INSTALL document to do some basic MySQL sanity checks. You want to make sure the create_database script ran fully, and that your netdb.error log file is not throwing errors. You'll find instructions to login with the netdb username and password, and issue some basic queries to check the integrity of the database. Any MySQL troubleshooting page should apply to database problems (which are very few by the way).
If imports are running extremely slow when you do an ARP import in to the database, you likely have a reverse DNS issue on your network. Make sure your DNS servers are properly configured or try a local caching BIND server. You can also disable DNS lookups with disable_DNS, see the netdb.conf file for ideas on how to use this.
At the end of the netdb.conf file is the debugging level. Start by setting this to three and running the netdbctl command from the command line instead of cron. If you need to, you can increase this up to level 5.
Please use the Sourceforge Help Forum for additional help. I monitor this forum regularly.