Cacti Workshop. Tony Roman. [email protected] Agenda. What is Cacti? The Origins of Cacti Large Installation Considerations Automation The Current State of Cacti The Future of Cacti Questions and Answers. What is Cacti?. Cacti is the complete front-end for RRDtool! Written in PHP
What is Cacti?
The Origins of Cacti
Large Installation Considerations
The Current State of Cacti
The Future of Cacti
Questions and Answers
Cacti is the complete front-end for RRDtool!
Written in PHP
Optional C based poller (Spine)
Stores all of the necessary information to create graphs and gather data in a MySQL database.
Full SNMP support for data gathering
Ability to use custom scripts for data gathering
User community created templates for most popular devices
Started by Ian Berry in 2001 while he was in High School
Published as a ‘free’ application on rrdtool.org website
Discovered by many while in search for a replacement for … (you name it)
Several ink-u-Berry releases and new developers through 2004
Widespread global use began after the release of 0.8.6 in the summer of 2004
The more the better!
Dependent on the number of devices and data sources being polled
More concurrent processes (polling, graph generation, web interface, etc…)
The more the better!
Increase memory to increase the OS disk cache
More memory to be allocated to MySQL
The more I/O operations per second the better!
Increase memory to increase OS disk cache
Increase number of spindles in RAID configuration
Utilize RAID levels that incorporate striping (RAID 10 optimal)
Fiber channel storage area network (SAN) with appropriate raid level configuration
Solid State Drives
Fusion I/O or OCZ PCI Express non-volatile memory storage solutions
Examples of Disk I/O success
From unable to complete polling for 160,000 data sources in 5 minutes to completing in less than 1 minute by using a Fusion I/O device to store the RRDTool files.
Fusion I/O write speeds of 3.2 Gigabytes per second seen in operation on Cacti installations.
What is service separation?
Polling and RRDtool storage
Any of these services can be split to another server.
Web interface needs access to RRDtool files
Network File System (NFS or CIFS)
Shared LUN on SAN
Replication (Rsync can be intense because RRDtool files all change)
Disk/SAN or file system replication
MyISAM vs InnoDB
MyISAM great for small installation with minimal users
InnoDB row level locking, unlike MyISAM table level locking, allowing for more concurrent operations
InnoDB is transaction safe, meaning that data integrity is maintained throughout the entire query operation
Increase MySQL memory usage for caching and sorts.
Memory (Hash) tables
Best for Poller Output tables in Cacti
Uses system memory which is faster than disk
Minimizes disk I/O used by database during polling
System must have the memory available to store the Hash table completely in RAM for all the data sources during a polling cycle.
Contents erased on MySQL restart or server reboot
Optimization of the poller_output.output field size to be smaller than varchar(256) if possible.
Graph image caching
On demand RRDTool file updates
Integration with Spine for direct inserts into Boost poller output table
Allows for independent updating of RRDtool files
Can use rrdtool-update to improve performance
Can run from another server for separation of services
Command line tools
Limited support in current version, primarily adding devices, graph templates, permissions and users.
Future version to bring full set of scripts
Create, delete and list devices
Create, delete and list graph trees
Create, delete and list permissions
Create, delete and list graphs
Add, remove, update and list data query associations
Upgrade the database!
Creates new graphs automatically when a device is added
Creates new tree elements automatically
All creation activities are based on rule you define
Only create 64 bit counter graphs on SNMPv2 and higher capable devices
Only create graphs for interfaces that are “Up”
Triggered graph creations on:
New device is added via CLI or web interface
When a re-index occurs of a data query
Auto discovery SNMP enabled devices on the network
Auto creations of graph (can use Autom8 for this)
Allow you to select which discovered devices you would like to graph
The Cacti Group is alive and well!
Lossless re-indexing of hosts
Poller performance enhancements
Additional template import options
RRDtool 1.4.x support
Improved Spine performance
Per host parallelization support in Spine
Development of the next version
200+ commits by developers in August of this year
Integrated plugin architecture
Improved installation and platform specific setup
Extended RRDtool support
Command line scripts enhancements
Updated graph presentation (AJAX)
Web 2.0 Interface (AJAX)