2011 2
Agenda
What is Cacti?
The Origins of Cacti
Large Installation Considerations
Automation
The Current State of Cacti
The Future of Cacti
Questions and Answers
2011 3
What is Cacti?
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
2011 4
The Origins of Cacti
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
Large Installation Considerations
2011 6
Hardware
CPU
The more the better!
Dependent on the number of devices and data sources being polled
More concurrent processes (polling, graph generation, web interface, etc…)
Memory
The more the better!
Increase memory to increase the OS disk cache
More memory to be allocated to MySQL
2011 7
Hardware
Disk I/O
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
2011 8
Hardware
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.
2011 9
Service Separation
What is service separation?
Cacti ComponentsWeb Interface
Polling and RRDtool storage
Database
Any of these services can be split to another server.
Web interface needs access to RRDtool filesNetwork 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
2011 10
MySQL Optimization
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.
2011 11
MySQL Optimization
Memory (Hash) tables
Best for Poller Output tables in CactiUses 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.
2011 12
Plugin Architecture and Boost Plugin
Graph image caching
On demand RRDTool file updates
Integration with Spine for direct inserts into Boost poller output table
Boost Server
Allows for independent updating of RRDtool files
Can use rrdtool-update to improve performance
Can run from another server for separation of services
Automation
2011 14
Automation with Command Line Tools
Command line tools
Limited support in current version, primarily adding devices, graph templates, permissions and users.
Future version to bring full set of scriptsCreate, 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!
2011 15
Automation with Plugins – Autom8
Autom8
Creates new graphs automatically when a device is added
Creates new tree elements automatically
All creation activities are based on rule you defineOnly 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
2011 16
Automation with Plugins - Discovery
Discovery
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 State of and Future of Cacti
2011 18
Current State of Cacti
The Cacti Group is alive and well!
0.8.7h Released
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
2011 19
The Future of Cacti
Development of the next version
200+ commits by developers in August of this year
Internationalization support
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)
Cacti 1.0.0 – Teaser!
2011
Questions and Answers