A few weeks ago, I received a copy of Cacti 0.8 Network Monitoring from Packt Publishing. Here is my review.
The book has been written by Dinangkur Kundu and S.M. Ibrahim Lavlu, who have both strong open-source softwares knowledge. Their book covers Cacti, a well-known framework (running on top of a LAMP server) to collect data and draw powerful graphs. The book is dedicated to network and system administrators who have to implement or maintain a Cacti server. One of the chapters covers the Net-SNMP package with a good introduction on the SNMP protocol.
I would like to make an important remark. The book sub-title is “Monitor your network with ease!“. If you don’t have experience with Cacti, don’t be fooled by the book cover. Cacti is a powerful tool to generate graphs but it is certainly not a complete monitoring solution! To build a full monitoring platform, Cacti can be deployed in parallel with other tools like Nagios.
The book starts with a classic introduction of Cacti. The internals are explained and must be understood by the reader. They will be the connecting thread throughout the book: “Data Retrieval” -> “Data Storage” -> “Data Presentation”. A basic introduction of RRDTool (the “data engine” used by Cacti) is also proposed.
The second chapter covers the installation of Cacti. Two methods are reviewed: using a packaging system (APT – the authors use Debian) or building from the sources. The upgrade process is reviewed with pro and cons of both installation methods. From my point of view, it is always interesting to install a software from the tarball to fully understand how it works.
Then, the book will dive into the multiple Cacti configuration screens and options. First, basic graphs are explained (to monitor the Cacti server itself). How they are created and organized to display the right information. But the power of Cacti resides in its templates! If you’ve to monitor a huge number of different devices, templates will help you to simplify your daily tasks. Two types of templates are covered: “Graph Templates” and “Host Templates”. All their options are reviewed and the procedure to import/export them. This is an important Cacti feature. Lot of templates have been developed by people around the Web and are ready for a multitude of different devices (Have a look here).
The sixth chapter covers the Net-SNMP package and specifically the SNMP protocol. What are the elements (agents, MIBs, …) and how they work together. The authors also present the different version of the protocol (v1, v2 & v3). This chapter is interesting to read if you don’t have experience with SNMP, even if you don’t use Cacti.
The last chapter is dedicated to advanced users and covers the “data management” or how to manage the whole process to monitor a specific value. If you manage a big network with Cacti, you’ll for sure play with “data input methods” (using an SNMP query or an external script) and “data queries” (useful to list network interfaces or mounted file systems on a host).
IMHO, there are two missing chapters in this book: One about security: SNMP is by default an unsafe protocol (for version below v3) and some recommendations would be welcome to increase the security of your Cacti environment. And another one about performance: Cacti has two operating modes to poll the monitored devices. By default, it uses a PHP script “cmd.php” executed from a cron entry. But a second method is available, using a poller written in C and running as a deamone (“cactid”).
To conclude, this book is a good choice if you start playing with SNMP and are looking for a simple Cacti reference on paper. More advanced users will be much more information online (the Cacti forum is a goldmine!)