【问题标题】:cassandra-env.sh file is not able to read JMX prometheus parametercassandra-env.sh 文件无法读取 JMX prometheus 参数
【发布时间】:2021-08-03 07:44:21
【问题描述】:

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

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

无法访问 curl http://10.x.x.13: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:/etc/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:NumberOfGCL ogFiles=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/share/cassandra

我运行时也没有任何东西出现> ps aux | grep cass

输出:-

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

【问题讨论】:

  • 当我运行时也没有任何东西出现> ps aux | grep cass 我很困惑。您的ps 输出与您声称的相反……
  • 我的意思是当我运行 ps aux 时,这个条目 应该在那里,但它不见了。 ..
  • 哦,我明白了。实际上我不知道 ps 的输出是否有限制 - 可能有。日志的输出显示它正在设置中
  • 问题不在于ps,Cassandra-env.sh文件无法读取Prometheus参数,不知道为什么。
  • 澄清一下 - 真正的问题是您无法通过 Web 界面访问代理?

标签: java cassandra prometheus


【解决方案1】:

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

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

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

安装只需 3 步:

  1. 下载代理
  2. 将代理 JAR 添加到 JVM 选项中。
  3. 重新启动 Cassandra。

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

附:我看到您使用的 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)。

【讨论】:

  • 在 GC 上遵循的好建议。一个带有节点的集群@一个 4GB 堆肯定应该在 CMS 上。 TBH,对于 CMS,您可能希望将 NewGen 的大小加倍
  • 谢谢,我会检查建议并通知您。
  • @ErickRamirez,MCAC 给出的 JAR 没有给我与 cassendra 相关的任何指标,例如:- mcac_client_request_latency_total 、 mcac_client_request_latency_bucket 等
  • 但仅供参考:- 我能够收集 Cassandra 系统相关的指标,例如:- collectd_cpu_total
猜你喜欢
  • 2021-08-26
  • 1970-01-01
  • 1970-01-01
  • 2018-07-12
  • 1970-01-01
  • 1970-01-01
  • 2023-02-26
  • 2020-08-15
  • 2018-09-15
相关资源
最近更新 更多