首页 > 解决方案 > cassandra-env.sh 文件无法读取 JMX prometheus 参数

问题描述

添加了给定的。Cassandra.sh 文件中的行:-

JVM_OPTS="$JVM_OPTS -javaagent:/etc/cassandra/jmx_prometheus_javaagent-0.10.jar=7070:/etc/cassandra/jmx_exporter.yml"

无法访问 curl http://10.xx13:7070

根据 apport.logs >

错误:apport(pid 19530)2021 年 8 月 2 日星期一 14:51:36:调用 pid 19507,信号 6,核心限制 0 错误:apport(pid 19530)2021 年 8 月 2 日星期一 14:51:36:可执行文件:/usr/ lib/jvm/java-8-oracle/jre/bin/java(命令行“java -Xloggc:/var/log/cassandra/gc.log - javaagent:/etc/cassandra/jmx_prometheus_javaagent-0.10.jar=7070:/等/cassandra/jmx_exporter.yml-javaagent:/etc/cassandra/jmx_prometheus_javaagent-0.10.jar=7070:/etc/cassandra/jmx_exporter.yml -ea -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -XX:+HeapDumpOnOutOfMemoryError -Xss256k -XX:StringTableSize=1000003 -XX:+AlwaysPreTouch -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+ResizeTLAB -XX:+PerfDisableSharedMem -Djava.net.preferIPv4Stack=true -Xms4G -Xmx4G -Xmn900M -XX:+UseG1GC -XX:G1RSetUpdatingPauseTimePercent=5 -XX:MaxGCPauseMillis=600 -XX:InitiatingHeapOccupancyPercent=30 -XX:ParallelGCThreads=4 -XX:ConcGCThreads=4 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime - XX:+PrintPromotionFailure -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M -XX:CompileCommandFile=/etc/cassandra/hotspot_compiler -javaagent:/usr/share/cassandra/lib/jamm-0。3.0.jar -Dcassandra.jmx.local.port=7199 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password -Djava.library .path=/usr/share/cassandra/lib/sigar-bin -Dcassandra.metricsReporterConfigFile= -Dlogback.configurationFile=logback.xml -Dcassandra.logdir=/var/log/cassandra -Dcassandra.storagedir=/var/lib/cassandra -Dcassandra-pidfile=/var/run/cassandra/cassandra.pid -cp /etc/cassandra:/usr/share/cassandra/lib/HdrHistogram-2.1.9.jar:/usr/share/cassandra/lib/ST4- 4.0.8.jar:/usr/share/cassandra/lib/airline-0.6.jar:/usr/share/cassandra/lib/antlr-runtime-3.5.2.jar:/usr/share/cassandra/lib/asm -5.0.4.jar:/usr/share/cassandra/lib/caffeine-2.2.6.jar:/usr/share/cassandra/lib/cassandra-driver-core-3.0.1-shaded.jar:/usr/分享/卡桑德拉jmxremote.authenticate=false -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password -Djava.library.path=/usr/share/cassandra/lib/sigar-bin -Dcassandra.metricsReporterConfigFile= -Dlogback.configurationFile=logback.xml -Dcassandra.logdir=/var/log/cassandra -Dcassandra.storagedir=/var/lib/cassandra -Dcassandra-pidfile=/var/run/cassandra/cassandra.pid -cp /etc/ cassandra:/usr/share/cassandra/lib/HdrHistogram-2.1.9.jar:/usr/share/cassandra/lib/ST4-4.0.8.jar:/usr/share/cassandra/lib/airline-0.6.jar :/usr/share/cassandra/lib/antlr-runtime-3.5.2.jar:/usr/share/cassandra/lib/asm-5.0.4.jar:/usr/share/cassandra/lib/caffeine-2.2。 6.jar:/usr/share/cassandra/lib/cassandra-driver-core-3.0.1-shaded.jar:/usr/share/cassandrajmxremote.authenticate=false -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password -Djava.library.path=/usr/share/cassandra/lib/sigar-bin -Dcassandra.metricsReporterConfigFile= -Dlogback.configurationFile=logback.xml -Dcassandra.logdir=/var/log/cassandra -Dcassandra.storagedir=/var/lib/cassandra -Dcassandra-pidfile=/var/run/cassandra/cassandra.pid -cp /etc/ cassandra:/usr/share/cassandra/lib/HdrHistogram-2.1.9.jar:/usr/share/cassandra/lib/ST4-4.0.8.jar:/usr/share/cassandra/lib/airline-0.6.jar :/usr/share/cassandra/lib/antlr-runtime-3.5.2.jar:/usr/share/cassandra/lib/asm-5.0.4.jar:/usr/share/cassandra/lib/caffeine-2.2。 6.jar:/usr/share/cassandra/lib/cassandra-driver-core-3.0.1-shaded.jar:/usr/share/cassandralibrary.path=/usr/share/cassandra/lib/sigar-bin -Dcassandra.metricsReporterConfigFile= -Dlogback.configurationFile=logback.xml -Dcassandra.logdir=/var/log/cassandra -Dcassandra.storagedir=/var/lib/ cassandra -Dcassandra-pidfile=/var/run/cassandra/cassandra.pid -cp /etc/cassandra:/usr/share/cassandra/lib/HdrHistogram-2.1.9.jar:/usr/share/cassandra/lib/ST4 -4.0.8.jar:/usr/share/cassandra/lib/airline-0.6.jar:/usr/share/cassandra/lib/antlr-runtime-3.5.2.jar:/usr/share/cassandra/lib/ asm-5.0.4.jar:/usr/share/cassandra/lib/caffeine-2.2.6.jar:/usr/share/cassandra/lib/cassandra-driver-core-3.0.1-shaded.jar:/usr /共享/卡桑德拉library.path=/usr/share/cassandra/lib/sigar-bin -Dcassandra.metricsReporterConfigFile= -Dlogback.configurationFile=logback.xml -Dcassandra.logdir=/var/log/cassandra -Dcassandra.storagedir=/var/lib/ cassandra -Dcassandra-pidfile=/var/run/cassandra/cassandra.pid -cp /etc/cassandra:/usr/share/cassandra/lib/HdrHistogram-2.1.9.jar:/usr/share/cassandra/lib/ST4 -4.0.8.jar:/usr/share/cassandra/lib/airline-0.6.jar:/usr/share/cassandra/lib/antlr-runtime-3.5.2.jar:/usr/share/cassandra/lib/ asm-5.0.4.jar:/usr/share/cassandra/lib/caffeine-2.2.6.jar:/usr/share/cassandra/lib/cassandra-driver-core-3.0.1-shaded.jar:/usr /共享/卡桑德拉storagedir=/var/lib/cassandra -Dcassandra-pidfile=/var/run/cassandra/cassandra.pid -cp /etc/cassandra:/usr/share/cassandra/lib/HdrHistogram-2.1.9.jar:/usr/共享/cassandra/lib/ST4-4.0.8.jar:/usr/share/cassandra/lib/airline-0.6.jar:/usr/share/cassandra/lib/antlr-runtime-3.5.2.jar:/usr /share/cassandra/lib/asm-5.0.4.jar:/usr/share/cassandra/lib/caffeine-2.2.6.jar:/usr/share/cassandra/lib/cassandra-driver-core-3.0.1 -shaded.jar:/usr/share/cassandrastoragedir=/var/lib/cassandra -Dcassandra-pidfile=/var/run/cassandra/cassandra.pid -cp /etc/cassandra:/usr/share/cassandra/lib/HdrHistogram-2.1.9.jar:/usr/共享/cassandra/lib/ST4-4.0.8.jar:/usr/share/cassandra/lib/airline-0.6.jar:/usr/share/cassandra/lib/antlr-runtime-3.5.2.jar:/usr /share/cassandra/lib/asm-5.0.4.jar:/usr/share/cassandra/lib/caffeine-2.2.6.jar:/usr/share/cassandra/lib/cassandra-driver-core-3.0.1 -shaded.jar:/usr/share/cassandra

当我运行 > ps aux | 时,什么也没有出现。grep 卡斯

输出:-

cassand+  1308  0.3  2.1 4619804 351380 ?      Sl   Aug02   3:38 /usr/lib/jvm/java-8-oracle/jre/bin/java -Xmx1024M -Dagent-pidfile=/var/run/datastax-agent/datastax-agent.pid -Dlog4j.configuration=file:/etc/datastax-agent/log4j.properties -Djava.security.auth.login.config=/etc/datastax-agent/kerberos.config -jar datastax-agent-6.7.7-standalone.jar /var/lib/datastax-agent/conf/address.yaml
cassand+  7835 34.4 55.4 56100300 9109792 ?    SLl  Aug02 362:16 java -Xloggc:/var/log/cassandra/gc.log -ea -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -XX:+HeapDumpOnOutOfMemoryError -Xss256k -XX:StringTableSize=1000003 -XX:+AlwaysPreTouch -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+ResizeTLAB -XX:+PerfDisableSharedMem -Djava.net.preferIPv4Stack=true -Xms4G -Xmx4G -Xmn900M -XX:+UseG1GC -XX:G1RSetUpdatingPauseTimePercent=5 -XX:MaxGCPauseMillis=600 -XX:InitiatingHeapOccupancyPercent=30 -XX:ParallelGCThreads=4 -XX:ConcGCThreads=4 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -XX:+PrintPromotionFailure -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M -XX:CompileCommandFile=/etc/cassandra/hotspot_compiler -Dcom.sun.management.jmxremote.authenticate=false

标签: javacassandraprometheus

解决方案


根据您发布的输出,您似乎已经添加了两次 Prometheus JAR。

我注意到您还运行了 OpsCenter 代理。您应该只使用 OpsCenter 代理或 Prometheus 代理——不能同时使用两者,因为它们在大多数情况下收集相同的指标。

附带说明一下,如果您不知道,DataStax 有 Apache Cassandra(又名 MCAC)的 Metrics Collector,它收集操作系统(内存、磁盘、CPU 等)和基于collectd+ Prometheus + Grafana 构建的 Cassandra 指标。

安装只需 3 个步骤:

  1. 下载代理
  2. 将代理 JAR 添加到 JVM 选项。
  3. 重新启动卡桑德拉。

它还带有预配置的 Prometheus + Grafana 仪表板,因此您可以在几分钟内启动并运行它们。它是开源的,因此可以免费使用——https://github.com/datastax/metric-collector-for-apache-cassandra。干杯!

PS我看到您使用的 G1 GC 只分配了少量内存:

-Xms4G -Xmx4G -Xmn900M -XX:+UseG1GC

G1 GC 专为较大的堆大小而设计,根据我的经验,它在较小的堆中表现不佳。您也不应该将 NewGen 大小 ( -Xmn900M) 固定为特定值,因为 G1 GC 需要能够根据工作负载、访问模式等动态调整 NewGen 的大小。

如果您的节点没有大量内存,您应该切换回 CMS(C* 中的默认值)。我建议在生产环境中至少使用 8GB 堆,最好使用 16GB,使用 CMS 时使用 24GB。对最大 20 到 31GB 的堆使用 G1 GC(请注意,32GB 堆的可寻址对象少于 31GB)。


推荐阅读