Cammilius
Cammilius

Reputation: 39

Apache Cassandra monitoring

What is the best way to monitor if cassandra nodes are up? Due to security reasons JMX and nodetool is out of question. I have cluster metrics monitoring via Rest Api, but I understand that even if a node goes Rest Api will only report on a whole cluster.

Upvotes: 1

Views: 1483

Answers (3)

johri21
johri21

Reputation: 163

I came up with a script which listens for DN nodes in the cluster and reports it to our monitoring setup which is integrated with pagerduty.

The script runs on one of our nodes and executes nodetool status every minute and reports for all down nodes.

Here is the script https://gist.github.com/johri21/87d4d549d05c3e2162af7929058a00d1

[1]:

Upvotes: 0

ManMohan Pandey
ManMohan Pandey

Reputation: 21

This is not for monitoring but only for node state. Cassandra CQL driver provides info if a particular node is UP or DOWN with Host.StateListener Interface. This info is used by driver to mark a node UP or Down. Thus it could be used if node is down or up if JMX is not accessible.

Java Doc API : https://docs.datastax.com/en/drivers/java/3.3/

Upvotes: 0

Anower Perves
Anower Perves

Reputation: 762

Well, I have integrated a system where I can monitor all the metrics regarding to my cluster of all nodes. This seems like complicated but pretty simple to integrate. You will need the following components to build up a monitoring system for cassandra:

  • jolokia jar
  • telegraf
  • influxdb
  • grafana

I'm writing a short procedure, how it works.
Step 1: copy jolokia jvm jar to install_dir/apache-cassandra-version/lib/ , jolokia jvm agent can be downloaded from anywhere in google.

Step 2: add the following line to install_dir/apache-cassandra-version/conf/cassandra-env.sh

JVM_OPTS="$JVM_OPTS -javaagent:<here_goes_the_path_of_your_jolokia_jar>"

Step 3: install telegraf on each node and configure the metrics you want to monitor. and start telegraf service.

Step 4: install grafana and configure your ip, port, protocol. grafana will give you a dashboard to look after your nodes and start grafana service. Your metrics will be able get visibility here.

Step 5: install influxdb on another server from where you want to store your metrics data which will come through telegraf agent.

Step 6: browse the ip you have mentioned, where you have launched your grafana through browser and add data source ip (influxdb ip), then customize your dashboard.

enter image description here image source: https://blog.pythian.com/monitoring-cassandra-grafana-influx-db/

Upvotes: 6

Related Questions