Cacti is a PHP/MySQL frontend to rrdtool. It handles the storage of all the information required to create and populate rrdtool graphs. Along with being able to maintain Graphs, Data Sources, and RoundRobin Archives in a DataBase, Cacti handles the data gathering also. There is also SNMP support for those used to creating traffic graphs with MRTG.
To "manually" handle data gathering, you can feed Cacti the CommandLine for any external script/command along with any data that the user will need to "fill in" (IP addresses etc). Cacti will then gather this data in a cron job and populate a MySQL database/the RoundRobin Archives.
Data Sources can also be created, which correspond to actual data on the graph. For instance, if a user wants to graph the ping times to a host, they could create a data source, choosing a script that pings a host and returns it's value in milliseconds. After defining options for rrdtool such as how to store the data you will be able to define any additional information that the data input source requires, such as a host to ping in this case. Once a data source is created, it is automatically mantained at 5 minute intervals.
For people who are used to creating traffic graphs in MRTG, this process has become much simplier in Cacti. An SNMP interface allows you to enter SNMP capable hosts and Cacti will display that host's interfaces, all of which can be graphed with once click from that point.
Once one or more data sources are defined, an rrdtool graph can be created using the data. Cacti allows you to create almost any imaginable rrdtool graph using all of the standard rrdtool graph types and consolidation functions. A color selection area and automatic text padding function also aid in the creation of graphs to make the process easier.
Cacti has a user management system so you can allocate people various levels of access to the program and their own settings.
See the notes on setting up: