What you need for this book
To follow along with the examples in this book, you'll need a real or virtualized three-node Elasticsearch cluster. You may optionally want two other nodes to run Marvel and Nagios, covered in Chapter 4, Marvel Dashboard, and Chapter 5, System Monitoring, respectively. It is possible to run Marvel and Nagios on the same host as a node in your Elasticsearch cluster, but you shouldn't do this in a production cluster. Check out VMWare Player (https://www.vmware.com/products/player) and VirtualBox (https://www.virtualbox.org/wiki/Downloads) for standing up your own virtual five-node environment or Amazon EC2 (https://aws.amazon.com/ec2/) for building a cluster in the cloud.
For your Elasticsearch nodes, you'll need a 64-bit version of Windows, Mac OS X, or Linux and a recent distribution of the Java Runtime Environment. The CPU speed doesn't matter as much on these hosts, but we recommend that you have at least 512 MB of memory per node. We use Ubuntu 14.04 and Oracle Java 7 for all examples in this book, but any modern operating system and either OpenJDK or Oracle Java 7 and 8 will work for running through the examples. The only exception is Nagios, which needs to run on Linux.
You will need the following software packages:
- Java 7 or Java 8 (http://www.oracle.com/technetwork/java/javase/downloads/index.html)
- Elasticsearch 2.3.2 (https://www.elastic.co/downloads/past-releases/elasticsearch-2-3-2)
- Elasticsearch-head (https://github.com/mobz/elasticsearch-head)
- Bigdesk (http://bigdesk.org/)
- Marvel—free for development, subscription fee for use in production (https://www.elastic.co/downloads/marvel)
- Kibana (https://www.elastic.co/downloads/kibana)
- Kopf (https://github.com/lmenezes/elasticsearch-kopf)
- Nagios (https://www.nagios.org/downloads/)
All of these software packages are free and open source except for Marvel, which is only free for use in development.
Finally, several examples in this book use the curl
(https://curl.haxx.se/) command-line utility for making REST calls to Elasticsearch and, optionally, Python 2.7 for pretty-printing the results.