What you need for this book
Before going deep into the Zabbix setup, it is important to know that the proposed setup covered here has been tested on a large-production environment (more than 1,800 hosts monitored, more than 89,500 monitored items, and more than 30,000 triggers) and that they can be considered valid for most large and very large environments. The high-availability solution proposed in this book has been widely tested, not purely as a disaster recovery exercise but during a real disaster (network cables were accidentally sheared by an excavating machine).
In this book, it is important to understand that most of the choices made have been on a practical basis and not driven by passion. One of the main choices made is using PostgreSQL as the official Zabbix RDBMS. We came across PostgreSQL as an RDBMS mostly for the mature and production ready features offered:
- Hot backup is available by design
- Atomicity, consistency, isolation, and durability—in short, it is fully ACID compliant
- Many different, native standby configurations (hot standby, synchronous replication, and so on)
- Efficient partitioning
Zabbix's database is a critical component, especially if you need to keep historical data available and guarantee constant performances day by day while the database is growing.
We have made some assumptions in this book: the packaging system used in our examples is yum, and then the distribution is obviously Red Hat Enterprise Linux. Anyway, excluding details such as package names and packet manager, the whole book is valid for all the Linux distributions. Furthermore, the proposed architectures and their implementations are not directly tied to a particular distribution. We did not use any Red Hat-specific clustering system or make any choice that you cannot reproduce on your favorite Linux distribution.
On reading this book, you will find different pieces of open source software, but out of all of them, it would be better if you are familiar with the following:
- Apache: http://www.apache.org/
- Pacemaker: http://clusterlabs.org/
- PostgreSQL: http://www.postgresql.org/
- DRBD: http://www.drbd.org
This book also focuses on system administrators who have some programming skills. We propose different workings for the implemented code snippet. With the proposed example, all well documented, you should be able to implement your own plugin or external software that is fully integrated with Zabbix. The code snippets proposed are in two different and widely diffused languages: Java and Python. These cover most of the current programmers' preferences and show, once you know how to implement the Zabbix protocol, how simple it is to switch between them.
Zabbix is more than a piece of monitoring software; it is an open source monitoring solution that can be explained as you want, and this book will make you aware of all the pros and cons of the possible solutions.
So, now it is time to go deep into Zabbix land!