【发布时间】:2018-03-23 22:52:26
【问题描述】:
监控 cassandra 节点是否启动的最佳方法是什么?由于安全原因,JMX 和 nodetool 是不可能的。我通过 Rest Api 进行集群指标监控,但我知道即使一个节点运行,Rest Api 也只会报告整个集群。
【问题讨论】:
标签: cassandra monitoring
监控 cassandra 节点是否启动的最佳方法是什么?由于安全原因,JMX 和 nodetool 是不可能的。我通过 Rest Api 进行集群指标监控,但我知道即使一个节点运行,Rest Api 也只会报告整个集群。
【问题讨论】:
标签: cassandra monitoring
好吧,我已经集成了一个系统,我可以在其中监控与我的所有节点集群有关的所有指标。这看起来很复杂,但集成起来很简单。您将需要以下组件来构建cassandra 的监控系统:
我正在写一个简短的程序,它是如何工作的。
步骤1:将jolokia jvm jar复制到install_dir/apache-cassandra-version/lib/,jolokia jvm代理可以从google的任何地方下载。 p>
第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/
【讨论】:
这不是用于监控,而仅用于节点状态。 Cassandra CQL 驱动程序通过 Host.StateListener 接口提供特定节点是 UP 还是 DOWN 的信息。驱动程序使用此信息来标记节点 UP 或 Down。因此,如果无法访问 JMX,则可以在节点关闭或启动时使用它。
Java 文档 API:https://docs.datastax.com/en/drivers/java/3.3/
【讨论】:
我想出了一个脚本,它可以侦听集群中的 DN 节点并将其报告给我们与 pagerduty 集成的监控设置。
脚本在我们的一个节点上运行,每分钟执行一次 nodetool 状态并报告所有故障节点。
这里是脚本https://gist.github.com/johri21/87d4d549d05c3e2162af7929058a00d1
[1]:
【讨论】: