What is Cacti?
Cacti is a complete frontend to RRDTool, it
stores all of the necessary information to
create graphs and populate them with data
in a MySQL database. The frontend is
completely PHP driven. Along with being able
to maintain Graphs, Data Sources, and Round
Robin Archives in a database, cacti handles
the data gathering. There is also SNMP
support for those used to creating traffic
graphs with MRTG.
The Multi Router Traffic Grapher, or just
simply MRTG, is free software for
monitoring and measuring the traffic load
on network links. It allows the user to see
traffic load on a network over time in
The primary features of Cacti
unlimited graph items
auto-padding support for graphs
graph data manipulation
flexible data sources
data gathering on a non-standard timespan
custom data-gathering scripts
built-in SNMP support
data source templates
tree, list, and preview views of graph data
user-based management and security
To do data gathering, you can feed cacti the paths to
any external script/command along with any data that
the user will need to "fill in“
cacti will then gather this data in a cron-job and
populate a MySQL database/the round robin archives.
Data Sources can also be created, which correspond to
actual data on the graph.
For instance, if a user would want to graph the ping
times to a host, you could create a data source utilizing
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 maintained at
5 minute intervals.
Data sources can be created that utilize
RRDTool's "create" and "update" functions.
Each data source can be used to gather
local or remote data and placed on a graph.
Supports RRD files with more than one data
source and can use an RRD file stored
anywhere on the local file system.
Round robin archive (RRA) settings can be
customized giving the user the ability to
gather data on non-standard timespans while
store varying amounts of data.
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.
Not only can you create RRDTool based graphs in
cacti, but there are many ways to display them.
Along with a standard "list view" and a "preview
mode", which resembles the RRDTool frontend
14all, there is a "tree view", which allows you to put
graphs onto a hierarchical tree for organizational
Unlimited number of graph items can be defined for
each graph optionally utilizing CDEFs or data sources
from within cacti.
Automatic grouping of GPRINT graph items to AREA,
STACK, and LINE[1-3] to allow for quick re-sequencing of
Auto-Padding support to make sure graph legend text
Graph data can be manipulated using the CDEF math
functions built into RRDTool. These CDEF functions can
be defined in cacti and can be used globally on each
Support for all of RRDTool's graph item types including
AREA, STACK, LINE[1-3], GPRINT, COMMENT, VRULE, and
Due to the many functions of cacti, a user
based management tool is built in so you
can add users and give them rights to
certain areas of cacti. This would allow
someone to create some users that can
change graph parameters, while others
can only view graphs. Each user also
maintains their own settings when it
comes to viewing graphs.
Contains a "data input" mechanism which allows
users to define custom scripts that can be used to
gather data. Each script can contain arguments that
must be entered for each data source created using
the script (such as an IP address).
Built in SNMP support that can use php-snmp, ucd-
snmp, or net-snmp.
Ability to retrieve data using SNMP or a script with an
index. An example of this would be populating a list
with IP interfaces or mounted partitions on a server.
Integration with graph templates can be defined to
enable one click graph creation for hosts.
A PHP-based poller is provided to execute scripts,
retrieve SNMP data, and update your RRD files.
The tree view allows users to create "graph
hierarchies" and place graphs on the tree. This
is an easy way to manage/organize a large
number of graphs.
The list view lists the title of each graph in one
large list which links the user to the actual
The preview view displays all of the graphs in
one large list format. This is similar to the
default view for the 14all cgi script for
User based management allows
administrators to create users and assign
different levels of permissions to the cacti
Permissions can be specified per-graph
for each user, making cacti suitable for co
Each user can keep their own graph
settings for varying viewing preferences.
Lastly, cacti is able to scale to a large number
of data sources and graphs through the use
of templates. This allows the creation of a
single graph or data source template which
defines any graph or data source associated
with it. Host templates enable you to define
the capabilities of a host so cacti can poll it
for information upon the addition of a new
Graph templates enable common graphs to be
grouped together by templating. Every field for a
normal graph can be templated or specified on a
Data source templates enable common data source
types to be grouped together by templating. Every
field for a normal data source can be templated or
specified on a per-data source basis.
Host templates are a group of graph and data
source templates that allow you to define common
host types. Upon the creation of a host, it will
automatically take on the properties of its template.
The latest stable version is 0.8.8a, released 04/29/12.
Cacti requires MySQL, PHP, RRDTool, net-snmp, and a webserver that supports
PHP such as Apache or IIS. Please see the requirements section of the manual
for information on how to fulfill these requirements under certain operating
systems. Please use the install guide for either Unix or Windows for information
about installing Cacti.
Linux/Unix in tar.gz format
Windows in ZIP format
Gentoo Linux users install Cacti using:
Debian Linux users install Cacti using:
apt-get install cacti
Fedora Linux users
yum install cacti
SUSE Linux users
Available in Yast or SUSE media. Version may not be the latest.