我使用相同的设置过程设置了2个Cassandra集群。两个集群都在运行,没有任何问题。
但是通过JMX公开cassandra指标的方式存在不一致。
使用here中提到的说明来设置JMX导出器。
两个集群都导出指标,但是在其中一个集群上,较少的指标被公开。
更具体地说,与 cassandra_table_totaldisk 相关的指标在一个上丢失,而在另一个上则丢失。
#/etc/cassandra$ tail -1 cassandra-env.sh
JVM_OPTS="$JVM_OPTS -javaagent:/opt/prometheus-
jmx/jars/jmx_prometheus_javaagent-0.3.0.jar=7070:/etc/cassandra/cassandra-exporter-conf.yml"
#/etc/cassandra$ ls /opt/prometheus-jmx/jars/jmx_prometheus_javaagent-0.3.0.jar
/opt/prometheus-jmx/jars/jmx_prometheus_javaagent-0.3.0.jar
#/etc/cassandra$ ls /etc/cassandra/cassandra-exporter-conf.yml
/etc/cassandra/cassandra-exporter-conf.yml
#/opt/prometheus-jmx/jars$ curl localhost:7070/metrics | grep cassandra_table_totaldisk | grep types
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 6533k 100 6533k 0 0 716k 0 0:00:09 0:00:09 --:--:-- 1680k
cassandra_table_totaldiskspaceused{table="types",keyspace="system_schema",} 0.0
我已验证存在cassandra模式,并且在节点上生成了键空间表文件。
什么会导致这种不一致? 如何调试/调查问题?
答案 0 :(得分:0)
显然,事实证明,矩阵并没有按照我们想要的方式生成,因为在为jmx-exporter配置cassandra之后,cassandra并没有重新启动。
使用ansible脚本使步骤自动化。 jmx-exporter设置后,没有调用重新启动cassandra的ansible角色。原因是this ansible issue。一旦我们确保cassandra仅启动一次(通过确保仅一次调用ansible角色)并且仅在完成jmx-exporter设置之后,该问题就得到解决。