我目前在我的 Windows 开发机上运行 Cassandra、OpsCenter 和 OpsCenter 代理。代理已成功连接到 OpsCenter,我可以看到它列在那里,以及它使用的磁盘空间量。
但是,没有其他可用的数据,包括可用磁盘空间(目前并不那么有趣,因为只有一台机器而且我正在使用它),或任何其他指标,如写入请求、延迟等,所有这些都更有用。
我每分钟都会在 opscenterd.log 中看到以下错误,似乎是在处理代理的磁盘空间时遇到错误:
2014-11-05 07:33:38+1000 [] INFO: Unhandled error in Deferred:
2014-11-05 07:33:38+1000 [] Unhandled Error
Traceback (most recent call last):
File "E:\Program Files\DataStax Community\opscenter\lib\py\morbid\morbid.py", line 48, in dataReceived
getattr(self, 'read_%s' % self.state)(**msg)
File "E:\Program Files\DataStax Community\opscenter\lib\py\morbid\morbid.py", line 102, in read_connected
d.addCallback(getattr(self, 'frame_%s' % cmd))
File "E:\Program Files\DataStax Community\opscenter\lib\py-win32\2.7\twisted\internet\defer.py", line 297, in addCallback
callbackKeywords=kw)
File "E:\Program Files\DataStax Community\opscenter\lib\py-win32\2.7\twisted\internet\defer.py", line 286, in addCallbacks
self._runCallbacks()
--- <exception caught here> ---
File "E:\Program Files\DataStax Community\opscenter\lib\py-win32\2.7\twisted\internet\defer.py", line 542, in _runCallbacks
current.result = callback(current.result, *args, **kw)
File "E:\Program Files\DataStax Community\opscenter\lib\py\morbid\morbid.py", line 122, in frame_send
self.factory.mqm.send_message(self, headers['destination'], (headers, body))
File "E:\Program Files\DataStax Community\opscenter\lib\py\morbid\messagequeue.py", line 146, in send_message
self.message_queues[dest_name].send(message)
File "E:\Program Files\DataStax Community\opscenter\lib\py\morbid\messagequeue.py", line 76, in send
proto.send(self.prep_message(message))
File "build/lib/python2.7/site-packages/opscenterd/OrbitedService.py", line 265, in send
File "build/lib/python2.7/site-packages/opscenterd/Agents.py", line 294, in routeIncoming
File "build/lib/python2.7/site-packages/opscenterd/Agents.py", line 689, in processStorageInfo
File "build/lib/python2.7/site-packages/opscenterd/Cluster.py", line 1107, in updateStorageInfo
File "build/lib/python2.7/site-packages/opscenterd/Cluster.py", line 1096, in sumDiskSpace
exceptions.KeyError: u'E:'
我目前正在使用 Datastax 社区版 2.1.0,并将其安装在我的 E 盘上,它假定了上述错误消息中提到的哈希键。
关于我可以做什么来解决这个问题?
答案1
事实证明,Windows 上的 OpsCenter 代理将 typeperf.exe 的路径硬编码为“\Windows\System32\typeperf.exe”,因此如果将其安装到系统驱动器以外的任何位置,则无法执行它。
agent.log 反复记录以下错误:
ERROR [os-metrics-14] 2014-11-20 11:28:39,088 Long os-stats collector failed: Cannot run program "\Windows\System32\typeperf.exe": CreateProcess error=2, The system cannot find the file specified
根据http://www.datastax.com/support-forums/topic/error-loading-cluster-no-cassandra-connections-available针对此问题已经出现了一个内部错误,但是除了安装在系统驱动器上之外,目前没有其他解决方法。
答案2
您可以将 c:\Windows\System32\typeperf.exe 复制到 e:\Windows\System32\typeperf.exe 或创建一个符号链接。