Cacti is an open source, network monitoring and graphing tool written in PHP/MySQL. It uses the RRDTool (Round-robin database tool) engine to store data and generate graphics, and collects periodical data through Net-SNMP (an application suite to implement SNMP—Simple Network Management Protocol).
Cacti allows a user to poll services at predetermined intervals and graph the resulting data. Through the use of Cacti plugins, it has been extended to encompass all of the FCAPS operational management categories. It is generally used to graph time-series data of metrics such as CPU load and network bandwidth utilization. A common usage is to monitor network traffic by polling a network switch or router interface via SNMP.
Cacti can be used to configure the data collection itself, allowing certain setups to be monitored without any manual configuration of RRDtool. Cacti data collection can be extended to monitor any source via shell scripts and executables. Cacti provides both a built-in and optional data collectors: cmd.php, a PHP script suitable for smaller installations, and spine, a multi-threaded and massively parallel C based data collector which can scale to tens of thousands of hosts per Cacti Data Collector.
Cacti is primarily used by Telco providers and Network Operation Centers throughout the world in addition to being the heart of the commercial Spectrum LSF RTM solution which monitors High Performance Computing (HPC) clusters based on IBM LSF product. Additional use cases include web hosting providers(especially dedicated server, virtual private server, and colocation providers) to display bandwidth statistics for their customers.