监控cassandra节点的最佳方法是什么?由于安全原因,JMX和nodetool是不可能的。我通过Rest Api监控集群指标,但据我所知,即使节点进入休息状态,Api也只会报告整个集群。
答案 0 :(得分:5)
好吧,我已经集成了一个系统,我可以监控所有节点集群的所有指标。这似乎很复杂但很容易集成。您需要以下组件来构建cassandra
的监控系统:
我正在写一个简短的程序,它是如何工作的。
第1步:将jolokia jvm jar
复制到install_dir/apache-cassandra-version/lib/
,jolokia jvm代理可以从谷歌的任何地方下载。
第2步:将以下行添加到install_dir/apache-cassandra-version/conf/cassandra-env.sh
JVM_OPTS="$JVM_OPTS -javaagent:<here_goes_the_path_of_your_jolokia_jar>"
步骤3:在每个节点上安装telegraf
并配置您要监控的指标。并开始telegraf
服务。
第4步:安装grafana
并配置您的IP,端口,协议。 grafana
会为您提供一个仪表板来管理您的节点并启动grafana
服务。您的指标将在此处获得可见性。
步骤5:在另一台服务器上安装influxdb
,您希望存储通过电报代理商处理的指标数据。
第6步:浏览你提到过的ip,你已经通过浏览器启动了grafana并添加数据源ip(Influxdb ip),然后自定义你的仪表板。
图片来源:https://blog.pythian.com/monitoring-cassandra-grafana-influx-db/
答案 1 :(得分:0)
这不是用于监视,而是仅用于节点状态。 Cassandra CQL驱动程序使用Host.StateListener接口提供特定节点为UP或DOWN的信息。驱动程序使用此信息将节点标记为UP或Down。因此,如果节点是向下或向上,如果JMX不可访问,则可以使用它。
Java Doc API:https://docs.datastax.com/en/drivers/java/3.3/
答案 2 :(得分:0)
我想出了一个脚本,该脚本监听集群中的DN节点,并将其报告给与pagerduty集成的监控设置。
该脚本在我们的一个节点上运行,每分钟执行一次nodetool状态,并报告所有关闭节点。
这是脚本https://gist.github.com/johri21/87d4d549d05c3e2162af7929058a00d1
[1]: