Cacti is a PHP/MySQL front end 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.
You can use Cacti to gather any sort of data, or fetch information from SNMP capable hosts.
To manually handle data gathering, you can feed Cacti the Command Line 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 its 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 maintained at 5 minute intervals.
For people who are used to creating traffic graphs in MRTG, this process has become much simpler in Cacti. An SNMP interface allows you to enter SNMP capable hosts and Cacti will display that hosts 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.