In case you missed it, this blog post is a recap of Cassandra Lunch #22, covering deployment and administration tools for Cassandra. We will discuss a number of tools for the installation, configuration, monitoring, and administration of Cassandra clusters.
Deployment
The first category of Cassandra deployment and administration tool that we will discuss is the set of tools for installing Cassandra. To install Cassandra directly on a machine, we can use the installers provided by Datastax. These are both Deb and RPM installers. Cassandra can also be directly installed via unzipping a tar file, also provided by Datastax.
To install Cassandra on a set of distributed machines or virtual machines we use tools that let us avoid needing to run direct installations on each machine in turn. Ansible, Puppet, Chef, and OpsCenter LifeCycle Manager. Our favorites in this category are Ansible and OpsCenter LCM, both of which make it easy to bring up Cassandra clusters on distributed systems or virtual machines, though OpsCenter only works for Datastax distributions. Ansible specifically is part of our toolkit specifically for the installation and configuration of Cassandra clusters.
In order to handle the infrastructure of our clusters, we use other tools. These need to do things like bring up new machines on cloud platforms and determine their connections to each other. Our chosen tool in this section is Terraform, though CloudFormation and Azure Resource Management can accomplish some of the same things.
In order to handle the creation and administration of containers, we use Docker, Docker-Compose, and Kubernetes.
Monitoring
There are two distinct methods for monitoring Cassandra clusters. We can monitor via metrics produced by the cluster, or by services interacting with the cluster. We can also monitor a Cassandra cluster by analyzing the logs created by our cluster.
On the metrics side, we can use OpsCenter Monitoring, Prometheus/Grafana, New Relic, and Data Dog. OpsCenter monitoring can extract a large amount of data about the state of Cassandra, rather than just the health of the service. The others are all more general monitoring services for any sort of cloud app.
For log analysis, we can use a stack of technologies, as discussed in other posts. Things like ELK (Elastic, Filebeat, Kibana) are useful for analyzing and visualizing data that comes from logs generated by our cluster. Splunk can also be used for monitoring via logs.
Administration
Cassandra cluster Administration includes things like node restarts, repair, manually configuring nodes, and a number of other changes that can be made to the cluster. OpsCenter LCM can handle restarts, repair, and a number of other administrative tasks. Cassandra Reaper is a tool for repair. The minimum necessary tools for administration are SSH access and Bash, with Python also being sometimes useful. Tools like Parallel SSH and MobaXterm can be used to work on many cluster nodes via SSH at a single time. Cstar is a similar tool to Parallel SSH, meant specifically for working with Cassandra clusters.
Other Resources
- Resources for Monitoring Datastax, Cassandra, Spark, & Solr Performance
- Introduction to cstar
- ParallelSSH/parallel-ssh: Asynchronous parallel SSH client library.
- Temp.Cluster.Manager – Google Sheets
- Anant/cassandra.toolkit: A collection of Cassandra Tools to backup, restore, monitor, repair, and manage Apache Cassandra / Datastax Clusters.
Cassandra.Link
Cassandra.Link is a knowledge base that we created for all things Apache Cassandra. Our goal with Cassandra.Link was to not only fill the gap of Planet Cassandra, but to bring the Cassandra community together. Feel free to reach out if you wish to collaborate with us on this project in any capacity.
We are a technology company that specializes in building business platforms. If you have any questions about the tools discussed in this post or about any of our services, feel free to send us an email!