我在带有 lvm 磁盘的 Ubuntu 14.04 中使用带有 cassandra 2.1.7 的 opscenter 5.1.3。
Opscenter 显示除磁盘利用率和存储容量之外的所有信息,并不断提示无法连接代理(但其他统计数据仍正常工作)。我已使用 opscenter 选项重新安装了代理。
在 /var/log/datastax-agent/agent.log 中我看到:
ERROR [os-metrics-4] 2015-07-06 12:56:00,468 Short os-stats collector failed 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:156)
at opsagent.rollup$add_value.invoke(rollup.clj:156)
at opsagent.rollup$process_keypair$fn__1435.invoke(rollup.clj:235)
at psagent.cache$update_cache_value_default$fn__1163$fn__1164.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__1163.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:235)
at opsagent.rollup$process_metric_map.invoke(rollup.clj:241)
at opsagent.os.collection$start_os_stat_collection$send_metric__15899.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__9128$fn__9129.invoke(linux_metrics.clj:270)
at opsagent.os.collection$start_pool$fn__15870.invoke(collection.clj:39)
at clojure.lang.AFn.run(AFn.java:24)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
答案1
OpsCenter 开发人员在此。您丢失的存储容量统计信息几乎肯定与这个 Ubuntu 错误有关(最近困扰了我,我进行了一些修复验证以尝试及时发布,但截至今天它仍在等待发布):
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1465322
该错误导致 df 以非零退出状态返回,这反过来导致 OpsCenter 代理认为 df 命令失败并忽略其输出。
解决方法是将内核回滚到 3.2.0-86 build 125 之前的版本(该版本导致了问题)。
我不确定您的 OpsCenter 代理连接问题是否相关,但我会先修复您的内核错误,然后再次测试。
欢呼吧,Mike Lococo