Cassandra DataStax OpsCenter代理:短操作系统统计数据收集器失败

Cassandra DataStax OpsCenter代理:短操作系统统计数据收集器失败,cassandra,datastax,opscenter,Cassandra,Datastax,Opscenter,在习惯了卡桑德拉和奥普施奈特几个星期之后,我仍然无法找到一个解决方案。我设法安装并配置了OpsCenter和代理,以便它们能够相互连接。然后我查看了OpsCenter中可用的一些不同指标。因此,我意识到我没有得到任何关于操作系统的信息:使用的内存,这就是为什么我试图找出这个问题的根源 在代理日志文件中,我一次又一次地看到消息“Short os stats collector failed”。我试图寻找这条消息的原因,但我发现所有的答案对我的情况都没有帮助。我增加了要跟踪的代理的日志级别,发现:

在习惯了卡桑德拉和奥普施奈特几个星期之后,我仍然无法找到一个解决方案。我设法安装并配置了OpsCenter和代理,以便它们能够相互连接。然后我查看了OpsCenter中可用的一些不同指标。因此,我意识到我没有得到任何关于操作系统的信息:使用的内存,这就是为什么我试图找出这个问题的根源

在代理日志文件中,我一次又一次地看到消息“Short os stats collector failed”。我试图寻找这条消息的原因,但我发现所有的答案对我的情况都没有帮助。我增加了要跟踪的代理的日志级别,发现:

跟踪[os-metrics-2]2015-08-27 08:39:34644来自iostat的输出-x-d-m 60 2…:
跟踪[os-metrics-2]2015-08-27 08:39:34648启动过程:iostat-x-d-m 60 2
TRACE[os-metrics-7]2015-08-27 08:39:34667启动流程:免费-m
跟踪[os-metrics-7]2015-08-27 08:39:34669来自自由的输出-m.:
错误[os-metrics-7]2015-08-27 08:39:34670短操作系统统计数据收集器失败
跟踪[os-metrics-5]2015-08-27 08:39:34677来自iostat的输出-c-m 60 2…:
跟踪[os-metrics-5]2015-08-27 08:39:34678启动过程:iostat-c-m 60 2
TRACE[os-metrics-6]2015-08-27 08:39:34682启动过程:df--打印类型--不同步--块大小=1G--本地
跟踪[os-metrics-6]2015-08-27 08:39:34684来自df的输出--打印类型--不同步--块大小=1G--本地…:

我猜导致问题的命令是free-m,这是有意义的,因为它显示了有多少内存是空闲的和被使用的。我试着用这些新信息做了更多的研究,并找到了一个可能的解决方案:人们建议检查我系统上的cassandra用户是否具有发出命令的必要权限。我以用户身份登录,没有任何权限问题,free-m显示通常的输出(与以root用户身份登录时显示的相同):

我不知道问题可能是什么,这就是为什么我希望在这里得到一些帮助

有关我的系统和群集的更多信息:
操作系统:CentOS 7.1.1503
Cassandra版本:DataStax社区版本2.1.8
OpsCenter和代理版本:5.2.0
Cassandra和代理以Cassandra用户的身份运行,OpsCenter以root用户的身份运行

希望任何人都知道问题出在哪里。提前感谢,如果您需要任何进一步的信息,我很乐意提供给他们

顺便说一句:使用的OS:Memory是到目前为止我发现的唯一不起作用的统计数据。无论出于何种原因,OS:Memory Free graph都能正常工作

编辑:我刚刚看到,在某些情况下,我会得到一个堆栈跟踪以及错误消息:

 java.lang.NullPointerException
at clojure.lang.Numbers.ops(Numbers.java:942)
at clojure.lang.Numbers.lt(Numbers.java:219)
at clojure.lang.Numbers.min(Numbers.java:4007)
at opsagent.rollup$add_value.invoke(rollup.clj:173)
at opsagent.rollup$process_keypair$fn__1465.invoke(rollup.clj:250)
at opsagent.cache$update_cache_value_default$fn__1166$fn__1167.invoke(cache.clj:25)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.lang.Ref.alter(Ref.java:174)
at clojure.core$alter.doInvoke(core.clj:2244)
at clojure.lang.RestFn.invoke(RestFn.java:425)
at opsagent.cache$update_cache_value_default$fn__1166.invoke(cache.clj:25)
at clojure.lang.AFn.call(AFn.java:18)
at clojure.lang.LockingTransaction.run(LockingTransaction.java:263)
at clojure.lang.LockingTransaction.runInTransaction(LockingTransaction.java:231)
at opsagent.cache$update_cache_value_default.invoke(cache.clj:24)
at opsagent.rollup$process_keypair.invoke(rollup.clj:250)
at opsagent.rollup$process_metric_map.invoke(rollup.clj:256)
at opsagent.os.collection$start_os_stat_collection$send_metric__16618.invoke(collection.clj:80)
at opsagent.os.linux_metrics$sendmap.invoke(linux_metrics.clj:12)
at opsagent.os.linux_metrics$report_mem_stats.invoke(linux_metrics.clj:134)
at opsagent.os.linux_metrics$collectors$wrap_short_collector__10821$fn__10822.invoke(linux_metrics.clj:270)
at opsagent.os.collection$start_pool$fn__16589.invoke(collection.clj:39)
at clojure.lang.AFn.run(AFn.java:24)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

我猜想Centos 7.1使用的是
procps ng
,其中
free
的输出与“classic”
free
不兼容。这是一个已知的问题,将在即将发布的5.2修补程序中修复(不是5.2.1,而是它之后的版本)。

据我所知,你猜是正确的。查看免费的manuel页面,它在最后一行显示procps ng。为了完全确定,我在一台计算机上卸载了procps ng,并安装了旧的procps(适用于CentOS 6.7)。错误不再显示,我现在可以在OpsCenter仪表板中查看此计算机的统计信息。非常感谢您的帮助,我不知道这是一个已知的问题。
 java.lang.NullPointerException
at clojure.lang.Numbers.ops(Numbers.java:942)
at clojure.lang.Numbers.lt(Numbers.java:219)
at clojure.lang.Numbers.min(Numbers.java:4007)
at opsagent.rollup$add_value.invoke(rollup.clj:173)
at opsagent.rollup$process_keypair$fn__1465.invoke(rollup.clj:250)
at opsagent.cache$update_cache_value_default$fn__1166$fn__1167.invoke(cache.clj:25)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.lang.Ref.alter(Ref.java:174)
at clojure.core$alter.doInvoke(core.clj:2244)
at clojure.lang.RestFn.invoke(RestFn.java:425)
at opsagent.cache$update_cache_value_default$fn__1166.invoke(cache.clj:25)
at clojure.lang.AFn.call(AFn.java:18)
at clojure.lang.LockingTransaction.run(LockingTransaction.java:263)
at clojure.lang.LockingTransaction.runInTransaction(LockingTransaction.java:231)
at opsagent.cache$update_cache_value_default.invoke(cache.clj:24)
at opsagent.rollup$process_keypair.invoke(rollup.clj:250)
at opsagent.rollup$process_metric_map.invoke(rollup.clj:256)
at opsagent.os.collection$start_os_stat_collection$send_metric__16618.invoke(collection.clj:80)
at opsagent.os.linux_metrics$sendmap.invoke(linux_metrics.clj:12)
at opsagent.os.linux_metrics$report_mem_stats.invoke(linux_metrics.clj:134)
at opsagent.os.linux_metrics$collectors$wrap_short_collector__10821$fn__10822.invoke(linux_metrics.clj:270)
at opsagent.os.collection$start_pool$fn__16589.invoke(collection.clj:39)
at clojure.lang.AFn.run(AFn.java:24)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)