If you've ever had to search for a device on your network by telnetting into switches and doing MAC address lookups, or you just wish that you could tell where a certain device is physically located (or, perhaps more important, where it was located), then you should take a good look at NeDi.
NeDi is a LAMP application that regularly walks the MAC address and ARP tables on your network switches, cataloging every device it discovers in a local database.
You can then log into the NeDi Web GUI and conduct searches to determine the switch and switch port of any device by MAC address, IP address, or DNS name.
In addition, NeDi collects as much information as possible from every network device it encounters, pulling serial numbers, firmware and software versions, current temps, module configurations, and so forth. You can even use NeDi to flag MAC addresses of devices that are missing or stolen, and NeDi will watch to see if they appear on the network again.
Configuration is straightforward, with a single config file that allows for a significant amount of customization, including the ability to skip devices based on regular expressions or network-border definitions. You can even include seed lists of devices to query if the network is separated by nondiscoverable boundaries, as in the case of an MPLS network. NeDi usually uses Cisco Discovery Protocol or Link Layer Discovery Protocol, discovering new switches and routers as it rolls through the network, then connecting to them to collect their information. Once the initial configuration has been set, running a discovery is fairly quick, and runs from cron at set intervals.
NeDi also integrates with Cacti to some degree, and if provided with the credentials to a functional Cacti installation, device discoveries will link to the associated Cacti graphs for that device.
Ntop is the product of a fantastically focused mind -- that of Luca Deri, the project's author. Ntop is a top-notch network traffic monitor married to a fast and simple Web GUI. It's written in C and completely self-contained; you run a single process configured to watch a specific network interface, and that's about all there is to it.
Ntop provides easily digestible graphs and tables showing current and past network traffic, including protocol, source, destination, and history of specific transactions as well as the hosts on either end. Ntop leverages the aforementioned RRDTool to provide an impressive array of network utilization graphs, including trends, and incorporates a plug-in framework for an array of add-ons, such as NetFlow and sFlow monitors.
Ntop even has an RPC framework that can be used to provide native data arrays to a wide variety of languages. If you wanted to consistently reference a specific set of packet capture data from Perl or PHP, for example, it's as simple as referencing a native array exported from Ntop at the time of the procedure call. I've found this infinitely useful in a wide variety of applications.
One of the main uses of Ntop is on-the-spot traffic checkups. When one of my Cacti-driven PHP Weathermaps suddenly shows a collection of network links running in the red, it tells me that those links exceed 85 percent utilization, but it doesn't tell me why. By switching to an Ntop process watching that network segment, I can quickly pull a minute-by-minute report of the top talkers and immediately know which hosts are responsible and what traffic they're pushing.